You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
222 lines
5.7 KiB
222 lines
5.7 KiB
/*
|
|
* 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;
|
|
|
|
import IFooCallback;
|
|
import IMyTypes.SomeStruct;
|
|
import ISimple;
|
|
import ITheirTypes.FloatArray;
|
|
|
|
@SensitiveData // for test
|
|
interface IFoo {
|
|
|
|
enum SomeBaseEnum : uint8_t {
|
|
bar = 66
|
|
};
|
|
|
|
enum SomeEnum : SomeBaseEnum {
|
|
quux = 33,
|
|
goober = 192,
|
|
blah = goober
|
|
};
|
|
|
|
enum BitField : uint8_t {
|
|
V0 = 1 << 0,
|
|
V1 = 1 << 1,
|
|
V2 = 1 << 2,
|
|
V3 = 1 << 3,
|
|
VALL = V0 | V1 | V2 | V3,
|
|
};
|
|
|
|
struct Fumble {
|
|
Outer.Inner data;
|
|
};
|
|
|
|
typedef Fumble Gumble;
|
|
|
|
struct Goober {
|
|
int32_t q;
|
|
string name;
|
|
string address;
|
|
double[10] numbers;
|
|
Fumble fumble;
|
|
Gumble gumble;
|
|
// vec<double> lotsOfFumbles;
|
|
// handle loveHandle;
|
|
};
|
|
|
|
typedef float[3] ThreeFloats;
|
|
typedef float[5] FiveFloats;
|
|
|
|
struct Quux {
|
|
string first;
|
|
string last;
|
|
};
|
|
|
|
typedef Quux[3] ThreeQuuxes;
|
|
|
|
struct MultiDimensional {
|
|
ThreeQuuxes[5] quuxMatrix;
|
|
};
|
|
|
|
typedef string[3] ThreeStrings;
|
|
typedef string[5] FiveStrings;
|
|
|
|
struct StringMatrix3x5 {
|
|
FiveStrings[3] s;
|
|
};
|
|
|
|
struct StringMatrix5x3 {
|
|
ThreeStrings[5] s;
|
|
};
|
|
|
|
struct MyStruct {
|
|
SomeStruct innerStruct;
|
|
FloatArray myFloatArray;
|
|
};
|
|
|
|
struct MyHandle {
|
|
handle h;
|
|
int32_t guard;
|
|
};
|
|
|
|
struct MyMask {
|
|
bitfield<BitField> value;
|
|
};
|
|
|
|
typedef bitfield<BitField> Mask;
|
|
|
|
struct Everything {
|
|
union U {
|
|
int8_t number;
|
|
int8_t[1][2] multidimArray;
|
|
Fumble anotherStruct;
|
|
bitfield<BitField> bf;
|
|
} u;
|
|
|
|
int8_t number;
|
|
handle h;
|
|
fmq_sync<uint8_t> descSync;
|
|
fmq_unsync<uint8_t> descUnsync;
|
|
memory mem;
|
|
pointer p;
|
|
string s;
|
|
vec<string> vs;
|
|
string[2][2] multidimArray;
|
|
string[3] sArray;
|
|
Quux anotherStruct;
|
|
bitfield<BitField> bf;
|
|
};
|
|
|
|
struct WithFmq {
|
|
struct ScatterGather {
|
|
fmq_sync<uint8_t> descSync;
|
|
} scatterGathered;
|
|
|
|
struct ContainsPointer {
|
|
fmq_sync<uint8_t> descSync;
|
|
interface foo;
|
|
} containsPointer;
|
|
};
|
|
|
|
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;
|
|
|
|
struct InnerTestStruct {};
|
|
typedef InnerTestStruct InnerTestStructTypedef;
|
|
struct S1 {
|
|
struct InnerTestStruct {};
|
|
InnerTestStructTypedef foo;
|
|
};
|
|
|
|
enum InnerTestEnum : int32_t {
|
|
VALUE = 0
|
|
};
|
|
typedef InnerTestEnum InnerTestEnumTypedef;
|
|
struct S2 {
|
|
enum InnerTestEnum : int32_t {
|
|
VALUE = 1
|
|
};
|
|
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);
|
|
doSomethingElse(int32_t[15] param) generates (int32_t[32] something);
|
|
doStuffAndReturnAString() generates (string something);
|
|
mapThisVector(vec<int32_t> param) generates (vec<int32_t> something);
|
|
oneway callMe(IFooCallback cb);
|
|
useAnEnum(SomeEnum zzz) generates (SomeEnum sleepy);
|
|
|
|
haveAGooberVec(vec<Goober> param);
|
|
haveAGoober(Goober g);
|
|
haveAGooberArray(Goober[20] lots);
|
|
|
|
haveATypeFromAnotherFile(Abc def);
|
|
|
|
haveSomeStrings(string[3] array) generates (string[2] result);
|
|
haveAStringVec(vec<string> vector) generates (vec<string> result);
|
|
|
|
transposeMe(FiveFloats[3] in) generates (ThreeFloats[5] out);
|
|
callingDrWho(MultiDimensional in) generates (MultiDimensional out);
|
|
|
|
transpose(StringMatrix5x3 in) generates (StringMatrix3x5 out);
|
|
transpose2(ThreeStrings[5] in) generates (FiveStrings[3] out);
|
|
|
|
sendVec(vec<uint8_t> data) generates (vec<uint8_t> data);
|
|
|
|
sendVecVec() generates (vec<vec<uint8_t>> vecvec);
|
|
|
|
haveAVectorOfInterfaces(vec<ISimple> in) generates (vec<ISimple> out);
|
|
|
|
haveAVectorOfGenericInterfaces(vec<interface> in)
|
|
generates (vec<interface> out);
|
|
|
|
echoNullInterface(IFooCallback cb) generates (bool receivedNull, IFooCallback cb);
|
|
|
|
createMyHandle() generates (MyHandle h);
|
|
createHandles(uint32_t size) generates (vec<handle> handles);
|
|
closeHandles();
|
|
|
|
repeatWithFmq(WithFmq withFmq) generates (WithFmq withFmq);
|
|
};
|