From cbba4c7a493befbf530ac3da5e98467a26f264dd Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Fri, 11 Jan 2019 10:19:51 -0800 Subject: [PATCH] HIDL stuff to TestApi. Since the CTS test for android.os is build with test_current. Bug: 78650449 Test: android.os.cts Change-Id: If784f4949af931c6c4efc284f1d16414705fe2d4 --- Android.bp | 1 + api/test-current.txt | 140 +++++++++++++++++++++++++ core/java/android/os/HwBinder.java | 2 + core/java/android/os/HwBlob.java | 2 + core/java/android/os/HwParcel.java | 2 + core/java/android/os/IHwBinder.java | 2 + core/java/android/os/IHwInterface.java | 3 + core/java/android/os/NativeHandle.java | 2 + 8 files changed, 154 insertions(+) diff --git a/Android.bp b/Android.bp index 7e97e66a9e80e..c2024084d95d0 100644 --- a/Android.bp +++ b/Android.bp @@ -1067,6 +1067,7 @@ java_library { "core/java/android/annotation/IntDef.java", "core/java/android/annotation/NonNull.java", "core/java/android/annotation/SystemApi.java", + "core/java/android/annotation/TestApi.java", "core/java/android/os/HwBinder.java", "core/java/android/os/HwBlob.java", "core/java/android/os/HwParcel.java", diff --git a/api/test-current.txt b/api/test-current.txt index 6d40e690b5e4a..b01cd1b51133d 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -790,6 +790,134 @@ package android.os { method public static java.io.File getStorageDirectory(); } + public abstract class HwBinder implements android.os.IHwBinder { + ctor public HwBinder(); + method public static final void configureRpcThreadpool(long, boolean); + method public static void enableInstrumentation(); + method public static final android.os.IHwBinder getService(java.lang.String, java.lang.String) throws java.util.NoSuchElementException, android.os.RemoteException; + method public static final android.os.IHwBinder getService(java.lang.String, java.lang.String, boolean) throws java.util.NoSuchElementException, android.os.RemoteException; + method public static final void joinRpcThreadpool(); + method public abstract void onTransact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException; + method public final void registerService(java.lang.String) throws android.os.RemoteException; + method public final void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException; + } + + public class HwBlob { + ctor public HwBlob(int); + method public final void copyToBoolArray(long, boolean[], int); + method public final void copyToDoubleArray(long, double[], int); + method public final void copyToFloatArray(long, float[], int); + method public final void copyToInt16Array(long, short[], int); + method public final void copyToInt32Array(long, int[], int); + method public final void copyToInt64Array(long, long[], int); + method public final void copyToInt8Array(long, byte[], int); + method public final boolean getBool(long); + method public final double getDouble(long); + method public final float getFloat(long); + method public final short getInt16(long); + method public final int getInt32(long); + method public final long getInt64(long); + method public final byte getInt8(long); + method public final java.lang.String getString(long); + method public final long handle(); + method public final void putBlob(long, android.os.HwBlob); + method public final void putBool(long, boolean); + method public final void putBoolArray(long, boolean[]); + method public final void putDouble(long, double); + method public final void putDoubleArray(long, double[]); + method public final void putFloat(long, float); + method public final void putFloatArray(long, float[]); + method public final void putInt16(long, short); + method public final void putInt16Array(long, short[]); + method public final void putInt32(long, int); + method public final void putInt32Array(long, int[]); + method public final void putInt64(long, long); + method public final void putInt64Array(long, long[]); + method public final void putInt8(long, byte); + method public final void putInt8Array(long, byte[]); + method public final void putNativeHandle(long, android.os.NativeHandle); + method public final void putString(long, java.lang.String); + method public static java.lang.Boolean[] wrapArray(boolean[]); + method public static java.lang.Long[] wrapArray(long[]); + method public static java.lang.Byte[] wrapArray(byte[]); + method public static java.lang.Short[] wrapArray(short[]); + method public static java.lang.Integer[] wrapArray(int[]); + method public static java.lang.Float[] wrapArray(float[]); + method public static java.lang.Double[] wrapArray(double[]); + } + + public class HwParcel { + ctor public HwParcel(); + method public final void enforceInterface(java.lang.String); + method public final boolean readBool(); + method public final java.util.ArrayList readBoolVector(); + method public final android.os.HwBlob readBuffer(long); + method public final double readDouble(); + method public final java.util.ArrayList readDoubleVector(); + method public final android.os.HwBlob readEmbeddedBuffer(long, long, long, boolean); + method public final android.os.NativeHandle readEmbeddedNativeHandle(long, long); + method public final float readFloat(); + method public final java.util.ArrayList readFloatVector(); + method public final short readInt16(); + method public final java.util.ArrayList readInt16Vector(); + method public final int readInt32(); + method public final java.util.ArrayList readInt32Vector(); + method public final long readInt64(); + method public final java.util.ArrayList readInt64Vector(); + method public final byte readInt8(); + method public final java.util.ArrayList readInt8Vector(); + method public final android.os.NativeHandle readNativeHandle(); + method public final java.util.ArrayList readNativeHandleVector(); + method public final java.lang.String readString(); + method public final java.util.ArrayList readStringVector(); + method public final android.os.IHwBinder readStrongBinder(); + method public final void release(); + method public final void releaseTemporaryStorage(); + method public final void send(); + method public final void verifySuccess(); + method public final void writeBool(boolean); + method public final void writeBoolVector(java.util.ArrayList); + method public final void writeBuffer(android.os.HwBlob); + method public final void writeDouble(double); + method public final void writeDoubleVector(java.util.ArrayList); + method public final void writeFloat(float); + method public final void writeFloatVector(java.util.ArrayList); + method public final void writeInt16(short); + method public final void writeInt16Vector(java.util.ArrayList); + method public final void writeInt32(int); + method public final void writeInt32Vector(java.util.ArrayList); + method public final void writeInt64(long); + method public final void writeInt64Vector(java.util.ArrayList); + method public final void writeInt8(byte); + method public final void writeInt8Vector(java.util.ArrayList); + method public final void writeInterfaceToken(java.lang.String); + method public final void writeNativeHandle(android.os.NativeHandle); + method public final void writeNativeHandleVector(java.util.ArrayList); + method public final void writeStatus(int); + method public final void writeString(java.lang.String); + method public final void writeStringVector(java.util.ArrayList); + method public final void writeStrongBinder(android.os.IHwBinder); + field public static final int STATUS_SUCCESS = 0; // 0x0 + } + + public static abstract class HwParcel.Status implements java.lang.annotation.Annotation { + } + + public abstract interface IHwBinder { + method public abstract boolean linkToDeath(android.os.IHwBinder.DeathRecipient, long); + method public abstract android.os.IHwInterface queryLocalInterface(java.lang.String); + method public abstract void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException; + method public abstract boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient); + } + + public static abstract interface IHwBinder.DeathRecipient { + method public abstract void serviceDied(long); + } + + public abstract interface IHwInterface { + method public abstract android.os.IHwBinder asBinder(); + } + public class IncidentManager { method public void reportIncident(android.os.IncidentReportArgs); } @@ -810,6 +938,18 @@ package android.os { field public static final android.os.Parcelable.Creator CREATOR; } + public final class NativeHandle implements java.io.Closeable { + ctor public NativeHandle(); + ctor public NativeHandle(java.io.FileDescriptor, boolean); + ctor public NativeHandle(java.io.FileDescriptor[], int[], boolean); + method public void close() throws java.io.IOException; + method public android.os.NativeHandle dup() throws java.io.IOException; + method public java.io.FileDescriptor getFileDescriptor(); + method public java.io.FileDescriptor[] getFileDescriptors(); + method public int[] getInts(); + method public boolean hasSingleFileDescriptor(); + } + public final class MessageQueue { method public int postSyncBarrier(); method public void removeSyncBarrier(int); diff --git a/core/java/android/os/HwBinder.java b/core/java/android/os/HwBinder.java index 3de3494e7ea72..9e3e83e14a487 100644 --- a/core/java/android/os/HwBinder.java +++ b/core/java/android/os/HwBinder.java @@ -17,6 +17,7 @@ package android.os; import android.annotation.SystemApi; +import android.annotation.TestApi; import libcore.util.NativeAllocationRegistry; @@ -24,6 +25,7 @@ import java.util.NoSuchElementException; /** @hide */ @SystemApi +@TestApi public abstract class HwBinder implements IHwBinder { private static final String TAG = "HwBinder"; diff --git a/core/java/android/os/HwBlob.java b/core/java/android/os/HwBlob.java index 6a5bb1c0a988c..0ec63b5815f1a 100644 --- a/core/java/android/os/HwBlob.java +++ b/core/java/android/os/HwBlob.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.NonNull; import android.annotation.SystemApi; +import android.annotation.TestApi; import libcore.util.NativeAllocationRegistry; @@ -28,6 +29,7 @@ import libcore.util.NativeAllocationRegistry; * @hide */ @SystemApi +@TestApi public class HwBlob { private static final String TAG = "HwBlob"; diff --git a/core/java/android/os/HwParcel.java b/core/java/android/os/HwParcel.java index 7a51db2dc5f99..7919a00166bf7 100644 --- a/core/java/android/os/HwParcel.java +++ b/core/java/android/os/HwParcel.java @@ -18,6 +18,7 @@ package android.os; import android.annotation.IntDef; import android.annotation.SystemApi; +import android.annotation.TestApi; import libcore.util.NativeAllocationRegistry; @@ -28,6 +29,7 @@ import java.util.Arrays; /** @hide */ @SystemApi +@TestApi public class HwParcel { private static final String TAG = "HwParcel"; diff --git a/core/java/android/os/IHwBinder.java b/core/java/android/os/IHwBinder.java index 249eb3aa3456f..46fa6ef3b783b 100644 --- a/core/java/android/os/IHwBinder.java +++ b/core/java/android/os/IHwBinder.java @@ -17,9 +17,11 @@ package android.os; import android.annotation.SystemApi; +import android.annotation.TestApi; /** @hide */ @SystemApi +@TestApi public interface IHwBinder { /** * Process a hwbinder transaction. diff --git a/core/java/android/os/IHwInterface.java b/core/java/android/os/IHwInterface.java index f9edd5bf88836..0a5a71550b06f 100644 --- a/core/java/android/os/IHwInterface.java +++ b/core/java/android/os/IHwInterface.java @@ -17,8 +17,11 @@ package android.os; import android.annotation.SystemApi; +import android.annotation.TestApi; + /** @hide */ @SystemApi +@TestApi public interface IHwInterface { /** * @return the binder object that corresponds to this interface. diff --git a/core/java/android/os/NativeHandle.java b/core/java/android/os/NativeHandle.java index f7ffc37f085ff..f13bf5fccd38e 100644 --- a/core/java/android/os/NativeHandle.java +++ b/core/java/android/os/NativeHandle.java @@ -20,6 +20,7 @@ import static android.system.OsConstants.F_DUPFD_CLOEXEC; import android.annotation.NonNull; import android.annotation.SystemApi; +import android.annotation.TestApi; import android.system.ErrnoException; import android.system.Os; @@ -32,6 +33,7 @@ import java.io.FileDescriptor; * @hide */ @SystemApi +@TestApi public final class NativeHandle implements Closeable { // whether this object owns mFds private boolean mOwn = false;