Lines Matching refs:parcel

26     HcParcel parcel;  in CreateParcel()  local
27 (void)memset_s(&parcel, sizeof(parcel), 0, sizeof(parcel)); in CreateParcel()
28 parcel.allocUnit = allocUnit; in CreateParcel()
29 if (parcel.allocUnit == 0) { in CreateParcel()
30 parcel.allocUnit = PARCEL_DEFAULT_INCREASE_STEP; in CreateParcel()
33 parcel.data = (char *)HcfMalloc(size, 0); in CreateParcel()
34 if (parcel.data != NULL) { in CreateParcel()
35 parcel.length = size; in CreateParcel()
38 return parcel; in CreateParcel()
41 void DeleteParcel(HcParcel *parcel) in DeleteParcel() argument
43 if (parcel == NULL) { in DeleteParcel()
47 if (parcel->data != NULL) { in DeleteParcel()
48 HcfFree(parcel->data); in DeleteParcel()
49 parcel->data = NULL; in DeleteParcel()
51 parcel->length = 0; in DeleteParcel()
52 parcel->beginPos = 0; in DeleteParcel()
53 parcel->endPos = 0; in DeleteParcel()
56 uint32_t GetParcelDataSize(const HcParcel *parcel) in GetParcelDataSize() argument
58 if (parcel == NULL) { in GetParcelDataSize()
61 if (parcel->endPos >= parcel->beginPos) { in GetParcelDataSize()
62 return parcel->endPos - parcel->beginPos; in GetParcelDataSize()
67 const char *GetParcelData(const HcParcel *parcel) in GetParcelData() argument
69 if (parcel == NULL || parcel->data == NULL) { in GetParcelData()
72 return parcel->data + parcel->beginPos; in GetParcelData()
75 static bool ParcelRealloc(HcParcel *parcel, uint32_t size) in ParcelRealloc() argument
77 if (parcel->length >= size) { in ParcelRealloc()
84 if (memcpy_s(newData, size, parcel->data, parcel->length) != EOK) { in ParcelRealloc()
88 HcfFree(parcel->data); in ParcelRealloc()
89 parcel->data = newData; in ParcelRealloc()
90 parcel->length = size; in ParcelRealloc()
94 static bool ParcelIncrease(HcParcel *parcel, uint32_t size) in ParcelIncrease() argument
96 if (parcel == NULL || size == 0) { in ParcelIncrease()
99 if (parcel->data == NULL) { in ParcelIncrease()
100 if (parcel->length != 0) { in ParcelIncrease()
103 *parcel = CreateParcel(size, parcel->allocUnit); in ParcelIncrease()
104 if (parcel->data == NULL) { in ParcelIncrease()
110 return ParcelRealloc(parcel, size); in ParcelIncrease()
114 static void ParcelRecycle(HcParcel *parcel) in ParcelRecycle() argument
116 if (parcel == NULL) { in ParcelRecycle()
119 if (parcel->data == NULL || parcel->beginPos < parcel->allocUnit) { in ParcelRecycle()
123 uint32_t contentSize = parcel->endPos - parcel->beginPos; in ParcelRecycle()
125 (void)memmove_s(parcel->data, parcel->endPos - parcel->beginPos, in ParcelRecycle()
126 parcel->data + parcel->beginPos, parcel->endPos - parcel->beginPos); in ParcelRecycle()
128 parcel->beginPos = 0; in ParcelRecycle()
129 parcel->endPos = contentSize; in ParcelRecycle()
132 static uint32_t GetParcelIncreaseSize(HcParcel *parcel, uint32_t newSize) in GetParcelIncreaseSize() argument
134 if (parcel == NULL || parcel->allocUnit == 0) { in GetParcelIncreaseSize()
137 if (newSize % parcel->allocUnit) { in GetParcelIncreaseSize()
138 return (newSize / parcel->allocUnit + 1) * parcel->allocUnit; in GetParcelIncreaseSize()
140 return (newSize / parcel->allocUnit) * parcel->allocUnit; in GetParcelIncreaseSize()
144 bool ParcelWrite(HcParcel *parcel, const void *src, uint32_t dataSize) in ParcelWrite() argument
147 if (parcel == NULL || src == NULL || dataSize == 0) { in ParcelWrite()
150 if (parcel->endPos > PARCEL_UINT_MAX - dataSize) { in ParcelWrite()
153 if (parcel->endPos + dataSize > parcel->length) { in ParcelWrite()
154 ParcelRecycle(parcel); in ParcelWrite()
155 if (parcel->endPos + dataSize > parcel->length) { in ParcelWrite()
156 uint32_t newSize = GetParcelIncreaseSize(parcel, parcel->endPos + dataSize); in ParcelWrite()
157 if (!ParcelIncrease(parcel, newSize)) { in ParcelWrite()
162 rc = memmove_s(parcel->data + parcel->endPos, dataSize, src, dataSize); in ParcelWrite()
166 parcel->endPos += dataSize; in ParcelWrite()
170 bool ParcelWriteInt8(HcParcel *parcel, char src) in ParcelWriteInt8() argument
172 return ParcelWrite(parcel, &src, sizeof(src)); in ParcelWriteInt8()
175 bool ParcelPopBack(HcParcel *parcel, uint32_t size) in ParcelPopBack() argument
177 if (parcel != NULL && size > 0 && GetParcelDataSize(parcel) >= size) { in ParcelPopBack()
178 parcel->endPos -= size; in ParcelPopBack()