Merge "graphics: improve PRESENT_OR_VALIDATE_DISPLAY support"
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 3788bc6..54274c8 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -63,3 +63,4 @@
$(call add-clean-step, find $(PRODUCT_OUT)/system $(PRODUCT_OUT)/vendor -type f -name "android\.hardware\.configstore\@1\.1*" -print0 | xargs -0 rm -f)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/android.hardware.tests*)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk/android.hardware.tests*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-sp/android.hardware.graphics.allocator*)
diff --git a/camera/device/1.0/default/Android.bp b/camera/device/1.0/default/Android.bp
index e0b31f0..4a7fc9c 100644
--- a/camera/device/1.0/default/Android.bp
+++ b/camera/device/1.0/default/Android.bp
@@ -29,9 +29,6 @@
header_libs: [
"media_plugin_headers",
],
- include_dirs: [
- "frameworks/native/include/media/openmax"
- ],
export_include_dirs: ["."]
}
diff --git a/cas/1.0/default/Android.bp b/cas/1.0/default/Android.bp
index 6da5cc4..544162b 100644
--- a/cas/1.0/default/Android.bp
+++ b/cas/1.0/default/Android.bp
@@ -12,12 +12,6 @@
"TypeConvert.cpp",
],
- product_variables: {
- treble: {
- cflags: ["-DUSE_VNDBINDER"],
- },
- },
-
compile_multilib: "32",
init_rc: ["android.hardware.cas@1.0-service.rc"],
diff --git a/cas/1.0/default/service.cpp b/cas/1.0/default/service.cpp
index 3f1df5a..04a8ad9 100644
--- a/cas/1.0/default/service.cpp
+++ b/cas/1.0/default/service.cpp
@@ -31,11 +31,9 @@
int main() {
ALOGD("android.hardware.cas@1.0-service starting...");
-#ifdef USE_VNDBINDER
// The CAS HAL may communicate to other vendor components via
// /dev/vndbinder
android::ProcessState::initWithDriver("/dev/vndbinder");
-#endif // USE_VNDBINDER
configureRpcThreadpool(8, true /* callerWillJoin */);
diff --git a/compatibility_matrix.26.xml b/compatibility_matrix.26.xml
index 5c81f26..6ba87c0 100644
--- a/compatibility_matrix.26.xml
+++ b/compatibility_matrix.26.xml
@@ -1,4 +1,4 @@
-<compatibility-matrix version="1.0" type="framework">
+<compatibility-matrix version="1.0" type="framework" level="1">
<hal format="hidl" optional="false">
<name>android.hardware.audio</name>
<version>2.0</version>
@@ -57,7 +57,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.broadcastradio</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IBroadcastRadioFactory</name>
<instance>default</instance>
@@ -71,14 +71,6 @@
<instance>legacy/0</instance>
</interface>
</hal>
- <hal format="hidl" optional="true">
- <name>android.hardware.cas</name>
- <version>1.0</version>
- <interface>
- <name>IMediaCasService</name>
- <instance>default</instance>
- </interface>
- </hal>
<hal format="hidl" optional="false">
<name>android.hardware.configstore</name>
<version>1.0</version>
@@ -212,16 +204,8 @@
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.oemlock</name>
- <version>1.0</version>
- <interface>
- <name>IOemLock</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.power</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IPower</name>
<instance>default</instance>
@@ -229,7 +213,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
@@ -272,24 +256,8 @@
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.tetheroffload.config</name>
- <version>1.0</version>
- <interface>
- <name>IOffloadConfig</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
- <name>android.hardware.tetheroffload.control</name>
- <version>1.0</version>
- <interface>
- <name>IOffloadControl</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.thermal</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IThermal</name>
<instance>default</instance>
@@ -313,7 +281,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.usb</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IUsb</name>
<instance>default</instance>
@@ -321,7 +289,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.vibrator</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>
@@ -336,30 +304,14 @@
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.weaver</name>
- <version>1.0</version>
- <interface>
- <name>IWeaver</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.wifi</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IWifi</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.wifi.offload</name>
- <version>1.0</version>
- <interface>
- <name>IOffload</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.wifi.supplicant</name>
<version>1.0</version>
<interface>
diff --git a/compatibility_matrix.27.xml b/compatibility_matrix.27.xml
index 5c81f26..ea8dde8 100644
--- a/compatibility_matrix.27.xml
+++ b/compatibility_matrix.27.xml
@@ -1,4 +1,4 @@
-<compatibility-matrix version="1.0" type="framework">
+<compatibility-matrix version="1.0" type="framework" level="2">
<hal format="hidl" optional="false">
<name>android.hardware.audio</name>
<version>2.0</version>
diff --git a/compatibility_matrix.current.xml b/compatibility_matrix.current.xml
index 56751c3..5296142 100644
--- a/compatibility_matrix.current.xml
+++ b/compatibility_matrix.current.xml
@@ -1,4 +1,4 @@
-<compatibility-matrix version="1.0" type="framework">
+<compatibility-matrix version="1.0" type="framework" level="3">
<hal format="hidl" optional="false">
<name>android.hardware.audio</name>
<version>2.0</version>
diff --git a/compatibility_matrix.legacy.xml b/compatibility_matrix.legacy.xml
index 5655fb9..6792598 100644
--- a/compatibility_matrix.legacy.xml
+++ b/compatibility_matrix.legacy.xml
@@ -1,4 +1,4 @@
-<compatibility-matrix version="1.0" type="framework">
+<compatibility-matrix version="1.0" type="framework" level="legacy">
<hal format="hidl" optional="false">
<name>android.hardware.audio</name>
<version>2.0</version>
@@ -57,7 +57,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.broadcastradio</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IBroadcastRadioFactory</name>
<instance>default</instance>
@@ -71,14 +71,6 @@
<instance>legacy/0</instance>
</interface>
</hal>
- <hal format="hidl" optional="true">
- <name>android.hardware.cas</name>
- <version>1.0</version>
- <interface>
- <name>IMediaCasService</name>
- <instance>default</instance>
- </interface>
- </hal>
<hal format="hidl" optional="false">
<name>android.hardware.configstore</name>
<version>1.0</version>
@@ -212,16 +204,8 @@
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.oemlock</name>
- <version>1.0</version>
- <interface>
- <name>IOemLock</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.power</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IPower</name>
<instance>default</instance>
@@ -229,7 +213,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
@@ -272,24 +256,8 @@
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.tetheroffload.config</name>
- <version>1.0</version>
- <interface>
- <name>IOffloadConfig</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
- <name>android.hardware.tetheroffload.control</name>
- <version>1.0</version>
- <interface>
- <name>IOffloadControl</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.thermal</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IThermal</name>
<instance>default</instance>
@@ -313,7 +281,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.usb</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IUsb</name>
<instance>default</instance>
@@ -321,7 +289,7 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.vibrator</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>
@@ -336,30 +304,14 @@
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.weaver</name>
- <version>1.0</version>
- <interface>
- <name>IWeaver</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.wifi</name>
- <version>1.0-1</version>
+ <version>1.0</version>
<interface>
<name>IWifi</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
- <name>android.hardware.wifi.offload</name>
- <version>1.0</version>
- <interface>
- <name>IOffload</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl" optional="true">
<name>android.hardware.wifi.supplicant</name>
<version>1.0</version>
<interface>
diff --git a/current.txt b/current.txt
index db34c37..990afcd 100644
--- a/current.txt
+++ b/current.txt
@@ -27,14 +27,6 @@
c93cb25a1a92d07aa80a617c01e8d22fc97bf8cefd3962b6a5be386ad4704d89 android.hardware.audio.effect@2.0::IVirtualizerEffect
918f331780c9c7b04f2151a2e563aab088198ede8e6f865302ebaa13905bd9ce android.hardware.audio.effect@2.0::IVisualizerEffect
4caad099f8fc00262b6c03ba41271808b37cea90ac98b534299bbf4ee823af02 android.hardware.audio.effect@2.0::types
-f2904a4c108ad1b93eb2fa4e43b82bd01ce1ff26156316e49d1d9fc80dfecaad android.hardware.automotive.evs@1.0::IEvsCamera
-94cba6ad04c83aa840de2ed52b74ba2126a26dd960225e61ac36703315279a80 android.hardware.automotive.evs@1.0::IEvsCameraStream
-5ea36fb043d9e3b413219de3dfd7b046b48af4fda39f167f3528652e986cb76d android.hardware.automotive.evs@1.0::IEvsDisplay
-14ef8e993a4a7c899b19bb5e39b5b0cafd28312ea2b127e35b3be8f08e23fe8e android.hardware.automotive.evs@1.0::IEvsEnumerator
-3b17c1fdfc389e0abe626c37054954b07201127d890c2bc05d47613ec1f4de4f android.hardware.automotive.evs@1.0::types
-cde0787e4bf4b450a9ceb9011d2698c0061322eb882621e89b70594b0b7c65c5 android.hardware.automotive.vehicle@2.0::IVehicle
-80fb4156fa91ce86e49bd2cabe215078f6b69591d416a09e914532eae6712052 android.hardware.automotive.vehicle@2.0::IVehicleCallback
-248004f0832b48199558bd5d1aacc29e7e6423dd0ff6012be142e23621f03f4b android.hardware.automotive.vehicle@2.0::types
1fbdc1f852f8bd2e4a6c5cb30ac2b78668c98dce118a61762d4034ae859f43d8 android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint
aabb5c3c585592d71ee57b77298c14993d77914ddeaa64b2c5109a602b02ea47 android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprintClientCallback
1ec60d4efddae9a7b2469278a576967b4751e88de5b8d7e9df6eff6bc0da7bc9 android.hardware.biometrics.fingerprint@2.1::types
@@ -189,7 +181,6 @@
# ABI preserving changes to HALs during Android O MR1 (Initial Set)
-26a4dd19a71f3a28249100af29be470f80e08355165fe6a7173aaa1ef264640d android.hardware.automotive.vehicle@2.0::types
150a338ce11fcec70757c9675d83cf6a5d7b40d0c812741b91671fecce59eac9 android.hardware.broadcastradio@1.0::types
dc7e6d4f537b9943e27edc4f86c5a03bb643b18f18f866f8c3c71c0ac4ea8cbc android.hardware.broadcastradio@1.0::types
760485232f6cce07f8bb05e3475509956996b702f77415ee5bff05e2ec5a5bcc android.hardware.dumpstate@1.0::IDumpstateDevice
diff --git a/graphics/allocator/2.0/Android.bp b/graphics/allocator/2.0/Android.bp
index 0b0722e..50b474e 100644
--- a/graphics/allocator/2.0/Android.bp
+++ b/graphics/allocator/2.0/Android.bp
@@ -5,7 +5,6 @@
root: "android.hardware",
vndk: {
enabled: true,
- support_system_process: true,
},
srcs: [
"IAllocator.hal",
diff --git a/light/2.0/default/Android.bp b/light/2.0/default/Android.bp
new file mode 100644
index 0000000..8b5f780
--- /dev/null
+++ b/light/2.0/default/Android.bp
@@ -0,0 +1,53 @@
+// Copyright (C) 2017 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.
+
+cc_library_shared {
+ name: "android.hardware.light@2.0-impl",
+ defaults: ["hidl_defaults"],
+ vendor: true,
+ relative_install_path: "hw",
+ srcs: ["Light.cpp"],
+
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libhidlbase",
+ "libhidltransport",
+ "libhardware",
+ "libutils",
+ "android.hardware.light@2.0",
+ ],
+
+}
+
+cc_binary {
+ name: "android.hardware.light@2.0-service",
+ relative_install_path: "hw",
+ defaults: ["hidl_defaults"],
+ vendor: true,
+ init_rc: ["android.hardware.light@2.0-service.rc"],
+ srcs: ["service.cpp"],
+
+ shared_libs: [
+ "liblog",
+ "libbase",
+ "libdl",
+ "libutils",
+ "libhardware",
+ "libhidlbase",
+ "libhidltransport",
+ "android.hardware.light@2.0",
+ ],
+
+}
\ No newline at end of file
diff --git a/light/2.0/default/Android.mk b/light/2.0/default/Android.mk
deleted file mode 100644
index da75e1a..0000000
--- a/light/2.0/default/Android.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := android.hardware.light@2.0-impl
-LOCAL_PROPRIETARY_MODULE := true
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_SRC_FILES := \
- Light.cpp \
-
-LOCAL_CFLAGS := -Wall -Werror
-
-LOCAL_SHARED_LIBRARIES := \
- libhidlbase \
- libhidltransport \
- libutils \
- liblog \
- libcutils \
- libhardware \
- libbase \
- libcutils \
- android.hardware.light@2.0 \
-
-include $(BUILD_SHARED_LIBRARY)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_PROPRIETARY_MODULE := true
-LOCAL_MODULE := android.hardware.light@2.0-service
-LOCAL_INIT_RC := android.hardware.light@2.0-service.rc
-LOCAL_SRC_FILES := \
- service.cpp \
-
-LOCAL_CFLAGS := -Wall -Werror
-
-LOCAL_SHARED_LIBRARIES := \
- liblog \
- libcutils \
- libdl \
- libbase \
- libutils \
- libhardware \
-
-LOCAL_SHARED_LIBRARIES += \
- libhidlbase \
- libhidltransport \
- android.hardware.light@2.0 \
-
-include $(BUILD_EXECUTABLE)
diff --git a/radio/1.2/types.hal b/radio/1.2/types.hal
index 6b57ae3..52af575 100644
--- a/radio/1.2/types.hal
+++ b/radio/1.2/types.hal
@@ -35,7 +35,7 @@
import @1.1::ScanType;
enum RadioConst : @1.0::RadioConst {
- RADIO_ACCESS_SPEFICIER_MAX_SIZE = 8,
+ RADIO_ACCESS_SPECIFIER_MAX_SIZE = 8,
};
/**
@@ -74,7 +74,7 @@
/**
* Networks with bands/channels to scan
* Maximum length of the vector is
- * RadioConst:RADIO_ACCESS_SPEFICIER_MAX_SIZE
+ * RadioConst:RADIO_ACCESS_SPECIFIER_MAX_SIZE
*/
vec<RadioAccessSpecifier> specifiers;
@@ -220,4 +220,4 @@
* Valid only if type = tdscdma and size = 1 else must be empty.
*/
vec<CellInfoTdscdma> tdscdma;
-};
\ No newline at end of file
+};
diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp
index 6a8a360..4614428 100644
--- a/tests/bar/1.0/default/Bar.cpp
+++ b/tests/bar/1.0/default/Bar.cpp
@@ -19,6 +19,11 @@
}
// Methods from ::android::hardware::tests::foo::V1_0::IFoo follow.
+Return<void> Bar::convertToBoolIfSmall(Discriminator d, const hidl_vec<Union>& u,
+ convertToBoolIfSmall_cb _hidl_cb) {
+ return mFoo->convertToBoolIfSmall(d, u, _hidl_cb);
+}
+
Return<void> Bar::doThis(float param) {
return mFoo->doThis(param);
}
diff --git a/tests/bar/1.0/default/Bar.h b/tests/bar/1.0/default/Bar.h
index b276823..acb976f 100644
--- a/tests/bar/1.0/default/Bar.h
+++ b/tests/bar/1.0/default/Bar.h
@@ -31,6 +31,8 @@
Bar();
// Methods from ::android::hardware::tests::foo::V1_0::IFoo follow.
+ virtual Return<void> convertToBoolIfSmall(Discriminator d, const hidl_vec<Union>& u,
+ convertToBoolIfSmall_cb _hidl_cb) override;
virtual Return<void> doThis(float param) override;
virtual Return<int32_t> doThatAndReturnSomething(int64_t param) override;
virtual Return<double> doQuiteABit(int32_t a, int64_t b, float c, double d) override;
diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal
index c1ce7b0..4a930a2 100644
--- a/tests/foo/1.0/IFoo.hal
+++ b/tests/foo/1.0/IFoo.hal
@@ -122,6 +122,19 @@
bitfield<BitField> bf;
};
+ enum Discriminator : uint8_t {
+ BOOL,
+ INT,
+ };
+ union Union {
+ bool boolValue;
+ int64_t intValue;
+ };
+ struct ContainsUnion {
+ Discriminator discriminator;
+ Union value;
+ };
+
typedef int32_t[5][6][7] multidimArrayOne;
typedef multidimArrayOne[8][9][10] multidimArrayTwo;
typedef multidimArrayTwo[2][3][4] multidimArrayThree;
@@ -144,6 +157,16 @@
InnerTestEnumTypedef foo;
};
+ /**
+ * If d is INT, converts all values to bools which are small enough (0 or 1).
+ * If d is BOOL, should leave all values as BOOLs.
+ *
+ * @param d discriminator for all values in u
+ * @param u values to be expanded
+ * @return c must have same length as u unless there is an error in which case it will be empty.
+ */
+ convertToBoolIfSmall(Discriminator d, vec<Union> u) generates (vec<ContainsUnion> c);
+
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/default/Foo.cpp b/tests/foo/1.0/default/Foo.cpp
index a860ce7..a31ab9f 100644
--- a/tests/foo/1.0/default/Foo.cpp
+++ b/tests/foo/1.0/default/Foo.cpp
@@ -15,6 +15,30 @@
namespace implementation {
// Methods from ::android::hardware::tests::foo::V1_0::IFoo follow.
+Return<void> Foo::convertToBoolIfSmall(Discriminator d, const hidl_vec<Union>& u,
+ convertToBoolIfSmall_cb _hidl_cb) {
+ hidl_vec<ContainsUnion> res(u.size());
+ for (size_t i = 0; i < u.size(); i++) {
+ ContainsUnion& outValue = res[i];
+
+ if (d == Discriminator::BOOL) {
+ outValue.discriminator = Discriminator::BOOL;
+ outValue.value.boolValue = u[i].boolValue;
+ } else {
+ uint64_t value = u[i].intValue;
+ if (value == 0 || value == 1) {
+ outValue.discriminator = Discriminator::BOOL;
+ outValue.value.boolValue = static_cast<bool>(value);
+ } else {
+ outValue.discriminator = Discriminator::INT;
+ outValue.value.intValue = value;
+ }
+ }
+ }
+ _hidl_cb(res);
+ return Void();
+}
+
Return<void> Foo::doThis(float param) {
LOG(INFO) << "SERVER(Foo) doThis(" << param << ")";
diff --git a/tests/foo/1.0/default/Foo.h b/tests/foo/1.0/default/Foo.h
index 4558a73..7dd672b 100644
--- a/tests/foo/1.0/default/Foo.h
+++ b/tests/foo/1.0/default/Foo.h
@@ -22,9 +22,14 @@
using ::android::hardware::hidl_vec;
using ::android::hardware::hidl_string;
using ::android::sp;
+using ContainsUnion = ::android::hardware::tests::foo::V1_0::IFoo::ContainsUnion;
+using Discriminator = ::android::hardware::tests::foo::V1_0::IFoo::Discriminator;
+using Union = ::android::hardware::tests::foo::V1_0::IFoo::Union;
struct Foo : public IFoo {
// Methods from ::android::hardware::tests::foo::V1_0::IFoo follow.
+ virtual Return<void> convertToBoolIfSmall(Discriminator d, const hidl_vec<Union>& u,
+ convertToBoolIfSmall_cb _hidl_cb) override;
virtual Return<void> doThis(float param) override;
virtual Return<int32_t> doThatAndReturnSomething(int64_t param) override;
virtual Return<double> doQuiteABit(int32_t a, int64_t b, float c, double d) override;