1 #include "BnAndroidShm.h"
2 #include <binder/Parcel.h>
5 status_t
BnAndroidShm::onTransact( uint32_t code
,
12 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
14 str
= data
.readCString();
15 reply
->writeInt32(sendCommand(str
));
20 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
22 data
.readInt32(&index
);
23 sp
<IMemoryHeap
> Data
= getBuffer(index
);
25 reply
->writeStrongBinder(Data
->asBinder());
31 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
33 data
.readInt32(&size
);
34 reply
->writeInt32(allocShm(size
));
39 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
41 data
.readInt32(&index
);
42 reply
->writeInt32(removeShm(index
));
46 case HW_IS_ALLOCATED
:{
47 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
49 data
.readInt32(&index
);
50 reply
->writeInt32(isAllocated(index
));
54 case HW_SET_REGISTRY_INDEX
:{
55 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
57 data
.readInt32(&index
);
58 reply
->writeInt32(setRegistryIndex(index
));
62 case HW_GET_REGISTRY_INDEX
:{
63 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
64 reply
->writeInt32(getRegistryIndex());
68 case HW_INIT_SEMAPHORE
:{
69 CHECK_INTERFACE(IAndroidShm
, data
, reply
);
71 name
= data
.readCString();
72 sp
<IMemoryHeap
> Data
= InitSemaphore(name
);
74 reply
->writeStrongBinder(Data
->asBinder());
80 return BBinder::onTransact(code
, data
, reply
, flags
);