xref: /aosp_15_r20/hardware/interfaces/tests/baz/1.0/IBaz.hal (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker/*
2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project
3*4d7e907cSAndroid Build Coastguard Worker *
4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*4d7e907cSAndroid Build Coastguard Worker *
8*4d7e907cSAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*4d7e907cSAndroid Build Coastguard Worker *
10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License.
15*4d7e907cSAndroid Build Coastguard Worker */
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected];
18*4d7e907cSAndroid Build Coastguard Worker
19*4d7e907cSAndroid Build Coastguard Workerimport IBase;
20*4d7e907cSAndroid Build Coastguard Workerimport IBazCallback;
21*4d7e907cSAndroid Build Coastguard Worker
22*4d7e907cSAndroid Build Coastguard Workerinterface IBaz extends IBase {
23*4d7e907cSAndroid Build Coastguard Worker
24*4d7e907cSAndroid Build Coastguard Worker    enum BitField : uint8_t {
25*4d7e907cSAndroid Build Coastguard Worker        V0 = 1 << 0,
26*4d7e907cSAndroid Build Coastguard Worker        V1 = 1 << 1,
27*4d7e907cSAndroid Build Coastguard Worker        V2 = 1 << 2,
28*4d7e907cSAndroid Build Coastguard Worker        V3 = 1 << 3,
29*4d7e907cSAndroid Build Coastguard Worker        VALL = V0 | V1 | V2 | V3,
30*4d7e907cSAndroid Build Coastguard Worker    };
31*4d7e907cSAndroid Build Coastguard Worker
32*4d7e907cSAndroid Build Coastguard Worker    struct BitFieldTester {
33*4d7e907cSAndroid Build Coastguard Worker      bitfield<BitField> scalar;
34*4d7e907cSAndroid Build Coastguard Worker      vec<bitfield<BitField>> vector;
35*4d7e907cSAndroid Build Coastguard Worker     };
36*4d7e907cSAndroid Build Coastguard Worker
37*4d7e907cSAndroid Build Coastguard Worker    enum SomeOtherEnum : uint8_t {
38*4d7e907cSAndroid Build Coastguard Worker        bar = 66
39*4d7e907cSAndroid Build Coastguard Worker    };
40*4d7e907cSAndroid Build Coastguard Worker
41*4d7e907cSAndroid Build Coastguard Worker    typedef SomeOtherEnum thisIsAnAlias;
42*4d7e907cSAndroid Build Coastguard Worker    typedef IBaz anIBazByAnyOtherName;
43*4d7e907cSAndroid Build Coastguard Worker
44*4d7e907cSAndroid Build Coastguard Worker    struct NastyNester {
45*4d7e907cSAndroid Build Coastguard Worker        struct NestersNasty {
46*4d7e907cSAndroid Build Coastguard Worker            struct NestersNastyNester {
47*4d7e907cSAndroid Build Coastguard Worker                IBaz baz;
48*4d7e907cSAndroid Build Coastguard Worker                vec<NestersNasty> nasties;
49*4d7e907cSAndroid Build Coastguard Worker            };
50*4d7e907cSAndroid Build Coastguard Worker        };
51*4d7e907cSAndroid Build Coastguard Worker
52*4d7e907cSAndroid Build Coastguard Worker        IBaz baz;
53*4d7e907cSAndroid Build Coastguard Worker    };
54*4d7e907cSAndroid Build Coastguard Worker
55*4d7e907cSAndroid Build Coastguard Worker    enum SomeEnum : SomeOtherEnum {
56*4d7e907cSAndroid Build Coastguard Worker        quux = 33,
57*4d7e907cSAndroid Build Coastguard Worker        goober = 192,
58*4d7e907cSAndroid Build Coastguard Worker        blah = goober
59*4d7e907cSAndroid Build Coastguard Worker    };
60*4d7e907cSAndroid Build Coastguard Worker
61*4d7e907cSAndroid Build Coastguard Worker    typedef int32_t[3] ThreeInts;
62*4d7e907cSAndroid Build Coastguard Worker    struct T {
63*4d7e907cSAndroid Build Coastguard Worker        ThreeInts[5]  matrix5x3;
64*4d7e907cSAndroid Build Coastguard Worker        int32_t[3][5] matrix3x5;
65*4d7e907cSAndroid Build Coastguard Worker    };
66*4d7e907cSAndroid Build Coastguard Worker
67*4d7e907cSAndroid Build Coastguard Worker    struct NestedStruct {
68*4d7e907cSAndroid Build Coastguard Worker        int32_t a;
69*4d7e907cSAndroid Build Coastguard Worker        vec<T> matrices;
70*4d7e907cSAndroid Build Coastguard Worker    };
71*4d7e907cSAndroid Build Coastguard Worker
72*4d7e907cSAndroid Build Coastguard Worker    struct Quux {
73*4d7e907cSAndroid Build Coastguard Worker        string first;
74*4d7e907cSAndroid Build Coastguard Worker        string last;
75*4d7e907cSAndroid Build Coastguard Worker    };
76*4d7e907cSAndroid Build Coastguard Worker    struct Everything {
77*4d7e907cSAndroid Build Coastguard Worker        int8_t number;
78*4d7e907cSAndroid Build Coastguard Worker        int32_t anotherNumber;
79*4d7e907cSAndroid Build Coastguard Worker        string s;
80*4d7e907cSAndroid Build Coastguard Worker        vec<string> vs;
81*4d7e907cSAndroid Build Coastguard Worker        string[2][2] multidimArray;
82*4d7e907cSAndroid Build Coastguard Worker        string[3] sArray;
83*4d7e907cSAndroid Build Coastguard Worker        Quux anotherStruct;
84*4d7e907cSAndroid Build Coastguard Worker        bitfield<BitField> bf;
85*4d7e907cSAndroid Build Coastguard Worker    };
86*4d7e907cSAndroid Build Coastguard Worker
87*4d7e907cSAndroid Build Coastguard Worker    struct MyHandle {
88*4d7e907cSAndroid Build Coastguard Worker        handle h;
89*4d7e907cSAndroid Build Coastguard Worker        int32_t guard;
90*4d7e907cSAndroid Build Coastguard Worker    };
91*4d7e907cSAndroid Build Coastguard Worker
92*4d7e907cSAndroid Build Coastguard Worker    struct StructWithInterface {
93*4d7e907cSAndroid Build Coastguard Worker        int32_t number;
94*4d7e907cSAndroid Build Coastguard Worker        int8_t[7] array;
95*4d7e907cSAndroid Build Coastguard Worker        string oneString;
96*4d7e907cSAndroid Build Coastguard Worker        vec<string> vectorOfStrings;
97*4d7e907cSAndroid Build Coastguard Worker        interface iface;
98*4d7e907cSAndroid Build Coastguard Worker    };
99*4d7e907cSAndroid Build Coastguard Worker    oneway doThis(float param);
100*4d7e907cSAndroid Build Coastguard Worker
101*4d7e907cSAndroid Build Coastguard Worker    doThatAndReturnSomething(int64_t param) generates (int32_t result);
102*4d7e907cSAndroid Build Coastguard Worker    doQuiteABit(int32_t a, int64_t b, float c, double d) generates (double something);
103*4d7e907cSAndroid Build Coastguard Worker    doSomethingElse(int32_t[15] param) generates (int32_t[32] something);
104*4d7e907cSAndroid Build Coastguard Worker    doStuffAndReturnAString() generates (string something);
105*4d7e907cSAndroid Build Coastguard Worker    mapThisVector(vec<int32_t> param) generates (vec<int32_t> something);
106*4d7e907cSAndroid Build Coastguard Worker    callMe(IBazCallback cb);
107*4d7e907cSAndroid Build Coastguard Worker
108*4d7e907cSAndroid Build Coastguard Worker    callMeLater(IBazCallback cb);
109*4d7e907cSAndroid Build Coastguard Worker    iAmFreeNow();
110*4d7e907cSAndroid Build Coastguard Worker    dieNow();
111*4d7e907cSAndroid Build Coastguard Worker
112*4d7e907cSAndroid Build Coastguard Worker    useAnEnum(SomeEnum zzz) generates (SomeEnum kkk);
113*4d7e907cSAndroid Build Coastguard Worker
114*4d7e907cSAndroid Build Coastguard Worker    haveSomeStrings(string[3] array) generates (string[2] result);
115*4d7e907cSAndroid Build Coastguard Worker    haveAStringVec(vec<string> vector) generates (vec<string> result);
116*4d7e907cSAndroid Build Coastguard Worker    repeatBitfieldVec(vec<bitfield<BitField>> vector) generates (vec<bitfield<BitField>> result);
117*4d7e907cSAndroid Build Coastguard Worker
118*4d7e907cSAndroid Build Coastguard Worker    returnABunchOfStrings() generates (string a, string b, string c);
119*4d7e907cSAndroid Build Coastguard Worker
120*4d7e907cSAndroid Build Coastguard Worker    returnABitField() generates (bitfield<BitField> good);
121*4d7e907cSAndroid Build Coastguard Worker
122*4d7e907cSAndroid Build Coastguard Worker    size(uint32_t size) generates (uint32_t size);
123*4d7e907cSAndroid Build Coastguard Worker
124*4d7e907cSAndroid Build Coastguard Worker    getNestedStructs() generates(vec<NestedStruct> data);
125*4d7e907cSAndroid Build Coastguard Worker
126*4d7e907cSAndroid Build Coastguard Worker    haveSomeStructWithInterface(StructWithInterface swi) generates(StructWithInterface swi);
127*4d7e907cSAndroid Build Coastguard Worker};
128