• Home
  • Raw
  • Download

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 = 0; 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) { 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 if (memmove_s(parcel->data, parcel->endPos - parcel->beginPos, in ParcelRecycle()
126 parcel->data + parcel->beginPos, parcel->endPos - parcel->beginPos) != EOK) { in ParcelRecycle()
129 parcel->beginPos = 0; in ParcelRecycle()
130 parcel->endPos = contentSize; in ParcelRecycle()
133 static uint32_t GetParcelIncreaseSize(HcParcel *parcel, uint32_t newSize) in GetParcelIncreaseSize() argument
135 if (parcel == NULL || parcel->allocUnit == 0) { in GetParcelIncreaseSize()
138 if (newSize % parcel->allocUnit) { in GetParcelIncreaseSize()
139 return (newSize / parcel->allocUnit + 1) * parcel->allocUnit; in GetParcelIncreaseSize()
141 return (newSize / parcel->allocUnit) * parcel->allocUnit; in GetParcelIncreaseSize()
145 bool ParcelWrite(HcParcel *parcel, const void *src, uint32_t dataSize) in ParcelWrite() argument
148 if (parcel == NULL || src == NULL || dataSize == 0) { in ParcelWrite()
151 if (parcel->endPos > PARCEL_UINT_MAX - dataSize) { in ParcelWrite()
154 if (parcel->endPos + dataSize > parcel->length) { in ParcelWrite()
155 ParcelRecycle(parcel); in ParcelWrite()
156 if (parcel->endPos + dataSize > parcel->length) { in ParcelWrite()
157 uint32_t newSize = GetParcelIncreaseSize(parcel, parcel->endPos + dataSize); in ParcelWrite()
158 if (!ParcelIncrease(parcel, newSize)) { in ParcelWrite()
163 rc = memmove_s(parcel->data + parcel->endPos, dataSize, src, dataSize); in ParcelWrite()
167 parcel->endPos += dataSize; in ParcelWrite()
171 bool ParcelWriteInt8(HcParcel *parcel, char src) in ParcelWriteInt8() argument
173 return ParcelWrite(parcel, &src, sizeof(src)); in ParcelWriteInt8()
176 bool ParcelPopBack(HcParcel *parcel, uint32_t size) in ParcelPopBack() argument
178 if (parcel != NULL && size > 0 && GetParcelDataSize(parcel) >= size) { in ParcelPopBack()
179 parcel->endPos -= size; in ParcelPopBack()