1 /*
2 * This file is auto-generated. DO NOT MODIFY.
3 * Using: out/host/linux-x86/bin/aidl --lang=ndk --structured --version 1 --hash 2400346954240a5de495a1debc81429dd012d7b7 -t --stability vintf --min_sdk_version current --ninja -d out/soong/.intermediates/hardware/interfaces/boot/aidl/android.hardware.boot-V1-ndk-source/gen/staging/android/hardware/boot/IBootControl.cpp.d -h out/soong/.intermediates/hardware/interfaces/boot/aidl/android.hardware.boot-V1-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/boot/aidl/android.hardware.boot-V1-ndk-source/gen/staging -Nhardware/interfaces/boot/aidl/aidl_api/android.hardware.boot/1 hardware/interfaces/boot/aidl/aidl_api/android.hardware.boot/1/android/hardware/boot/IBootControl.aidl
4 *
5 * DO NOT CHECK THIS FILE INTO A CODE TREE (e.g. git, etc..).
6 * ALWAYS GENERATE THIS FILE FROM UPDATED AIDL COMPILER
7 * AS A BUILD INTERMEDIATE ONLY. THIS IS NOT SOURCE CODE.
8 */
9 #include "aidl/android/hardware/boot/IBootControl.h"
10
11 #include <android/binder_parcel_utils.h>
12 #include <aidl/android/hardware/boot/BnBootControl.h>
13 #include <aidl/android/hardware/boot/BpBootControl.h>
14
15 namespace aidl {
16 namespace android {
17 namespace hardware {
18 namespace boot {
_aidl_android_hardware_boot_IBootControl_onTransact(AIBinder * _aidl_binder,transaction_code_t _aidl_code,const AParcel * _aidl_in,AParcel * _aidl_out)19 static binder_status_t _aidl_android_hardware_boot_IBootControl_onTransact(AIBinder* _aidl_binder, transaction_code_t _aidl_code, const AParcel* _aidl_in, AParcel* _aidl_out) {
20 (void)_aidl_in;
21 (void)_aidl_out;
22 binder_status_t _aidl_ret_status = STATUS_UNKNOWN_TRANSACTION;
23 std::shared_ptr<BnBootControl> _aidl_impl = std::static_pointer_cast<BnBootControl>(::ndk::ICInterface::asInterface(_aidl_binder));
24 switch (_aidl_code) {
25 case (FIRST_CALL_TRANSACTION + 0 /*getActiveBootSlot*/): {
26 int32_t _aidl_return;
27
28 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getActiveBootSlot(&_aidl_return);
29 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
30 if (_aidl_ret_status != STATUS_OK) break;
31
32 if (!AStatus_isOk(_aidl_status.get())) break;
33
34 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
35 if (_aidl_ret_status != STATUS_OK) break;
36
37 break;
38 }
39 case (FIRST_CALL_TRANSACTION + 1 /*getCurrentSlot*/): {
40 int32_t _aidl_return;
41
42 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getCurrentSlot(&_aidl_return);
43 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
44 if (_aidl_ret_status != STATUS_OK) break;
45
46 if (!AStatus_isOk(_aidl_status.get())) break;
47
48 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
49 if (_aidl_ret_status != STATUS_OK) break;
50
51 break;
52 }
53 case (FIRST_CALL_TRANSACTION + 2 /*getNumberSlots*/): {
54 int32_t _aidl_return;
55
56 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getNumberSlots(&_aidl_return);
57 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
58 if (_aidl_ret_status != STATUS_OK) break;
59
60 if (!AStatus_isOk(_aidl_status.get())) break;
61
62 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
63 if (_aidl_ret_status != STATUS_OK) break;
64
65 break;
66 }
67 case (FIRST_CALL_TRANSACTION + 3 /*getSnapshotMergeStatus*/): {
68 ::aidl::android::hardware::boot::MergeStatus _aidl_return;
69
70 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getSnapshotMergeStatus(&_aidl_return);
71 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
72 if (_aidl_ret_status != STATUS_OK) break;
73
74 if (!AStatus_isOk(_aidl_status.get())) break;
75
76 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
77 if (_aidl_ret_status != STATUS_OK) break;
78
79 break;
80 }
81 case (FIRST_CALL_TRANSACTION + 4 /*getSuffix*/): {
82 int32_t in_slot;
83 std::string _aidl_return;
84
85 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_slot);
86 if (_aidl_ret_status != STATUS_OK) break;
87
88 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getSuffix(in_slot, &_aidl_return);
89 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
90 if (_aidl_ret_status != STATUS_OK) break;
91
92 if (!AStatus_isOk(_aidl_status.get())) break;
93
94 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
95 if (_aidl_ret_status != STATUS_OK) break;
96
97 break;
98 }
99 case (FIRST_CALL_TRANSACTION + 5 /*isSlotBootable*/): {
100 int32_t in_slot;
101 bool _aidl_return;
102
103 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_slot);
104 if (_aidl_ret_status != STATUS_OK) break;
105
106 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->isSlotBootable(in_slot, &_aidl_return);
107 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
108 if (_aidl_ret_status != STATUS_OK) break;
109
110 if (!AStatus_isOk(_aidl_status.get())) break;
111
112 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
113 if (_aidl_ret_status != STATUS_OK) break;
114
115 break;
116 }
117 case (FIRST_CALL_TRANSACTION + 6 /*isSlotMarkedSuccessful*/): {
118 int32_t in_slot;
119 bool _aidl_return;
120
121 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_slot);
122 if (_aidl_ret_status != STATUS_OK) break;
123
124 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->isSlotMarkedSuccessful(in_slot, &_aidl_return);
125 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
126 if (_aidl_ret_status != STATUS_OK) break;
127
128 if (!AStatus_isOk(_aidl_status.get())) break;
129
130 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
131 if (_aidl_ret_status != STATUS_OK) break;
132
133 break;
134 }
135 case (FIRST_CALL_TRANSACTION + 7 /*markBootSuccessful*/): {
136
137 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->markBootSuccessful();
138 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
139 if (_aidl_ret_status != STATUS_OK) break;
140
141 if (!AStatus_isOk(_aidl_status.get())) break;
142
143 break;
144 }
145 case (FIRST_CALL_TRANSACTION + 8 /*setActiveBootSlot*/): {
146 int32_t in_slot;
147
148 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_slot);
149 if (_aidl_ret_status != STATUS_OK) break;
150
151 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->setActiveBootSlot(in_slot);
152 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
153 if (_aidl_ret_status != STATUS_OK) break;
154
155 if (!AStatus_isOk(_aidl_status.get())) break;
156
157 break;
158 }
159 case (FIRST_CALL_TRANSACTION + 9 /*setSlotAsUnbootable*/): {
160 int32_t in_slot;
161
162 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_slot);
163 if (_aidl_ret_status != STATUS_OK) break;
164
165 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->setSlotAsUnbootable(in_slot);
166 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
167 if (_aidl_ret_status != STATUS_OK) break;
168
169 if (!AStatus_isOk(_aidl_status.get())) break;
170
171 break;
172 }
173 case (FIRST_CALL_TRANSACTION + 10 /*setSnapshotMergeStatus*/): {
174 ::aidl::android::hardware::boot::MergeStatus in_status;
175
176 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_status);
177 if (_aidl_ret_status != STATUS_OK) break;
178
179 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->setSnapshotMergeStatus(in_status);
180 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
181 if (_aidl_ret_status != STATUS_OK) break;
182
183 if (!AStatus_isOk(_aidl_status.get())) break;
184
185 break;
186 }
187 case (FIRST_CALL_TRANSACTION + 16777214 /*getInterfaceVersion*/): {
188 int32_t _aidl_return;
189
190 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getInterfaceVersion(&_aidl_return);
191 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
192 if (_aidl_ret_status != STATUS_OK) break;
193
194 if (!AStatus_isOk(_aidl_status.get())) break;
195
196 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
197 if (_aidl_ret_status != STATUS_OK) break;
198
199 break;
200 }
201 case (FIRST_CALL_TRANSACTION + 16777213 /*getInterfaceHash*/): {
202 std::string _aidl_return;
203
204 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getInterfaceHash(&_aidl_return);
205 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
206 if (_aidl_ret_status != STATUS_OK) break;
207
208 if (!AStatus_isOk(_aidl_status.get())) break;
209
210 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
211 if (_aidl_ret_status != STATUS_OK) break;
212
213 break;
214 }
215 }
216 return _aidl_ret_status;
217 }
218
219 static const char* _g_aidl_android_hardware_boot_IBootControl_clazz_code_to_function[] = { "getActiveBootSlot","getCurrentSlot","getNumberSlots","getSnapshotMergeStatus","getSuffix","isSlotBootable","isSlotMarkedSuccessful","markBootSuccessful","setActiveBootSlot","setSlotAsUnbootable","setSnapshotMergeStatus",};
220 static AIBinder_Class* _g_aidl_android_hardware_boot_IBootControl_clazz = ::ndk::ICInterface::defineClass(IBootControl::descriptor, _aidl_android_hardware_boot_IBootControl_onTransact, _g_aidl_android_hardware_boot_IBootControl_clazz_code_to_function, 11);
221
BpBootControl(const::ndk::SpAIBinder & binder)222 BpBootControl::BpBootControl(const ::ndk::SpAIBinder& binder) : BpCInterface(binder) {}
~BpBootControl()223 BpBootControl::~BpBootControl() {}
224
getActiveBootSlot(int32_t * _aidl_return)225 ::ndk::ScopedAStatus BpBootControl::getActiveBootSlot(int32_t* _aidl_return) {
226 binder_status_t _aidl_ret_status = STATUS_OK;
227 ::ndk::ScopedAStatus _aidl_status;
228 ::ndk::ScopedAParcel _aidl_in;
229 ::ndk::ScopedAParcel _aidl_out;
230
231 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
232 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
233
234 _aidl_ret_status = AIBinder_transact(
235 asBinderReference().get(),
236 (FIRST_CALL_TRANSACTION + 0 /*getActiveBootSlot*/),
237 _aidl_in.getR(),
238 _aidl_out.getR(),
239 0
240 #ifdef BINDER_STABILITY_SUPPORT
241 | static_cast<int>(FLAG_PRIVATE_LOCAL)
242 #endif // BINDER_STABILITY_SUPPORT
243 );
244 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
245 _aidl_status = IBootControl::getDefaultImpl()->getActiveBootSlot(_aidl_return);
246 goto _aidl_status_return;
247 }
248 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
249
250 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
251 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
252
253 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
254 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
255 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
256
257 _aidl_error:
258 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
259 _aidl_status_return:
260 return _aidl_status;
261 }
getCurrentSlot(int32_t * _aidl_return)262 ::ndk::ScopedAStatus BpBootControl::getCurrentSlot(int32_t* _aidl_return) {
263 binder_status_t _aidl_ret_status = STATUS_OK;
264 ::ndk::ScopedAStatus _aidl_status;
265 ::ndk::ScopedAParcel _aidl_in;
266 ::ndk::ScopedAParcel _aidl_out;
267
268 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
269 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
270
271 _aidl_ret_status = AIBinder_transact(
272 asBinderReference().get(),
273 (FIRST_CALL_TRANSACTION + 1 /*getCurrentSlot*/),
274 _aidl_in.getR(),
275 _aidl_out.getR(),
276 0
277 #ifdef BINDER_STABILITY_SUPPORT
278 | static_cast<int>(FLAG_PRIVATE_LOCAL)
279 #endif // BINDER_STABILITY_SUPPORT
280 );
281 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
282 _aidl_status = IBootControl::getDefaultImpl()->getCurrentSlot(_aidl_return);
283 goto _aidl_status_return;
284 }
285 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
286
287 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
288 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
289
290 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
291 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
292 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
293
294 _aidl_error:
295 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
296 _aidl_status_return:
297 return _aidl_status;
298 }
getNumberSlots(int32_t * _aidl_return)299 ::ndk::ScopedAStatus BpBootControl::getNumberSlots(int32_t* _aidl_return) {
300 binder_status_t _aidl_ret_status = STATUS_OK;
301 ::ndk::ScopedAStatus _aidl_status;
302 ::ndk::ScopedAParcel _aidl_in;
303 ::ndk::ScopedAParcel _aidl_out;
304
305 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
306 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
307
308 _aidl_ret_status = AIBinder_transact(
309 asBinderReference().get(),
310 (FIRST_CALL_TRANSACTION + 2 /*getNumberSlots*/),
311 _aidl_in.getR(),
312 _aidl_out.getR(),
313 0
314 #ifdef BINDER_STABILITY_SUPPORT
315 | static_cast<int>(FLAG_PRIVATE_LOCAL)
316 #endif // BINDER_STABILITY_SUPPORT
317 );
318 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
319 _aidl_status = IBootControl::getDefaultImpl()->getNumberSlots(_aidl_return);
320 goto _aidl_status_return;
321 }
322 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
323
324 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
325 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
326
327 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
328 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
329 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
330
331 _aidl_error:
332 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
333 _aidl_status_return:
334 return _aidl_status;
335 }
getSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus * _aidl_return)336 ::ndk::ScopedAStatus BpBootControl::getSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus* _aidl_return) {
337 binder_status_t _aidl_ret_status = STATUS_OK;
338 ::ndk::ScopedAStatus _aidl_status;
339 ::ndk::ScopedAParcel _aidl_in;
340 ::ndk::ScopedAParcel _aidl_out;
341
342 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
343 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
344
345 _aidl_ret_status = AIBinder_transact(
346 asBinderReference().get(),
347 (FIRST_CALL_TRANSACTION + 3 /*getSnapshotMergeStatus*/),
348 _aidl_in.getR(),
349 _aidl_out.getR(),
350 0
351 #ifdef BINDER_STABILITY_SUPPORT
352 | static_cast<int>(FLAG_PRIVATE_LOCAL)
353 #endif // BINDER_STABILITY_SUPPORT
354 );
355 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
356 _aidl_status = IBootControl::getDefaultImpl()->getSnapshotMergeStatus(_aidl_return);
357 goto _aidl_status_return;
358 }
359 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
360
361 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
362 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
363
364 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
365 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
366 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
367
368 _aidl_error:
369 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
370 _aidl_status_return:
371 return _aidl_status;
372 }
getSuffix(int32_t in_slot,std::string * _aidl_return)373 ::ndk::ScopedAStatus BpBootControl::getSuffix(int32_t in_slot, std::string* _aidl_return) {
374 binder_status_t _aidl_ret_status = STATUS_OK;
375 ::ndk::ScopedAStatus _aidl_status;
376 ::ndk::ScopedAParcel _aidl_in;
377 ::ndk::ScopedAParcel _aidl_out;
378
379 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
380 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
381
382 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_slot);
383 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
384
385 _aidl_ret_status = AIBinder_transact(
386 asBinderReference().get(),
387 (FIRST_CALL_TRANSACTION + 4 /*getSuffix*/),
388 _aidl_in.getR(),
389 _aidl_out.getR(),
390 0
391 #ifdef BINDER_STABILITY_SUPPORT
392 | static_cast<int>(FLAG_PRIVATE_LOCAL)
393 #endif // BINDER_STABILITY_SUPPORT
394 );
395 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
396 _aidl_status = IBootControl::getDefaultImpl()->getSuffix(in_slot, _aidl_return);
397 goto _aidl_status_return;
398 }
399 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
400
401 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
402 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
403
404 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
405 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
406 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
407
408 _aidl_error:
409 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
410 _aidl_status_return:
411 return _aidl_status;
412 }
isSlotBootable(int32_t in_slot,bool * _aidl_return)413 ::ndk::ScopedAStatus BpBootControl::isSlotBootable(int32_t in_slot, bool* _aidl_return) {
414 binder_status_t _aidl_ret_status = STATUS_OK;
415 ::ndk::ScopedAStatus _aidl_status;
416 ::ndk::ScopedAParcel _aidl_in;
417 ::ndk::ScopedAParcel _aidl_out;
418
419 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
420 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
421
422 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_slot);
423 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
424
425 _aidl_ret_status = AIBinder_transact(
426 asBinderReference().get(),
427 (FIRST_CALL_TRANSACTION + 5 /*isSlotBootable*/),
428 _aidl_in.getR(),
429 _aidl_out.getR(),
430 0
431 #ifdef BINDER_STABILITY_SUPPORT
432 | static_cast<int>(FLAG_PRIVATE_LOCAL)
433 #endif // BINDER_STABILITY_SUPPORT
434 );
435 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
436 _aidl_status = IBootControl::getDefaultImpl()->isSlotBootable(in_slot, _aidl_return);
437 goto _aidl_status_return;
438 }
439 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
440
441 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
442 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
443
444 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
445 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
446 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
447
448 _aidl_error:
449 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
450 _aidl_status_return:
451 return _aidl_status;
452 }
isSlotMarkedSuccessful(int32_t in_slot,bool * _aidl_return)453 ::ndk::ScopedAStatus BpBootControl::isSlotMarkedSuccessful(int32_t in_slot, bool* _aidl_return) {
454 binder_status_t _aidl_ret_status = STATUS_OK;
455 ::ndk::ScopedAStatus _aidl_status;
456 ::ndk::ScopedAParcel _aidl_in;
457 ::ndk::ScopedAParcel _aidl_out;
458
459 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
460 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
461
462 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_slot);
463 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
464
465 _aidl_ret_status = AIBinder_transact(
466 asBinderReference().get(),
467 (FIRST_CALL_TRANSACTION + 6 /*isSlotMarkedSuccessful*/),
468 _aidl_in.getR(),
469 _aidl_out.getR(),
470 0
471 #ifdef BINDER_STABILITY_SUPPORT
472 | static_cast<int>(FLAG_PRIVATE_LOCAL)
473 #endif // BINDER_STABILITY_SUPPORT
474 );
475 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
476 _aidl_status = IBootControl::getDefaultImpl()->isSlotMarkedSuccessful(in_slot, _aidl_return);
477 goto _aidl_status_return;
478 }
479 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
480
481 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
482 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
483
484 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
485 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
486 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
487
488 _aidl_error:
489 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
490 _aidl_status_return:
491 return _aidl_status;
492 }
markBootSuccessful()493 ::ndk::ScopedAStatus BpBootControl::markBootSuccessful() {
494 binder_status_t _aidl_ret_status = STATUS_OK;
495 ::ndk::ScopedAStatus _aidl_status;
496 ::ndk::ScopedAParcel _aidl_in;
497 ::ndk::ScopedAParcel _aidl_out;
498
499 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
500 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
501
502 _aidl_ret_status = AIBinder_transact(
503 asBinderReference().get(),
504 (FIRST_CALL_TRANSACTION + 7 /*markBootSuccessful*/),
505 _aidl_in.getR(),
506 _aidl_out.getR(),
507 0
508 #ifdef BINDER_STABILITY_SUPPORT
509 | static_cast<int>(FLAG_PRIVATE_LOCAL)
510 #endif // BINDER_STABILITY_SUPPORT
511 );
512 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
513 _aidl_status = IBootControl::getDefaultImpl()->markBootSuccessful();
514 goto _aidl_status_return;
515 }
516 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
517
518 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
519 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
520
521 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
522 _aidl_error:
523 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
524 _aidl_status_return:
525 return _aidl_status;
526 }
setActiveBootSlot(int32_t in_slot)527 ::ndk::ScopedAStatus BpBootControl::setActiveBootSlot(int32_t in_slot) {
528 binder_status_t _aidl_ret_status = STATUS_OK;
529 ::ndk::ScopedAStatus _aidl_status;
530 ::ndk::ScopedAParcel _aidl_in;
531 ::ndk::ScopedAParcel _aidl_out;
532
533 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
534 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
535
536 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_slot);
537 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
538
539 _aidl_ret_status = AIBinder_transact(
540 asBinderReference().get(),
541 (FIRST_CALL_TRANSACTION + 8 /*setActiveBootSlot*/),
542 _aidl_in.getR(),
543 _aidl_out.getR(),
544 0
545 #ifdef BINDER_STABILITY_SUPPORT
546 | static_cast<int>(FLAG_PRIVATE_LOCAL)
547 #endif // BINDER_STABILITY_SUPPORT
548 );
549 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
550 _aidl_status = IBootControl::getDefaultImpl()->setActiveBootSlot(in_slot);
551 goto _aidl_status_return;
552 }
553 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
554
555 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
556 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
557
558 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
559 _aidl_error:
560 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
561 _aidl_status_return:
562 return _aidl_status;
563 }
setSlotAsUnbootable(int32_t in_slot)564 ::ndk::ScopedAStatus BpBootControl::setSlotAsUnbootable(int32_t in_slot) {
565 binder_status_t _aidl_ret_status = STATUS_OK;
566 ::ndk::ScopedAStatus _aidl_status;
567 ::ndk::ScopedAParcel _aidl_in;
568 ::ndk::ScopedAParcel _aidl_out;
569
570 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
571 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
572
573 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_slot);
574 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
575
576 _aidl_ret_status = AIBinder_transact(
577 asBinderReference().get(),
578 (FIRST_CALL_TRANSACTION + 9 /*setSlotAsUnbootable*/),
579 _aidl_in.getR(),
580 _aidl_out.getR(),
581 0
582 #ifdef BINDER_STABILITY_SUPPORT
583 | static_cast<int>(FLAG_PRIVATE_LOCAL)
584 #endif // BINDER_STABILITY_SUPPORT
585 );
586 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
587 _aidl_status = IBootControl::getDefaultImpl()->setSlotAsUnbootable(in_slot);
588 goto _aidl_status_return;
589 }
590 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
591
592 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
593 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
594
595 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
596 _aidl_error:
597 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
598 _aidl_status_return:
599 return _aidl_status;
600 }
setSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus in_status)601 ::ndk::ScopedAStatus BpBootControl::setSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus in_status) {
602 binder_status_t _aidl_ret_status = STATUS_OK;
603 ::ndk::ScopedAStatus _aidl_status;
604 ::ndk::ScopedAParcel _aidl_in;
605 ::ndk::ScopedAParcel _aidl_out;
606
607 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
608 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
609
610 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_status);
611 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
612
613 _aidl_ret_status = AIBinder_transact(
614 asBinderReference().get(),
615 (FIRST_CALL_TRANSACTION + 10 /*setSnapshotMergeStatus*/),
616 _aidl_in.getR(),
617 _aidl_out.getR(),
618 0
619 #ifdef BINDER_STABILITY_SUPPORT
620 | static_cast<int>(FLAG_PRIVATE_LOCAL)
621 #endif // BINDER_STABILITY_SUPPORT
622 );
623 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
624 _aidl_status = IBootControl::getDefaultImpl()->setSnapshotMergeStatus(in_status);
625 goto _aidl_status_return;
626 }
627 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
628
629 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
630 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
631
632 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
633 _aidl_error:
634 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
635 _aidl_status_return:
636 return _aidl_status;
637 }
getInterfaceVersion(int32_t * _aidl_return)638 ::ndk::ScopedAStatus BpBootControl::getInterfaceVersion(int32_t* _aidl_return) {
639 binder_status_t _aidl_ret_status = STATUS_OK;
640 ::ndk::ScopedAStatus _aidl_status;
641 if (_aidl_cached_version != -1) {
642 *_aidl_return = _aidl_cached_version;
643 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
644 return _aidl_status;
645 }
646 ::ndk::ScopedAParcel _aidl_in;
647 ::ndk::ScopedAParcel _aidl_out;
648
649 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
650 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
651
652 _aidl_ret_status = AIBinder_transact(
653 asBinderReference().get(),
654 (FIRST_CALL_TRANSACTION + 16777214 /*getInterfaceVersion*/),
655 _aidl_in.getR(),
656 _aidl_out.getR(),
657 0
658 #ifdef BINDER_STABILITY_SUPPORT
659 | static_cast<int>(FLAG_PRIVATE_LOCAL)
660 #endif // BINDER_STABILITY_SUPPORT
661 );
662 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
663 _aidl_status = IBootControl::getDefaultImpl()->getInterfaceVersion(_aidl_return);
664 goto _aidl_status_return;
665 }
666 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
667
668 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
669 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
670
671 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
672 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
673 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
674
675 _aidl_cached_version = *_aidl_return;
676 _aidl_error:
677 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
678 _aidl_status_return:
679 return _aidl_status;
680 }
getInterfaceHash(std::string * _aidl_return)681 ::ndk::ScopedAStatus BpBootControl::getInterfaceHash(std::string* _aidl_return) {
682 binder_status_t _aidl_ret_status = STATUS_OK;
683 ::ndk::ScopedAStatus _aidl_status;
684 const std::lock_guard<std::mutex> lock(_aidl_cached_hash_mutex);
685 if (_aidl_cached_hash != "-1") {
686 *_aidl_return = _aidl_cached_hash;
687 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
688 return _aidl_status;
689 }
690 ::ndk::ScopedAParcel _aidl_in;
691 ::ndk::ScopedAParcel _aidl_out;
692
693 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
694 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
695
696 _aidl_ret_status = AIBinder_transact(
697 asBinderReference().get(),
698 (FIRST_CALL_TRANSACTION + 16777213 /*getInterfaceHash*/),
699 _aidl_in.getR(),
700 _aidl_out.getR(),
701 0
702 #ifdef BINDER_STABILITY_SUPPORT
703 | static_cast<int>(FLAG_PRIVATE_LOCAL)
704 #endif // BINDER_STABILITY_SUPPORT
705 );
706 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IBootControl::getDefaultImpl()) {
707 _aidl_status = IBootControl::getDefaultImpl()->getInterfaceHash(_aidl_return);
708 goto _aidl_status_return;
709 }
710 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
711
712 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
713 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
714
715 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
716 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
717 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
718
719 _aidl_cached_hash = *_aidl_return;
720 _aidl_error:
721 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
722 _aidl_status_return:
723 return _aidl_status;
724 }
725 // Source for BnBootControl
BnBootControl()726 BnBootControl::BnBootControl() {}
~BnBootControl()727 BnBootControl::~BnBootControl() {}
createBinder()728 ::ndk::SpAIBinder BnBootControl::createBinder() {
729 AIBinder* binder = AIBinder_new(_g_aidl_android_hardware_boot_IBootControl_clazz, static_cast<void*>(this));
730 #ifdef BINDER_STABILITY_SUPPORT
731 AIBinder_markVintfStability(binder);
732 #endif // BINDER_STABILITY_SUPPORT
733 return ::ndk::SpAIBinder(binder);
734 }
getInterfaceVersion(int32_t * _aidl_return)735 ::ndk::ScopedAStatus BnBootControl::getInterfaceVersion(int32_t* _aidl_return) {
736 *_aidl_return = IBootControl::version;
737 return ::ndk::ScopedAStatus(AStatus_newOk());
738 }
getInterfaceHash(std::string * _aidl_return)739 ::ndk::ScopedAStatus BnBootControl::getInterfaceHash(std::string* _aidl_return) {
740 *_aidl_return = IBootControl::hash;
741 return ::ndk::ScopedAStatus(AStatus_newOk());
742 }
743 // Source for IBootControl
744 const char* IBootControl::descriptor = "android.hardware.boot.IBootControl";
IBootControl()745 IBootControl::IBootControl() {}
~IBootControl()746 IBootControl::~IBootControl() {}
747
748
fromBinder(const::ndk::SpAIBinder & binder)749 std::shared_ptr<IBootControl> IBootControl::fromBinder(const ::ndk::SpAIBinder& binder) {
750 if (!AIBinder_associateClass(binder.get(), _g_aidl_android_hardware_boot_IBootControl_clazz)) {
751 #if __ANDROID_API__ >= 31
752 const AIBinder_Class* originalClass = AIBinder_getClass(binder.get());
753 if (originalClass == nullptr) return nullptr;
754 if (0 == strcmp(AIBinder_Class_getDescriptor(originalClass), descriptor)) {
755 return ::ndk::SharedRefBase::make<BpBootControl>(binder);
756 }
757 #endif
758 return nullptr;
759 }
760 std::shared_ptr<::ndk::ICInterface> interface = ::ndk::ICInterface::asInterface(binder.get());
761 if (interface) {
762 return std::static_pointer_cast<IBootControl>(interface);
763 }
764 return ::ndk::SharedRefBase::make<BpBootControl>(binder);
765 }
766
writeToParcel(AParcel * parcel,const std::shared_ptr<IBootControl> & instance)767 binder_status_t IBootControl::writeToParcel(AParcel* parcel, const std::shared_ptr<IBootControl>& instance) {
768 return AParcel_writeStrongBinder(parcel, instance ? instance->asBinder().get() : nullptr);
769 }
readFromParcel(const AParcel * parcel,std::shared_ptr<IBootControl> * instance)770 binder_status_t IBootControl::readFromParcel(const AParcel* parcel, std::shared_ptr<IBootControl>* instance) {
771 ::ndk::SpAIBinder binder;
772 binder_status_t status = AParcel_readStrongBinder(parcel, binder.getR());
773 if (status != STATUS_OK) return status;
774 *instance = IBootControl::fromBinder(binder);
775 return STATUS_OK;
776 }
setDefaultImpl(const std::shared_ptr<IBootControl> & impl)777 bool IBootControl::setDefaultImpl(const std::shared_ptr<IBootControl>& impl) {
778 // Only one user of this interface can use this function
779 // at a time. This is a heuristic to detect if two different
780 // users in the same process use this function.
781 assert(!IBootControl::default_impl);
782 if (impl) {
783 IBootControl::default_impl = impl;
784 return true;
785 }
786 return false;
787 }
getDefaultImpl()788 const std::shared_ptr<IBootControl>& IBootControl::getDefaultImpl() {
789 return IBootControl::default_impl;
790 }
791 std::shared_ptr<IBootControl> IBootControl::default_impl = nullptr;
getActiveBootSlot(int32_t *)792 ::ndk::ScopedAStatus IBootControlDefault::getActiveBootSlot(int32_t* /*_aidl_return*/) {
793 ::ndk::ScopedAStatus _aidl_status;
794 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
795 return _aidl_status;
796 }
getCurrentSlot(int32_t *)797 ::ndk::ScopedAStatus IBootControlDefault::getCurrentSlot(int32_t* /*_aidl_return*/) {
798 ::ndk::ScopedAStatus _aidl_status;
799 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
800 return _aidl_status;
801 }
getNumberSlots(int32_t *)802 ::ndk::ScopedAStatus IBootControlDefault::getNumberSlots(int32_t* /*_aidl_return*/) {
803 ::ndk::ScopedAStatus _aidl_status;
804 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
805 return _aidl_status;
806 }
getSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus *)807 ::ndk::ScopedAStatus IBootControlDefault::getSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus* /*_aidl_return*/) {
808 ::ndk::ScopedAStatus _aidl_status;
809 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
810 return _aidl_status;
811 }
getSuffix(int32_t,std::string *)812 ::ndk::ScopedAStatus IBootControlDefault::getSuffix(int32_t /*in_slot*/, std::string* /*_aidl_return*/) {
813 ::ndk::ScopedAStatus _aidl_status;
814 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
815 return _aidl_status;
816 }
isSlotBootable(int32_t,bool *)817 ::ndk::ScopedAStatus IBootControlDefault::isSlotBootable(int32_t /*in_slot*/, bool* /*_aidl_return*/) {
818 ::ndk::ScopedAStatus _aidl_status;
819 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
820 return _aidl_status;
821 }
isSlotMarkedSuccessful(int32_t,bool *)822 ::ndk::ScopedAStatus IBootControlDefault::isSlotMarkedSuccessful(int32_t /*in_slot*/, bool* /*_aidl_return*/) {
823 ::ndk::ScopedAStatus _aidl_status;
824 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
825 return _aidl_status;
826 }
markBootSuccessful()827 ::ndk::ScopedAStatus IBootControlDefault::markBootSuccessful() {
828 ::ndk::ScopedAStatus _aidl_status;
829 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
830 return _aidl_status;
831 }
setActiveBootSlot(int32_t)832 ::ndk::ScopedAStatus IBootControlDefault::setActiveBootSlot(int32_t /*in_slot*/) {
833 ::ndk::ScopedAStatus _aidl_status;
834 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
835 return _aidl_status;
836 }
setSlotAsUnbootable(int32_t)837 ::ndk::ScopedAStatus IBootControlDefault::setSlotAsUnbootable(int32_t /*in_slot*/) {
838 ::ndk::ScopedAStatus _aidl_status;
839 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
840 return _aidl_status;
841 }
setSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus)842 ::ndk::ScopedAStatus IBootControlDefault::setSnapshotMergeStatus(::aidl::android::hardware::boot::MergeStatus /*in_status*/) {
843 ::ndk::ScopedAStatus _aidl_status;
844 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
845 return _aidl_status;
846 }
getInterfaceVersion(int32_t * _aidl_return)847 ::ndk::ScopedAStatus IBootControlDefault::getInterfaceVersion(int32_t* _aidl_return) {
848 *_aidl_return = 0;
849 return ::ndk::ScopedAStatus(AStatus_newOk());
850 }
getInterfaceHash(std::string * _aidl_return)851 ::ndk::ScopedAStatus IBootControlDefault::getInterfaceHash(std::string* _aidl_return) {
852 *_aidl_return = "";
853 return ::ndk::ScopedAStatus(AStatus_newOk());
854 }
asBinder()855 ::ndk::SpAIBinder IBootControlDefault::asBinder() {
856 return ::ndk::SpAIBinder();
857 }
isRemote()858 bool IBootControlDefault::isRemote() {
859 return false;
860 }
861 } // namespace boot
862 } // namespace hardware
863 } // namespace android
864 } // namespace aidl
865