1 /*
2 * This file is auto-generated. DO NOT MODIFY.
3 * Using: out/host/linux-x86/bin/aidl --lang=ndk --structured --version 2 --hash c12818c51418fbfc76f1b81eba6678d75cf526c1 -t --stability vintf --min_sdk_version 29 -pout/soong/.intermediates/hardware/interfaces/common/aidl/android.hardware.common_interface/2/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/common/fmq/aidl/android.hardware.common.fmq_interface/1/preprocessed.aidl --ninja -d out/soong/.intermediates/hardware/interfaces/media/bufferpool/aidl/android.hardware.media.bufferpool2-V2-ndk-source/gen/staging/android/hardware/media/bufferpool2/IClientManager.cpp.d -h out/soong/.intermediates/hardware/interfaces/media/bufferpool/aidl/android.hardware.media.bufferpool2-V2-ndk-source/gen/include/staging -o out/soong/.intermediates/hardware/interfaces/media/bufferpool/aidl/android.hardware.media.bufferpool2-V2-ndk-source/gen/staging -Iframeworks/base/core/java -Nhardware/interfaces/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2 hardware/interfaces/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.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/media/bufferpool2/IClientManager.h"
10
11 #include <android/binder_parcel_utils.h>
12 #include <aidl/android/hardware/media/bufferpool2/BnAccessor.h>
13 #include <aidl/android/hardware/media/bufferpool2/BnClientManager.h>
14 #include <aidl/android/hardware/media/bufferpool2/BnConnection.h>
15 #include <aidl/android/hardware/media/bufferpool2/BnObserver.h>
16 #include <aidl/android/hardware/media/bufferpool2/BpAccessor.h>
17 #include <aidl/android/hardware/media/bufferpool2/BpClientManager.h>
18 #include <aidl/android/hardware/media/bufferpool2/BpConnection.h>
19 #include <aidl/android/hardware/media/bufferpool2/BpObserver.h>
20 #include <aidl/android/hardware/media/bufferpool2/IAccessor.h>
21 #include <aidl/android/hardware/media/bufferpool2/IConnection.h>
22 #include <aidl/android/hardware/media/bufferpool2/IObserver.h>
23
24 namespace aidl {
25 namespace android {
26 namespace hardware {
27 namespace media {
28 namespace bufferpool2 {
_aidl_android_hardware_media_bufferpool2_IClientManager_onTransact(AIBinder * _aidl_binder,transaction_code_t _aidl_code,const AParcel * _aidl_in,AParcel * _aidl_out)29 static binder_status_t _aidl_android_hardware_media_bufferpool2_IClientManager_onTransact(AIBinder* _aidl_binder, transaction_code_t _aidl_code, const AParcel* _aidl_in, AParcel* _aidl_out) {
30 (void)_aidl_in;
31 (void)_aidl_out;
32 binder_status_t _aidl_ret_status = STATUS_UNKNOWN_TRANSACTION;
33 std::shared_ptr<BnClientManager> _aidl_impl = std::static_pointer_cast<BnClientManager>(::ndk::ICInterface::asInterface(_aidl_binder));
34 switch (_aidl_code) {
35 case (FIRST_CALL_TRANSACTION + 0 /*registerSender*/): {
36 std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> in_bufferPool;
37 ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration _aidl_return;
38
39 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_bufferPool);
40 if (_aidl_ret_status != STATUS_OK) break;
41
42 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->registerSender(in_bufferPool, &_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 + 1 /*registerPassiveSender*/): {
54 std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> in_bufferPool;
55 ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration _aidl_return;
56
57 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_in, &in_bufferPool);
58 if (_aidl_ret_status != STATUS_OK) break;
59
60 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->registerPassiveSender(in_bufferPool, &_aidl_return);
61 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
62 if (_aidl_ret_status != STATUS_OK) break;
63
64 if (!AStatus_isOk(_aidl_status.get())) break;
65
66 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
67 if (_aidl_ret_status != STATUS_OK) break;
68
69 break;
70 }
71 case (FIRST_CALL_TRANSACTION + 16777214 /*getInterfaceVersion*/): {
72 int32_t _aidl_return;
73
74 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getInterfaceVersion(&_aidl_return);
75 _aidl_ret_status = AParcel_writeStatusHeader(_aidl_out, _aidl_status.get());
76 if (_aidl_ret_status != STATUS_OK) break;
77
78 if (!AStatus_isOk(_aidl_status.get())) break;
79
80 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_out, _aidl_return);
81 if (_aidl_ret_status != STATUS_OK) break;
82
83 break;
84 }
85 case (FIRST_CALL_TRANSACTION + 16777213 /*getInterfaceHash*/): {
86 std::string _aidl_return;
87
88 ::ndk::ScopedAStatus _aidl_status = _aidl_impl->getInterfaceHash(&_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 }
100 return _aidl_ret_status;
101 }
102
103 static const char* _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz_code_to_function[] = { "registerSender","registerPassiveSender",};
104 static AIBinder_Class* _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz = ::ndk::ICInterface::defineClass(IClientManager::descriptor, _aidl_android_hardware_media_bufferpool2_IClientManager_onTransact, _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz_code_to_function, 2);
105
BpClientManager(const::ndk::SpAIBinder & binder)106 BpClientManager::BpClientManager(const ::ndk::SpAIBinder& binder) : BpCInterface(binder) {}
~BpClientManager()107 BpClientManager::~BpClientManager() {}
108
registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> & in_bufferPool,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration * _aidl_return)109 ::ndk::ScopedAStatus BpClientManager::registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& in_bufferPool, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) {
110 binder_status_t _aidl_ret_status = STATUS_OK;
111 ::ndk::ScopedAStatus _aidl_status;
112 ::ndk::ScopedAParcel _aidl_in;
113 ::ndk::ScopedAParcel _aidl_out;
114
115 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
116 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
117
118 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_bufferPool);
119 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
120
121 _aidl_ret_status = AIBinder_transact(
122 asBinderReference().get(),
123 (FIRST_CALL_TRANSACTION + 0 /*registerSender*/),
124 _aidl_in.getR(),
125 _aidl_out.getR(),
126 0
127 #ifdef BINDER_STABILITY_SUPPORT
128 | static_cast<int>(FLAG_PRIVATE_LOCAL)
129 #endif // BINDER_STABILITY_SUPPORT
130 );
131 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
132 _aidl_status = IClientManager::getDefaultImpl()->registerSender(in_bufferPool, _aidl_return);
133 goto _aidl_status_return;
134 }
135 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
136
137 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
138 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
139
140 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
141 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
142 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
143
144 _aidl_error:
145 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
146 _aidl_status_return:
147 return _aidl_status;
148 }
registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> & in_bufferPool,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration * _aidl_return)149 ::ndk::ScopedAStatus BpClientManager::registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& in_bufferPool, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) {
150 binder_status_t _aidl_ret_status = STATUS_OK;
151 ::ndk::ScopedAStatus _aidl_status;
152 ::ndk::ScopedAParcel _aidl_in;
153 ::ndk::ScopedAParcel _aidl_out;
154
155 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
156 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
157
158 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_in.get(), in_bufferPool);
159 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
160
161 _aidl_ret_status = AIBinder_transact(
162 asBinderReference().get(),
163 (FIRST_CALL_TRANSACTION + 1 /*registerPassiveSender*/),
164 _aidl_in.getR(),
165 _aidl_out.getR(),
166 0
167 #ifdef BINDER_STABILITY_SUPPORT
168 | static_cast<int>(FLAG_PRIVATE_LOCAL)
169 #endif // BINDER_STABILITY_SUPPORT
170 );
171 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
172 _aidl_status = IClientManager::getDefaultImpl()->registerPassiveSender(in_bufferPool, _aidl_return);
173 goto _aidl_status_return;
174 }
175 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
176
177 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
178 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
179
180 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
181 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
182 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
183
184 _aidl_error:
185 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
186 _aidl_status_return:
187 return _aidl_status;
188 }
getInterfaceVersion(int32_t * _aidl_return)189 ::ndk::ScopedAStatus BpClientManager::getInterfaceVersion(int32_t* _aidl_return) {
190 binder_status_t _aidl_ret_status = STATUS_OK;
191 ::ndk::ScopedAStatus _aidl_status;
192 if (_aidl_cached_version != -1) {
193 *_aidl_return = _aidl_cached_version;
194 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
195 return _aidl_status;
196 }
197 ::ndk::ScopedAParcel _aidl_in;
198 ::ndk::ScopedAParcel _aidl_out;
199
200 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
201 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
202
203 _aidl_ret_status = AIBinder_transact(
204 asBinderReference().get(),
205 (FIRST_CALL_TRANSACTION + 16777214 /*getInterfaceVersion*/),
206 _aidl_in.getR(),
207 _aidl_out.getR(),
208 0
209 #ifdef BINDER_STABILITY_SUPPORT
210 | static_cast<int>(FLAG_PRIVATE_LOCAL)
211 #endif // BINDER_STABILITY_SUPPORT
212 );
213 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
214 _aidl_status = IClientManager::getDefaultImpl()->getInterfaceVersion(_aidl_return);
215 goto _aidl_status_return;
216 }
217 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
218
219 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
220 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
221
222 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
223 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
224 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
225
226 _aidl_cached_version = *_aidl_return;
227 _aidl_error:
228 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
229 _aidl_status_return:
230 return _aidl_status;
231 }
getInterfaceHash(std::string * _aidl_return)232 ::ndk::ScopedAStatus BpClientManager::getInterfaceHash(std::string* _aidl_return) {
233 binder_status_t _aidl_ret_status = STATUS_OK;
234 ::ndk::ScopedAStatus _aidl_status;
235 const std::lock_guard<std::mutex> lock(_aidl_cached_hash_mutex);
236 if (_aidl_cached_hash != "-1") {
237 *_aidl_return = _aidl_cached_hash;
238 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
239 return _aidl_status;
240 }
241 ::ndk::ScopedAParcel _aidl_in;
242 ::ndk::ScopedAParcel _aidl_out;
243
244 _aidl_ret_status = AIBinder_prepareTransaction(asBinderReference().get(), _aidl_in.getR());
245 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
246
247 _aidl_ret_status = AIBinder_transact(
248 asBinderReference().get(),
249 (FIRST_CALL_TRANSACTION + 16777213 /*getInterfaceHash*/),
250 _aidl_in.getR(),
251 _aidl_out.getR(),
252 0
253 #ifdef BINDER_STABILITY_SUPPORT
254 | static_cast<int>(FLAG_PRIVATE_LOCAL)
255 #endif // BINDER_STABILITY_SUPPORT
256 );
257 if (_aidl_ret_status == STATUS_UNKNOWN_TRANSACTION && IClientManager::getDefaultImpl()) {
258 _aidl_status = IClientManager::getDefaultImpl()->getInterfaceHash(_aidl_return);
259 goto _aidl_status_return;
260 }
261 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
262
263 _aidl_ret_status = AParcel_readStatusHeader(_aidl_out.get(), _aidl_status.getR());
264 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
265
266 if (!AStatus_isOk(_aidl_status.get())) goto _aidl_status_return;
267 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_out.get(), _aidl_return);
268 if (_aidl_ret_status != STATUS_OK) goto _aidl_error;
269
270 _aidl_cached_hash = *_aidl_return;
271 _aidl_error:
272 _aidl_status.set(AStatus_fromStatus(_aidl_ret_status));
273 _aidl_status_return:
274 return _aidl_status;
275 }
276 // Source for BnClientManager
BnClientManager()277 BnClientManager::BnClientManager() {}
~BnClientManager()278 BnClientManager::~BnClientManager() {}
createBinder()279 ::ndk::SpAIBinder BnClientManager::createBinder() {
280 AIBinder* binder = AIBinder_new(_g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz, static_cast<void*>(this));
281 #ifdef BINDER_STABILITY_SUPPORT
282 AIBinder_markVintfStability(binder);
283 #endif // BINDER_STABILITY_SUPPORT
284 return ::ndk::SpAIBinder(binder);
285 }
getInterfaceVersion(int32_t * _aidl_return)286 ::ndk::ScopedAStatus BnClientManager::getInterfaceVersion(int32_t* _aidl_return) {
287 *_aidl_return = IClientManager::version;
288 return ::ndk::ScopedAStatus(AStatus_newOk());
289 }
getInterfaceHash(std::string * _aidl_return)290 ::ndk::ScopedAStatus BnClientManager::getInterfaceHash(std::string* _aidl_return) {
291 *_aidl_return = IClientManager::hash;
292 return ::ndk::ScopedAStatus(AStatus_newOk());
293 }
294 // Source for IClientManager
295 const char* IClientManager::descriptor = "android.hardware.media.bufferpool2.IClientManager";
IClientManager()296 IClientManager::IClientManager() {}
~IClientManager()297 IClientManager::~IClientManager() {}
298
299
fromBinder(const::ndk::SpAIBinder & binder)300 std::shared_ptr<IClientManager> IClientManager::fromBinder(const ::ndk::SpAIBinder& binder) {
301 if (!AIBinder_associateClass(binder.get(), _g_aidl_android_hardware_media_bufferpool2_IClientManager_clazz)) {
302 #if __ANDROID_API__ >= 31
303 const AIBinder_Class* originalClass = AIBinder_getClass(binder.get());
304 if (originalClass == nullptr) return nullptr;
305 if (0 == strcmp(AIBinder_Class_getDescriptor(originalClass), descriptor)) {
306 return ::ndk::SharedRefBase::make<BpClientManager>(binder);
307 }
308 #endif
309 return nullptr;
310 }
311 std::shared_ptr<::ndk::ICInterface> interface = ::ndk::ICInterface::asInterface(binder.get());
312 if (interface) {
313 return std::static_pointer_cast<IClientManager>(interface);
314 }
315 return ::ndk::SharedRefBase::make<BpClientManager>(binder);
316 }
317
writeToParcel(AParcel * parcel,const std::shared_ptr<IClientManager> & instance)318 binder_status_t IClientManager::writeToParcel(AParcel* parcel, const std::shared_ptr<IClientManager>& instance) {
319 return AParcel_writeStrongBinder(parcel, instance ? instance->asBinder().get() : nullptr);
320 }
readFromParcel(const AParcel * parcel,std::shared_ptr<IClientManager> * instance)321 binder_status_t IClientManager::readFromParcel(const AParcel* parcel, std::shared_ptr<IClientManager>* instance) {
322 ::ndk::SpAIBinder binder;
323 binder_status_t status = AParcel_readStrongBinder(parcel, binder.getR());
324 if (status != STATUS_OK) return status;
325 *instance = IClientManager::fromBinder(binder);
326 return STATUS_OK;
327 }
setDefaultImpl(const std::shared_ptr<IClientManager> & impl)328 bool IClientManager::setDefaultImpl(const std::shared_ptr<IClientManager>& impl) {
329 // Only one user of this interface can use this function
330 // at a time. This is a heuristic to detect if two different
331 // users in the same process use this function.
332 assert(!IClientManager::default_impl);
333 if (impl) {
334 IClientManager::default_impl = impl;
335 return true;
336 }
337 return false;
338 }
getDefaultImpl()339 const std::shared_ptr<IClientManager>& IClientManager::getDefaultImpl() {
340 return IClientManager::default_impl;
341 }
342 std::shared_ptr<IClientManager> IClientManager::default_impl = nullptr;
registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> &,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration *)343 ::ndk::ScopedAStatus IClientManagerDefault::registerSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& /*in_bufferPool*/, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* /*_aidl_return*/) {
344 ::ndk::ScopedAStatus _aidl_status;
345 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
346 return _aidl_status;
347 }
registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor> &,::aidl::android::hardware::media::bufferpool2::IClientManager::Registration *)348 ::ndk::ScopedAStatus IClientManagerDefault::registerPassiveSender(const std::shared_ptr<::aidl::android::hardware::media::bufferpool2::IAccessor>& /*in_bufferPool*/, ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* /*_aidl_return*/) {
349 ::ndk::ScopedAStatus _aidl_status;
350 _aidl_status.set(AStatus_fromStatus(STATUS_UNKNOWN_TRANSACTION));
351 return _aidl_status;
352 }
getInterfaceVersion(int32_t * _aidl_return)353 ::ndk::ScopedAStatus IClientManagerDefault::getInterfaceVersion(int32_t* _aidl_return) {
354 *_aidl_return = 0;
355 return ::ndk::ScopedAStatus(AStatus_newOk());
356 }
getInterfaceHash(std::string * _aidl_return)357 ::ndk::ScopedAStatus IClientManagerDefault::getInterfaceHash(std::string* _aidl_return) {
358 *_aidl_return = "";
359 return ::ndk::ScopedAStatus(AStatus_newOk());
360 }
asBinder()361 ::ndk::SpAIBinder IClientManagerDefault::asBinder() {
362 return ::ndk::SpAIBinder();
363 }
isRemote()364 bool IClientManagerDefault::isRemote() {
365 return false;
366 }
367 } // namespace bufferpool2
368 } // namespace media
369 } // namespace hardware
370 } // namespace android
371 } // namespace aidl
372 namespace aidl {
373 namespace android {
374 namespace hardware {
375 namespace media {
376 namespace bufferpool2 {
377 const char* IClientManager::Registration::descriptor = "android.hardware.media.bufferpool2.IClientManager.Registration";
378
readFromParcel(const AParcel * _aidl_parcel)379 binder_status_t IClientManager::Registration::readFromParcel(const AParcel* _aidl_parcel) {
380 binder_status_t _aidl_ret_status = STATUS_OK;
381 int32_t _aidl_start_pos = AParcel_getDataPosition(_aidl_parcel);
382 int32_t _aidl_parcelable_size = 0;
383 _aidl_ret_status = AParcel_readInt32(_aidl_parcel, &_aidl_parcelable_size);
384 if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
385
386 if (_aidl_parcelable_size < 4) return STATUS_BAD_VALUE;
387 if (_aidl_start_pos > INT32_MAX - _aidl_parcelable_size) return STATUS_BAD_VALUE;
388 if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
389 AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
390 return _aidl_ret_status;
391 }
392 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &connectionId);
393 if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
394
395 if (AParcel_getDataPosition(_aidl_parcel) - _aidl_start_pos >= _aidl_parcelable_size) {
396 AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
397 return _aidl_ret_status;
398 }
399 _aidl_ret_status = ::ndk::AParcel_readData(_aidl_parcel, &isNew);
400 if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
401
402 AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos + _aidl_parcelable_size);
403 return _aidl_ret_status;
404 }
writeToParcel(AParcel * _aidl_parcel) const405 binder_status_t IClientManager::Registration::writeToParcel(AParcel* _aidl_parcel) const {
406 binder_status_t _aidl_ret_status;
407 int32_t _aidl_start_pos = AParcel_getDataPosition(_aidl_parcel);
408 _aidl_ret_status = AParcel_writeInt32(_aidl_parcel, 0);
409 if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
410
411 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, connectionId);
412 if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
413
414 _aidl_ret_status = ::ndk::AParcel_writeData(_aidl_parcel, isNew);
415 if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status;
416
417 int32_t _aidl_end_pos = AParcel_getDataPosition(_aidl_parcel);
418 AParcel_setDataPosition(_aidl_parcel, _aidl_start_pos);
419 AParcel_writeInt32(_aidl_parcel, _aidl_end_pos - _aidl_start_pos);
420 AParcel_setDataPosition(_aidl_parcel, _aidl_end_pos);
421 return _aidl_ret_status;
422 }
423
424 } // namespace bufferpool2
425 } // namespace media
426 } // namespace hardware
427 } // namespace android
428 } // namespace aidl
429