Lines Matching refs:handle
44 BufferHandle *handle = static_cast<BufferHandle *>(malloc(handleSize));
45 if (handle != nullptr) {
46 errno_t ret = memset_s(handle, handleSize, 0, handleSize);
49 free(handle);
52 handle->fd = -1;
54 handle->reserve[i] = -1;
56 handle->reserveFds = reserveFds;
57 handle->reserveInts = reserveInts;
61 return handle;
64 int32_t FreeBufferHandle(BufferHandle *handle)
66 if (handle == nullptr) {
67 UTILS_LOGW("FreeBufferHandle with nullptr handle");
70 if (handle->fd >= 0) {
71 close(handle->fd);
72 handle->fd = -1;
74 const uint32_t reserveFds = handle->reserveFds;
76 if (handle->reserve[i] >= 0) {
77 close(handle->reserve[i]);
78 handle->reserve[i] = -1;
81 free(handle);
86 bool WriteBufferHandle(MessageParcel &parcel, const BufferHandle &handle)
88 if (!parcel.WriteUint32(handle.reserveFds) || !parcel.WriteUint32(handle.reserveInts) ||
89 !parcel.WriteInt32(handle.width) || !parcel.WriteInt32(handle.stride) || !parcel.WriteInt32(handle.height) ||
90 !parcel.WriteInt32(handle.size) || !parcel.WriteInt32(handle.format) || !parcel.WriteInt64(handle.usage) ||
91 !parcel.WriteUint64(handle.phyAddr)) {
95 bool validFd = (handle.fd >= 0);
100 if (validFd && !parcel.WriteFileDescriptor(handle.fd)) {
105 for (uint32_t i = 0; i < handle.reserveFds; i++) {
106 if (!parcel.WriteFileDescriptor(handle.reserve[i])) {
111 for (uint32_t j = 0; j < handle.reserveInts; j++) {
112 if (!parcel.WriteInt32(handle.reserve[handle.reserveFds + j])) {
129 BufferHandle *handle = AllocateBufferHandle(reserveFds, reserveInts);
130 if (handle == nullptr) {
135 if (!parcel.ReadInt32(handle->width) || !parcel.ReadInt32(handle->stride) || !parcel.ReadInt32(handle->height) ||
136 !parcel.ReadInt32(handle->size) || !parcel.ReadInt32(handle->format) || !parcel.ReadUint64(handle->usage) ||
137 !parcel.ReadUint64(handle->phyAddr)) {
139 FreeBufferHandle(handle);
146 FreeBufferHandle(handle);
150 handle->fd = parcel.ReadFileDescriptor();
151 if (handle->fd == -1) {
153 FreeBufferHandle(handle);
158 for (uint32_t i = 0; i < handle->reserveFds; i++) {
159 handle->reserve[i] = parcel.ReadFileDescriptor();
160 if (handle->reserve[i] == -1) {
162 FreeBufferHandle(handle);
166 for (uint32_t j = 0; j < handle->reserveInts; j++) {
167 if (!parcel.ReadInt32(handle->reserve[reserveFds + j])) {
169 FreeBufferHandle(handle);
173 return handle;