Merge "Clarifying GnssMeasurement and Clock commments"
diff --git a/audio/core/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp b/audio/core/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
index bb1d26f..a08a2d6 100644
--- a/audio/core/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
+++ b/audio/core/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
@@ -661,8 +661,8 @@
code; \
}
-TEST_IO_STREAM(GetFrameCount, "Check that the stream frame count == the one it was opened with",
- ASSERT_EQ(audioConfig.frameCount, extract(stream->getFrameCount())))
+TEST_IO_STREAM(GetFrameCount, "Check that getting stream frame count does not crash the HAL.",
+ ASSERT_TRUE(stream->getFrameCount().isOk()))
TEST_IO_STREAM(GetSampleRate, "Check that the stream sample rate == the one it was opened with",
ASSERT_EQ(audioConfig.sampleRateHz, extract(stream->getSampleRate())))
diff --git a/audio/core/4.0/vts/functional/AudioPrimaryHidlHalTest.cpp b/audio/core/4.0/vts/functional/AudioPrimaryHidlHalTest.cpp
index f84e1e2..8a8338b 100644
--- a/audio/core/4.0/vts/functional/AudioPrimaryHidlHalTest.cpp
+++ b/audio/core/4.0/vts/functional/AudioPrimaryHidlHalTest.cpp
@@ -823,8 +823,8 @@
code; \
}
-TEST_IO_STREAM(GetFrameCount, "Check that the stream frame count == the one it was opened with",
- ASSERT_EQ(audioConfig.frameCount, extract(stream->getFrameCount())))
+TEST_IO_STREAM(GetFrameCount, "Check that getting stream frame count does not crash the HAL.",
+ ASSERT_TRUE(stream->getFrameCount().isOk()))
TEST_IO_STREAM(GetSampleRate, "Check that the stream sample rate == the one it was opened with",
ASSERT_EQ(audioConfig.sampleRateHz, extract(stream->getSampleRate())))
diff --git a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
index bf8b547..439c5fb 100644
--- a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
+++ b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp
@@ -170,8 +170,9 @@
acl_cb_count = 0;
sco_cb_count = 0;
- ASSERT_EQ(initialized, false);
- bluetooth->initialize(bluetooth_cb);
+ ASSERT_FALSE(initialized);
+ // Should not be checked in production code
+ ASSERT_TRUE(bluetooth->initialize(bluetooth_cb).isOk());
bluetooth_cb->SetWaitTimeout(kCallbackNameInitializationComplete,
WAIT_FOR_INIT_TIMEOUT);
@@ -186,15 +187,16 @@
bluetooth_cb->WaitForCallback(kCallbackNameInitializationComplete)
.no_timeout);
- ASSERT_EQ(initialized, true);
+ ASSERT_TRUE(initialized);
}
virtual void TearDown() override {
- bluetooth->close();
- handle_no_ops();
- EXPECT_EQ(static_cast<size_t>(0), event_queue.size());
- EXPECT_EQ(static_cast<size_t>(0), sco_queue.size());
- EXPECT_EQ(static_cast<size_t>(0), acl_queue.size());
+ // Should not be checked in production code
+ ASSERT_TRUE(bluetooth->close().isOk());
+ handle_no_ops();
+ EXPECT_EQ(static_cast<size_t>(0), event_queue.size());
+ EXPECT_EQ(static_cast<size_t>(0), sco_queue.size());
+ EXPECT_EQ(static_cast<size_t>(0), acl_queue.size());
}
void setBufferSizes();
diff --git a/boot/1.0/default/Android.bp b/boot/1.0/default/Android.bp
index 67dee08..397c56d 100644
--- a/boot/1.0/default/Android.bp
+++ b/boot/1.0/default/Android.bp
@@ -2,7 +2,7 @@
name: "android.hardware.boot@1.0-impl",
defaults: ["hidl_defaults"],
relative_install_path: "hw",
- vendor_available: true,
+ vendor: true,
recovery_available: true,
srcs: ["BootControl.cpp"],
diff --git a/fastboot/1.0/IFastboot.hal b/fastboot/1.0/IFastboot.hal
index a96755e..dce3ad7 100644
--- a/fastboot/1.0/IFastboot.hal
+++ b/fastboot/1.0/IFastboot.hal
@@ -34,7 +34,7 @@
* Executes a fastboot OEM command.
*
* @param oemCmdArgs The oem command that is passed to the fastboot HAL.
- * @response result Returns the status SUCCESS if the operation is successful,
+ * @return result Returns the status SUCCESS if the operation is successful,
* INVALID_ARGUMENT for bad arguments,
* FAILURE_UNKNOWN for an invalid/unsupported command.
*/
@@ -44,8 +44,8 @@
* Returns an OEM-defined string indicating the variant of the device, for
* example, US and ROW.
*
- * @response variant Indicates the device variant.
- * @response result Returns the status SUCCESS if the operation is successful,
+ * @return variant Indicates the device variant.
+ * @return result Returns the status SUCCESS if the operation is successful,
* FAILURE_UNKNOWN otherwise.
*/
getVariant() generates (string variant, Result result);
@@ -54,9 +54,19 @@
* Returns whether off-mode-charging is enabled. If enabled, the device
* autoboots into a special mode when power is applied.
*
- * @response state Returns whether off mode charging is enabled.
- * @response result Returns the status SUCCESS if the operation is successful,
+ * @return state Returns whether off mode charging is enabled.
+ * @return result Returns the status SUCCESS if the operation is successful,
* FAILURE_UNKNOWN otherwise.
*/
getOffModeChargeState() generates (bool state, Result result);
+
+ /**
+ * Returns the minimum battery voltage required for flashing in mV.
+ *
+ * @return batteryVoltage Minimum batterery voltage (in mV) required for
+ * flashing to be successful.
+ * @return result Returns the status SUCCESS if the operation is successful,
+ * FAILURE_UNKNOWN otherwise.
+ */
+ getBatteryVoltageFlashingThreshold() generates (int32_t batteryVoltage, Result result);
};
diff --git a/radio/1.3/Android.bp b/radio/1.3/Android.bp
index 9424a85..6a9b1d0 100644
--- a/radio/1.3/Android.bp
+++ b/radio/1.3/Android.bp
@@ -20,6 +20,7 @@
],
types: [
"AccessNetwork",
+ "DataProfileInfo",
"DataRegStateResult",
"EmergencyNumber",
"EmergencyNumberSource",
diff --git a/radio/1.3/IRadio.hal b/radio/1.3/IRadio.hal
index 2b14488..dde9d71 100644
--- a/radio/1.3/IRadio.hal
+++ b/radio/1.3/IRadio.hal
@@ -16,7 +16,7 @@
package android.hardware.radio@1.3;
-import @1.0::DataProfileInfo;
+import @1.3::DataProfileInfo;
import @1.0::Dial;
import @1.2::DataRequestReason;
import @1.2::IRadio;
@@ -56,13 +56,7 @@
* @param accessNetwork The access network to setup the data call. If the data connection cannot
* be established on the specified access network, the setup request must be failed.
* @param dataProfileInfo Data profile info.
- * @param modemCognitive Indicates that the requested profile has previously been provided via
- * setDataProfile().
* @param roamingAllowed Indicates whether or not data roaming is allowed by the user.
- * @param isRoaming Indicates whether or not the framework has requested this setupDataCall for
- * a roaming network. The 'protocol' parameter in the old RIL API must be filled
- * accordingly based on the roaming condition. Note this is for backward compatibility with
- * the old radio modem. The modem must not use this param for any other reason.
* @param reason The request reason. Must be DataRequestReason.NORMAL or
* DataRequestReason.HANDOVER.
* @param addresses If the reason is DataRequestReason.HANDOVER, this indicates the list of link
@@ -82,8 +76,28 @@
* Note this API is same as 1.2 version except using the 1.3 AccessNetwork as the input param.
*/
oneway setupDataCall_1_3(int32_t serial, AccessNetwork accessNetwork,
- DataProfileInfo dataProfileInfo, bool modemCognitive, bool roamingAllowed,
- bool isRoaming, DataRequestReason reason, vec<string> addresses, vec<string> dnses);
+ DataProfileInfo dataProfileInfo, bool roamingAllowed,
+ DataRequestReason reason, vec<string> addresses, vec<string> dnses);
+
+ /**
+ * Set an apn to initial attach network
+ *
+ * @param serial Serial number of request.
+ * @param dataProfileInfo data profile containing APN settings
+ *
+ * Response callback is IRadioResponse.setInitialAttachApnResponse()
+ */
+ oneway setInitialAttachApn_1_3(int32_t serial, DataProfileInfo dataProfileInfo);
+
+ /**
+ * Send data profiles of the current carrier to the modem.
+ *
+ * @param serial Serial number of request.
+ * @param profiles Array of DataProfile to set.
+ *
+ * Response callback is IRadioResponse.setDataProfileResponse()
+ */
+ oneway setDataProfile_1_3(int32_t serial, vec<DataProfileInfo> profiles);
/**
* Initiate emergency voice call, with zero or more emergency service category(s).
diff --git a/radio/1.3/types.hal b/radio/1.3/types.hal
index 09202a5..a41f4b2 100644
--- a/radio/1.3/types.hal
+++ b/radio/1.3/types.hal
@@ -16,6 +16,11 @@
package android.hardware.radio@1.3;
+import @1.0::ApnAuthType;
+import @1.0::ApnTypes;
+import @1.0::DataProfileId;
+import @1.0::DataProfileInfoType;
+import @1.0::RadioAccessFamily;
import @1.0::RegState;
import @1.2::AccessNetwork;
import @1.2::CellIdentity;
@@ -160,3 +165,71 @@
LteVopsInfo lteVopsInfo; // LTE network capability
} vopsInfo;
};
+
+/**
+ * Overwritten from @1.0::DataProfileInfo in order to deprecate 'mvnoType', 'mvnoMatchData',
+ * 'maxConnsTime', and 'maxConns'. In the future, this must be extended instead of overwritten.
+ * Added 'preferred' and 'persistent' in this version.
+ */
+struct DataProfileInfo {
+ /** id of the data profile */
+ DataProfileId profileId;
+
+ /** The APN name */
+ string apn;
+
+ /**
+ * One of the PDP_type values in TS 27.007 section 10.1.1. For example, "IP", "IPV6", "IPV4V6",
+ * or "PPP".
+ */
+ string protocol;
+
+ /**
+ * one of the PDP_type values in TS 27.007 section 10.1.1 used on roaming network. For example,
+ * "IP", "IPV6", "IPV4V6", or "PPP".
+ */
+ string roamingProtocol;
+
+ /** APN authentication type */
+ ApnAuthType authType;
+
+ /** The username for APN, or empty string */
+ string user;
+
+ /** The password for APN, or empty string */
+ string password;
+
+ /** Data profile technology type */
+ DataProfileInfoType type;
+
+ /**
+ * The required wait time in seconds after a successful UE initiated disconnect of a given PDN
+ * connection before the device can send a new PDN connection request for that given PDN.
+ */
+ int32_t waitTime;
+
+ /** True to enable the profile, false to disable */
+ bool enabled;
+
+ /** Supported APN types bitmap. See ApnTypes for the value of each bit. */
+ bitfield<ApnTypes> supportedApnTypesBitmap;
+
+ /** The bearer bitmap. See RadioAccessFamily for the value of each bit. */
+ bitfield<RadioAccessFamily> bearerBitmap;
+
+ /** Maximum transmission unit (MTU) size in bytes */
+ int32_t mtu;
+
+ /**
+ * True if this data profile was used to bring up the last default (i.e internet) data
+ * connection successfully.
+ */
+ bool preferred;
+
+ /**
+ * If true, modem must persist this data profile and profileId must not be
+ * set to DataProfileId.INVALID. If the same data profile exists, this data profile must
+ * overwrite it.
+ */
+ bool persistent;
+};
diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp
index 4614428..0a57b40 100644
--- a/tests/bar/1.0/default/Bar.cpp
+++ b/tests/bar/1.0/default/Bar.cpp
@@ -149,6 +149,10 @@
return mFoo->closeHandles();
}
+Return<void> Bar::repeatWithFmq(const IFoo::WithFmq& withFmq, repeatWithFmq_cb _hidl_cb) {
+ return mFoo->repeatWithFmq(withFmq, _hidl_cb);
+}
+
Return<void> Bar::echoNullInterface(const sp<IFooCallback> &cb, echoNullInterface_cb _hidl_cb) {
return mFoo->echoNullInterface(cb, _hidl_cb);
}
diff --git a/tests/bar/1.0/default/Bar.h b/tests/bar/1.0/default/Bar.h
index acb976f..4372266 100644
--- a/tests/bar/1.0/default/Bar.h
+++ b/tests/bar/1.0/default/Bar.h
@@ -56,6 +56,8 @@
virtual Return<void> createMyHandle(createMyHandle_cb _hidl_cb) override;
virtual Return<void> createHandles(uint32_t size, createHandles_cb _hidl_cb) override;
virtual Return<void> closeHandles() override;
+ virtual Return<void> repeatWithFmq(const IFoo::WithFmq& withFmq,
+ repeatWithFmq_cb _hidl_cb) override;
Return<void> haveAVectorOfInterfaces(
const hidl_vec<sp<ISimple> > &in,
diff --git a/tests/baz/1.0/IBaz.hal b/tests/baz/1.0/IBaz.hal
index 8118d8b..91ed1f2 100644
--- a/tests/baz/1.0/IBaz.hal
+++ b/tests/baz/1.0/IBaz.hal
@@ -36,6 +36,17 @@
typedef SomeOtherEnum thisIsAnAlias;
typedef IBaz anIBazByAnyOtherName;
+ struct NastyNester {
+ struct NestersNasty {
+ struct NestersNastyNester {
+ IBaz baz;
+ vec<NestersNasty> nasties;
+ };
+ };
+
+ IBaz baz;
+ };
+
enum SomeEnum : SomeOtherEnum {
quux = 33,
goober = 192,
diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal
index 4a930a2..f54994f 100644
--- a/tests/foo/1.0/IFoo.hal
+++ b/tests/foo/1.0/IFoo.hal
@@ -103,7 +103,6 @@
union U {
int8_t number;
int8_t[1][2] multidimArray;
- pointer p;
Fumble anotherStruct;
bitfield<BitField> bf;
} u;
@@ -122,6 +121,10 @@
bitfield<BitField> bf;
};
+ struct WithFmq {
+ fmq_sync<uint8_t> descSync;
+ };
+
enum Discriminator : uint8_t {
BOOL,
INT,
@@ -205,4 +208,6 @@
createMyHandle() generates (MyHandle h);
createHandles(uint32_t size) generates (vec<handle> handles);
closeHandles();
+
+ repeatWithFmq(WithFmq withFmq) generates (WithFmq withFmq);
};
diff --git a/tests/foo/1.0/default/Foo.cpp b/tests/foo/1.0/default/Foo.cpp
index a31ab9f..461568b 100644
--- a/tests/foo/1.0/default/Foo.cpp
+++ b/tests/foo/1.0/default/Foo.cpp
@@ -379,6 +379,11 @@
return Void();
}
+Return<void> Foo::repeatWithFmq(const IFoo::WithFmq& withFmq, repeatWithFmq_cb _hidl_cb) {
+ _hidl_cb(withFmq);
+ return Void();
+}
+
IFoo* HIDL_FETCH_IFoo(const char* /* name */) {
return new Foo();
}
diff --git a/tests/foo/1.0/default/Foo.h b/tests/foo/1.0/default/Foo.h
index 7dd672b..d73179a 100644
--- a/tests/foo/1.0/default/Foo.h
+++ b/tests/foo/1.0/default/Foo.h
@@ -53,6 +53,8 @@
virtual Return<void> createMyHandle(createMyHandle_cb _hidl_cb) override;
virtual Return<void> createHandles(uint32_t size, createHandles_cb _hidl_cb) override;
virtual Return<void> closeHandles() override;
+ virtual Return<void> repeatWithFmq(const IFoo::WithFmq& withFmq,
+ repeatWithFmq_cb _hidl_cb) override;
Return<void> haveAVectorOfInterfaces(
const hidl_vec<sp<ISimple> > &in,
@@ -63,6 +65,7 @@
haveAVectorOfGenericInterfaces_cb _hidl_cb) override;
Return<void> echoNullInterface(const sp<IFooCallback> &cb, echoNullInterface_cb _hidl_cb) override;
+
private:
std::vector<::native_handle_t *> mHandles;
};