Audio: Do not sanitize android.hardware.audio@2.0-service
[android/platform-hardware-interfaces.git] / tests / safeunion / 1.0 / ISafeUnion.hal
1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
17 package android.hardware.tests.safeunion@1.0;
19 import IOtherInterface;
21 interface ISafeUnion {
23     enum BitField : uint8_t {
24         V0 = 1 << 0,
25         V1 = 1 << 1,
26         V2 = 1 << 2,
27         V3 = 1 << 3,
28     };
30     struct J {
31         vec<uint32_t> j1;
32         uint8_t[65] j2;
33         string j3;
34     };
36     safe_union EmptySafeUnion {
37     };
39     safe_union SmallSafeUnion {
40         uint8_t a;
41     };
43     safe_union LargeSafeUnion {
44         int8_t a;
45         uint16_t b;
46         int32_t c;
47         uint64_t d;
49         int8_t[13] e;
50         int64_t[5] f;
52         string g;
53         vec<bool> h;
54         vec<uint64_t> i;
56         J j;
57         struct K {
58             uint8_t k1;
59             uint64_t k2;
60         } k;
62         SmallSafeUnion l;
64         BitField m;
65         bitfield<BitField> n;
66     };
68     safe_union InterfaceTypeSafeUnion {
69         uint32_t a;
70         int8_t[7] b;
71         IOtherInterface c;
72         string d;
73         vec<string> e;
74         handle f;
75         vec<handle> g;
76     };
78     safe_union HandleTypeSafeUnion {
79         handle a;
80         handle[5] b;
81         vec<handle> c;
82     };
84     newLargeSafeUnion() generates (LargeSafeUnion myUnion);
85     setA(LargeSafeUnion myUnion, int8_t a) generates (LargeSafeUnion myUnion);
86     setB(LargeSafeUnion myUnion, uint16_t b) generates (LargeSafeUnion myUnion);
87     setC(LargeSafeUnion myUnion, int32_t c) generates (LargeSafeUnion myUnion);
88     setD(LargeSafeUnion myUnion, uint64_t d) generates (LargeSafeUnion myUnion);
89     setE(LargeSafeUnion myUnion, int8_t[13] e) generates (LargeSafeUnion myUnion);
90     setF(LargeSafeUnion myUnion, int64_t[5] f) generates (LargeSafeUnion myUnion);
91     setG(LargeSafeUnion myUnion, string g) generates (LargeSafeUnion myUnion);
92     setH(LargeSafeUnion myUnion, vec<bool> h) generates (LargeSafeUnion myUnion);
93     setI(LargeSafeUnion myUnion, vec<uint64_t> i) generates (LargeSafeUnion myUnion);
94     setJ(LargeSafeUnion myUnion, J j) generates (LargeSafeUnion myUnion);
95     setK(LargeSafeUnion myUnion, LargeSafeUnion.K k) generates (LargeSafeUnion myUnion);
96     setL(LargeSafeUnion myUnion, SmallSafeUnion l) generates (LargeSafeUnion myUnion);
97     setM(LargeSafeUnion myUnion, BitField m) generates (LargeSafeUnion myUnion);
98     setN(LargeSafeUnion myUnion, bitfield<BitField> m) generates (LargeSafeUnion myUnion);
100     newInterfaceTypeSafeUnion() generates (InterfaceTypeSafeUnion myUnion);
101     setInterfaceA(InterfaceTypeSafeUnion myUnion, uint32_t a) generates (InterfaceTypeSafeUnion myUnion);
102     setInterfaceB(InterfaceTypeSafeUnion myUnion, int8_t[7] b) generates (InterfaceTypeSafeUnion myUnion);
103     setInterfaceC(InterfaceTypeSafeUnion myUnion, IOtherInterface c) generates (InterfaceTypeSafeUnion myUnion);
104     setInterfaceD(InterfaceTypeSafeUnion myUnion, string d) generates (InterfaceTypeSafeUnion myUnion);
105     setInterfaceE(InterfaceTypeSafeUnion myUnion, vec<string> e) generates (InterfaceTypeSafeUnion myUnion);
106     setInterfaceF(InterfaceTypeSafeUnion myUnion, handle f) generates (InterfaceTypeSafeUnion myUnion);
107     setInterfaceG(InterfaceTypeSafeUnion myUnion, vec<handle> g) generates (InterfaceTypeSafeUnion myUnion);
109     newHandleTypeSafeUnion() generates (HandleTypeSafeUnion myUnion);
110     setHandleA(HandleTypeSafeUnion myUnion, handle a) generates (HandleTypeSafeUnion myUnion);
111     setHandleB(HandleTypeSafeUnion myUnion, handle[5] b) generates (HandleTypeSafeUnion myUnion);
112     setHandleC(HandleTypeSafeUnion myUnion, vec<handle> c) generates (HandleTypeSafeUnion myUnion);
113 };