Merge "Initial version of radio hal"
diff --git a/nfc/1.0/Android.mk b/nfc/1.0/Android.mk
index 07775e9..b6840bc 100644
--- a/nfc/1.0/Android.mk
+++ b/nfc/1.0/Android.mk
@@ -13,9 +13,9 @@
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
#
-# Build types.hal (NfcEvent)
+# Build types.hal (nfc_data_t)
#
-GEN := $(intermediates)/android/hardware/nfc/1.0/NfcEvent.java
+GEN := $(intermediates)/android/hardware/nfc/1.0/nfc_data_t.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
@@ -23,16 +23,16 @@
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.nfc@1.0::types.NfcEvent
+ android.hardware.nfc@1.0::types.nfc_data_t
$(GEN): $(LOCAL_PATH)/types.hal
$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
#
-# Build types.hal (NfcStatus)
+# Build types.hal (nfc_event_t)
#
-GEN := $(intermediates)/android/hardware/nfc/1.0/NfcStatus.java
+GEN := $(intermediates)/android/hardware/nfc/1.0/nfc_event_t.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
@@ -40,7 +40,24 @@
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.nfc@1.0::types.NfcStatus
+ android.hardware.nfc@1.0::types.nfc_event_t
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (nfc_status_t)
+#
+GEN := $(intermediates)/android/hardware/nfc/1.0/nfc_status_t.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.nfc@1.0::types.nfc_status_t
$(GEN): $(LOCAL_PATH)/types.hal
$(transform-generated-source)
@@ -99,9 +116,9 @@
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
#
-# Build types.hal (NfcEvent)
+# Build types.hal (nfc_data_t)
#
-GEN := $(intermediates)/android/hardware/nfc/1.0/NfcEvent.java
+GEN := $(intermediates)/android/hardware/nfc/1.0/nfc_data_t.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
@@ -109,16 +126,16 @@
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.nfc@1.0::types.NfcEvent
+ android.hardware.nfc@1.0::types.nfc_data_t
$(GEN): $(LOCAL_PATH)/types.hal
$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
#
-# Build types.hal (NfcStatus)
+# Build types.hal (nfc_event_t)
#
-GEN := $(intermediates)/android/hardware/nfc/1.0/NfcStatus.java
+GEN := $(intermediates)/android/hardware/nfc/1.0/nfc_event_t.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
@@ -126,7 +143,24 @@
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.nfc@1.0::types.NfcStatus
+ android.hardware.nfc@1.0::types.nfc_event_t
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (nfc_status_t)
+#
+GEN := $(intermediates)/android/hardware/nfc/1.0/nfc_status_t.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.nfc@1.0::types.nfc_status_t
$(GEN): $(LOCAL_PATH)/types.hal
$(transform-generated-source)
diff --git a/nfc/1.0/INfc.hal b/nfc/1.0/INfc.hal
index f003b2c..88fd39a 100644
--- a/nfc/1.0/INfc.hal
+++ b/nfc/1.0/INfc.hal
@@ -27,7 +27,7 @@
* NCI initialization - ie accept CORE_RESET and subsequent commands through
* the write() call.
*
- * If open() returns 0, the NCI stack will wait for a NfcEvent.OPEN_CPLT
+ * If open() returns 0, the NCI stack will wait for a HAL_NFC_OPEN_CPLT_EVT
* before continuing.
*
* If open() returns any other value, the NCI stack will stop.
@@ -41,32 +41,32 @@
* This method may queue writes and return immediately. The only
* requirement is that the writes are executed in order.
*/
- write(NfcData data) generates (int32_t retval);
+ write(nfc_data_t data) generates (int32_t retval);
/*
- * coreInitialized() is called after the CORE_INIT_RSP is received from the NFCC.
+ * core_initialized() is called after the CORE_INIT_RSP is received from the NFCC.
* At this time, the HAL can do any chip-specific configuration.
*
- * If coreInitialized() returns 0, the NCI stack will wait for a NfcEvent.POST_INIT_CPLT
+ * If core_initialized() returns 0, the NCI stack will wait for a HAL_NFC_POST_INIT_CPLT_EVT
* before continuing.
*
- * If coreInitialized() returns any other value, the NCI stack will continue
+ * If core_initialized() returns any other value, the NCI stack will continue
* immediately.
*/
- coreInitialized(NfcData data) generates (int32_t retval);
+ core_initialized(vec<uint8_t> data) generates (int32_t retval);
/*
- * prediscover is called every time before starting RF discovery.
+ * pre_discover is called every time before starting RF discovery.
* It is a good place to do vendor-specific configuration that must be
* performed every time RF discovery is about to be started.
*
- * If prediscover() returns 0, the NCI stack will wait for a NfcEvent.PREDISCOVER_CPLT
+ * If pre_discover() returns 0, the NCI stack will wait for a HAL_NFC_PRE_DISCOVER_CPLT_EVT
* before continuing.
*
- * If prediscover() returns any other value, the NCI stack will start
+ * If pre_discover() returns any other value, the NCI stack will start
* RF discovery immediately.
*/
- prediscover() generates (int32_t retval);
+ pre_discover() generates (int32_t retval);
/*
* Close the NFC controller. Should free all resources.
@@ -75,15 +75,15 @@
/*
* Grant HAL the exclusive control to send NCI commands.
- * Called in response to NfcEvent.REQUEST_CONTROL.
+ * Called in response to HAL_REQUEST_CONTROL_EVT.
* Must only be called when there are no NCI commands pending.
- * NfcEvent.RELEASE_CONTROL will notify when HAL no longer needs exclusive control.
+ * HAL_RELEASE_CONTROL_EVT will notify when HAL no longer needs exclusive control.
*/
- controlGranted() generates (int32_t retval);
+ control_granted() generates (int32_t retval);
/*
* Restart controller by power cyle;
- * NfcEvent.OPEN_CPLT will notify when operation is complete.
+ * HAL_OPEN_CPLT_EVT will notify when operation is complete.
*/
- powerCycle() generates (int32_t retval);
+ power_cycle() generates (int32_t retval);
};
diff --git a/nfc/1.0/INfcClientCallback.hal b/nfc/1.0/INfcClientCallback.hal
index a56cc09..f10062e 100644
--- a/nfc/1.0/INfcClientCallback.hal
+++ b/nfc/1.0/INfcClientCallback.hal
@@ -21,11 +21,11 @@
* The callback passed in from the NFC stack that the HAL
* can use to pass events back to the stack.
*/
- sendEvent(NfcEvent event, NfcStatus status);
+ sendEvent(nfc_event_t event, nfc_status_t event_status);
/*
* The callback passed in from the NFC stack that the HAL
* can use to pass incomming data to the stack.
*/
- sendData(NfcData data);
+ sendData(nfc_data_t data);
};
diff --git a/nfc/1.0/default/Nfc.cpp b/nfc/1.0/default/Nfc.cpp
index d3868c1..b836ada 100644
--- a/nfc/1.0/default/Nfc.cpp
+++ b/nfc/1.0/default/Nfc.cpp
@@ -19,19 +19,19 @@
// Methods from ::android::hardware::nfc::V1_0::INfc follow.
::android::hardware::Return<int32_t> Nfc::open(const sp<INfcClientCallback>& clientCallback) {
mCallback = clientCallback;
- return mDevice->open(mDevice, eventCallback, dataCallback);
+ return mDevice->open(mDevice, event_callback, data_callback);
}
-::android::hardware::Return<int32_t> Nfc::write(const hidl_vec<uint8_t>& data) {
- return mDevice->write(mDevice, data.size(), &data[0]);
+::android::hardware::Return<int32_t> Nfc::write(const nfc_data_t& data) {
+ return mDevice->write(mDevice, data.data.size(), &data.data[0]);
}
-::android::hardware::Return<int32_t> Nfc::coreInitialized(const hidl_vec<uint8_t>& data) {
+::android::hardware::Return<int32_t> Nfc::core_initialized(const hidl_vec<uint8_t>& data) {
hidl_vec<uint8_t> copy = data;
return mDevice->core_initialized(mDevice, ©[0]);
}
-::android::hardware::Return<int32_t> Nfc::prediscover() {
+::android::hardware::Return<int32_t> Nfc::pre_discover() {
return mDevice->pre_discover(mDevice);
}
@@ -39,11 +39,11 @@
return mDevice->close(mDevice);
}
-::android::hardware::Return<int32_t> Nfc::controlGranted() {
+::android::hardware::Return<int32_t> Nfc::control_granted() {
return mDevice->control_granted(mDevice);
}
-::android::hardware::Return<int32_t> Nfc::powerCycle() {
+::android::hardware::Return<int32_t> Nfc::power_cycle() {
return mDevice->power_cycle(mDevice);
}
diff --git a/nfc/1.0/default/Nfc.h b/nfc/1.0/default/Nfc.h
index e596495..98cd57e 100644
--- a/nfc/1.0/default/Nfc.h
+++ b/nfc/1.0/default/Nfc.h
@@ -13,6 +13,7 @@
using ::android::hardware::nfc::V1_0::INfc;
using ::android::hardware::nfc::V1_0::INfcClientCallback;
+using ::android::hardware::nfc::V1_0::nfc_data_t;
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::hardware::hidl_vec;
@@ -22,23 +23,23 @@
struct Nfc : public INfc {
Nfc(nfc_nci_device_t* device);
::android::hardware::Return<int32_t> open(const sp<INfcClientCallback>& clientCallback) override;
- ::android::hardware::Return<int32_t> write(const hidl_vec<uint8_t>& data) override;
- ::android::hardware::Return<int32_t> coreInitialized(const hidl_vec<uint8_t>& data) override;
- ::android::hardware::Return<int32_t> prediscover() override;
+ ::android::hardware::Return<int32_t> write(const nfc_data_t& data) override;
+ ::android::hardware::Return<int32_t> core_initialized(const hidl_vec<uint8_t>& data) override;
+ ::android::hardware::Return<int32_t> pre_discover() override;
::android::hardware::Return<int32_t> close() override;
- ::android::hardware::Return<int32_t> controlGranted() override;
- ::android::hardware::Return<int32_t> powerCycle() override;
+ ::android::hardware::Return<int32_t> control_granted() override;
+ ::android::hardware::Return<int32_t> power_cycle() override;
- static void eventCallback(uint8_t event, uint8_t status) {
+ static void event_callback(uint8_t event, uint8_t status) {
if (mCallback != nullptr) {
mCallback->sendEvent(
- (::android::hardware::nfc::V1_0::NfcEvent) event,
- (::android::hardware::nfc::V1_0::NfcStatus) status);
+ (::android::hardware::nfc::V1_0::nfc_event_t) event,
+ (::android::hardware::nfc::V1_0::nfc_status_t) status);
}
}
- static void dataCallback(uint16_t data_len, uint8_t* p_data) {
- hidl_vec<uint8_t> data;
- data.setToExternal(p_data, data_len);
+ static void data_callback(uint16_t data_len, uint8_t* p_data) {
+ nfc_data_t data;
+ data.data.setToExternal(p_data, data_len);
if (mCallback != nullptr) {
mCallback->sendData(data);
}
diff --git a/nfc/1.0/types.hal b/nfc/1.0/types.hal
index a266178..738dfd9 100644
--- a/nfc/1.0/types.hal
+++ b/nfc/1.0/types.hal
@@ -16,22 +16,24 @@
package android.hardware.nfc@1.0;
-enum NfcEvent : uint32_t {
- OPEN_CPLT = 0,
- CLOSE_CPLT = 1,
- POST_INIT_CPLT = 2,
- PRE_DISCOVER_CPLT = 3,
- REQUEST_CONTROL = 4,
- RELEASE_CONTROL = 5,
- ERROR = 6
+enum nfc_event_t : uint32_t {
+ HAL_NFC_OPEN_CPLT_EVT = 0,
+ HAL_NFC_CLOSE_CPLT_EVT = 1,
+ HAL_NFC_POST_INIT_CPLT_EVT = 2,
+ HAL_NFC_PRE_DISCOVER_CPLT_EVT = 3,
+ HAL_NFC_REQUEST_CONTROL_EVT = 4,
+ HAL_NFC_RELEASE_CONTROL_EVT = 5,
+ HAL_NFC_ERROR_EVT = 6
};
-enum NfcStatus : uint32_t {
- OK = 0,
- FAILED = 1,
- ERR_TRANSPORT = 2,
- ERR_CMD_TIMEOUT = 3,
- REFUSED = 4
+enum nfc_status_t : uint32_t {
+ HAL_NFC_STATUS_OK = 0,
+ HAL_NFC_STATUS_FAILED = 1,
+ HAL_NFC_STATUS_ERR_TRANSPORT = 2,
+ HAL_NFC_STATUS_ERR_CMD_TIMEOUT = 3,
+ HAL_NFC_STATUS_REFUSED = 4
};
-typedef vec<uint8_t> NfcData;
+struct nfc_data_t {
+ vec<uint8_t> data;
+};
diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp
index b879741..617b08f 100644
--- a/tests/bar/1.0/Android.bp
+++ b/tests/bar/1.0/Android.bp
@@ -6,9 +6,11 @@
cmd: "$tool -o $genDir -Lc++ -randroid.hardware:hardware/interfaces android.hardware.tests.bar@1.0",
srcs: [
"IBar.hal",
+ "IImportTypes.hal",
],
out: [
"android/hardware/tests/bar/1.0/BarAll.cpp",
+ "android/hardware/tests/bar/1.0/ImportTypesAll.cpp",
],
}
@@ -18,6 +20,7 @@
cmd: "$tool -o $genDir -Lc++ -randroid.hardware:hardware/interfaces android.hardware.tests.bar@1.0",
srcs: [
"IBar.hal",
+ "IImportTypes.hal",
],
out: [
"android/hardware/tests/bar/1.0/IBar.h",
@@ -25,6 +28,11 @@
"android/hardware/tests/bar/1.0/BnBar.h",
"android/hardware/tests/bar/1.0/BpBar.h",
"android/hardware/tests/bar/1.0/BsBar.h",
+ "android/hardware/tests/bar/1.0/IImportTypes.h",
+ "android/hardware/tests/bar/1.0/IHwImportTypes.h",
+ "android/hardware/tests/bar/1.0/BnImportTypes.h",
+ "android/hardware/tests/bar/1.0/BpImportTypes.h",
+ "android/hardware/tests/bar/1.0/BsImportTypes.h",
],
}
diff --git a/tests/bar/1.0/IBar.hal b/tests/bar/1.0/IBar.hal
index f41c1a5..b57d9a0 100644
--- a/tests/bar/1.0/IBar.hal
+++ b/tests/bar/1.0/IBar.hal
@@ -17,10 +17,16 @@
package android.hardware.tests.bar@1.0;
import android.hardware.tests.foo@1.0::IFoo;
+import android.hardware.tests.foo@1.0::Unrelated;
interface IBar extends android.hardware.tests.foo@1.0::IFoo {
typedef android.hardware.tests.foo@1.0::IFoo FunkyAlias;
+ typedef Unrelated Related;
+
+ struct SomethingRelated {
+ Related myRelated;
+ };
thisIsNew();
};
diff --git a/tests/bar/1.0/IImportTypes.hal b/tests/bar/1.0/IImportTypes.hal
new file mode 100644
index 0000000..a74e55c
--- /dev/null
+++ b/tests/bar/1.0/IImportTypes.hal
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.tests.bar@1.0;
+
+import android.hardware.tests.foo@1.0::types;
+
+interface IImportTypes {
+ typedef Unrelated Related;
+ struct GoodStruct {
+ Outer outer;
+ android.hardware.tests.foo@1.0::Outer.Inner inner;
+ @1.0::Outer.Inner.Deep deep;
+ };
+};
diff --git a/tests/expression/1.0/IExpression.hal b/tests/expression/1.0/IExpression.hal
index 4c38e5a..a44e03c 100644
--- a/tests/expression/1.0/IExpression.hal
+++ b/tests/expression/1.0/IExpression.hal
@@ -31,7 +31,7 @@
noSuffixHex2 = 0x80000000,
noSuffixHex3 = 0xffffffff,
longHex1 = 0xffffffffl,
- longHex2 = 0xfffffffff,
+ longHex2 = 0Xfffffffff,
longHex3 = 0x7fffffffffffffff,
longHex4 = 0x8000000000000000,
longHex5 = 0xFFFFFFFFFFFFFFFF,
diff --git a/tests/foo/1.0/Android.bp b/tests/foo/1.0/Android.bp
index 4896fc3..1fbb7bd 100644
--- a/tests/foo/1.0/Android.bp
+++ b/tests/foo/1.0/Android.bp
@@ -8,11 +8,15 @@
"types.hal",
"IFoo.hal",
"IFooCallback.hal",
+ "IMyTypes.hal",
+ "ITheirTypes.hal",
],
out: [
"android/hardware/tests/foo/1.0/types.cpp",
"android/hardware/tests/foo/1.0/FooAll.cpp",
"android/hardware/tests/foo/1.0/FooCallbackAll.cpp",
+ "android/hardware/tests/foo/1.0/MyTypesAll.cpp",
+ "android/hardware/tests/foo/1.0/TheirTypesAll.cpp",
],
}
@@ -24,6 +28,8 @@
"types.hal",
"IFoo.hal",
"IFooCallback.hal",
+ "IMyTypes.hal",
+ "ITheirTypes.hal",
],
out: [
"android/hardware/tests/foo/1.0/types.h",
@@ -37,6 +43,16 @@
"android/hardware/tests/foo/1.0/BnFooCallback.h",
"android/hardware/tests/foo/1.0/BpFooCallback.h",
"android/hardware/tests/foo/1.0/BsFooCallback.h",
+ "android/hardware/tests/foo/1.0/IMyTypes.h",
+ "android/hardware/tests/foo/1.0/IHwMyTypes.h",
+ "android/hardware/tests/foo/1.0/BnMyTypes.h",
+ "android/hardware/tests/foo/1.0/BpMyTypes.h",
+ "android/hardware/tests/foo/1.0/BsMyTypes.h",
+ "android/hardware/tests/foo/1.0/ITheirTypes.h",
+ "android/hardware/tests/foo/1.0/IHwTheirTypes.h",
+ "android/hardware/tests/foo/1.0/BnTheirTypes.h",
+ "android/hardware/tests/foo/1.0/BpTheirTypes.h",
+ "android/hardware/tests/foo/1.0/BsTheirTypes.h",
],
}
diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal
index c1c2c6b..3d82353 100644
--- a/tests/foo/1.0/IFoo.hal
+++ b/tests/foo/1.0/IFoo.hal
@@ -17,6 +17,8 @@
package android.hardware.tests.foo@1.0;
import IFooCallback;
+import IMyTypes.SomeStruct;
+import ITheirTypes.FloatArray;
interface IFoo {
@@ -72,6 +74,11 @@
ThreeStrings[5] s;
};
+ struct MyStruct {
+ SomeStruct innerStruct;
+ FloatArray myFloatArray;
+ };
+
doThis(float param);
doThatAndReturnSomething(int64_t param) generates (int32_t result);
doQuiteABit(int32_t a, int64_t b, float c, double d) generates (double something);
diff --git a/tests/foo/1.0/IMyTypes.hal b/tests/foo/1.0/IMyTypes.hal
new file mode 100644
index 0000000..c8469a8
--- /dev/null
+++ b/tests/foo/1.0/IMyTypes.hal
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.tests.foo@1.0;
+
+
+interface IMyTypes {
+ struct SomeStruct {
+ };
+ typedef float[30] FloatArray;
+};
diff --git a/tests/foo/1.0/ITheirTypes.hal b/tests/foo/1.0/ITheirTypes.hal
new file mode 100644
index 0000000..7b955e0
--- /dev/null
+++ b/tests/foo/1.0/ITheirTypes.hal
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.tests.foo@1.0;
+
+
+interface ITheirTypes {
+ struct SomeStruct {
+ };
+ typedef float[10] FloatArray;
+};
diff --git a/tests/foo/1.0/types.hal b/tests/foo/1.0/types.hal
index 9666b53..a01fc2d 100644
--- a/tests/foo/1.0/types.hal
+++ b/tests/foo/1.0/types.hal
@@ -24,6 +24,9 @@
struct Outer {
struct Inner {
+ struct Deep {
+ int32_t data;
+ };
int32_t data;
};
};