Lines Matching +full:null +full:- +full:delimited
15 * @brief Call a callback function. If the callback function is NULL, this will
16 * not do anything. If the callback function returns a non-zero value, this will
17 * cause the caller to return with the non-zero status.
22 if ((function) != NULL) \
35 * @param[in] bytes - valid pointer to a byte stream in little-endian format.
36 * @param[in] numOfBytes - number of bytes belongs to the value. Maximum value
49 uint64_t mask = (uint64_t)1 << (uint8_t)(bitsInVal - 1); in bejGetIntegerValue()
50 return (int64_t)((value ^ mask) - mask); in bejGetIntegerValue()
56 * @param[in] enSegment - a valid pointer to a start of a SFLV bejTuple.
57 * @param[out] offsets - this will hold the local offsets.
63 // [Number of bytes need to represent the sequence number] - uint8_t in bejGetLocalBejSFLVOffsets()
64 // [SequenceNumber] - multi byte in bejGetLocalBejSFLVOffsets()
65 // [Format] - uint8_t in bejGetLocalBejSFLVOffsets()
66 // [Number of bytes need to represent the value length] - uint8_t in bejGetLocalBejSFLVOffsets()
67 // [Value length] - multi byte in bejGetLocalBejSFLVOffsets()
73 // Start of length of the value-length bytes. in bejGetLocalBejSFLVOffsets()
81 offsets->formatOffset = formatOffset; in bejGetLocalBejSFLVOffsets()
82 offsets->valueLenNnintOffset = valueLenNnintOffset; in bejGetLocalBejSFLVOffsets()
83 offsets->valueOffset = valueOffset; in bejGetLocalBejSFLVOffsets()
89 * @param[inout] params - a valid BejHandleTypeFuncParam struct with
90 * params->state.encodedSubStream pointing to the start of the encoded stream
91 * and params->state.encodedStreamOffset pointing to the current bejTuple.
98 bejGetLocalBejSFLVOffsets(params->state.encodedSubStream, &localOffset); in bejInitSFLVStruct()
99 struct BejSFLV* sflv = ¶ms->sflv; in bejInitSFLVStruct()
101 params->state.encodedSubStream + localOffset.valueLenNnintOffset)); in bejInitSFLVStruct()
104 uint32_t tupleS = (uint32_t)(bejGetNnint(params->state.encodedSubStream)); in bejInitSFLVStruct()
105 sflv->tupleS.schema = (uint8_t)(tupleS & DICTIONARY_TYPE_MASK); in bejInitSFLVStruct()
106 sflv->tupleS.sequenceNumber = in bejInitSFLVStruct()
109 sflv->format = *(struct BejTupleF*)(params->state.encodedSubStream + in bejInitSFLVStruct()
111 sflv->valueLength = valueLength; in bejInitSFLVStruct()
113 if ((UINT32_MAX - localOffset.valueOffset) < in bejInitSFLVStruct()
114 params->state.encodedStreamOffset) in bejInitSFLVStruct()
122 params->state.encodedStreamOffset + localOffset.valueOffset; in bejInitSFLVStruct()
124 if ((UINT32_MAX - valueStartLocation) < valueLength) in bejInitSFLVStruct()
133 sflv->valueEndOffset = valueStartLocation + valueLength; in bejInitSFLVStruct()
134 sflv->value = params->state.encodedSubStream + localOffset.valueOffset; in bejInitSFLVStruct()
145 * @param[in] params - a valid BejHandleTypeFuncParam struct.
154 bejGetLocalBejSFLVOffsets(params->state.encodedSubStream, &localOffset); in bejGetFirstTupleOffset()
155 return params->state.encodedStreamOffset + localOffset.valueOffset + in bejGetFirstTupleOffset()
156 bejGetNnintSize(params->sflv.value); in bejGetFirstTupleOffset()
162 * @param[in] params - a BejHandleTypeFuncParam struct pointing to valid
164 * @param[in] schemaType - indicate whether to use the annotation dictionary or
166 * @param[in] sequenceNumber - sequence number to use for property search. Not
167 * using the params->sflv.tupleS.sequenceNumber from the provided params struct.
168 * @param[out] dictionary - if the function is successful, this will point to a
170 * @param[out] prop - if the function is successful, this will point to a valid
183 *dictionary = params->mainDictionary; in bejGetDictionaryAndProperty()
184 dictPropOffset = params->state.mainDictPropOffset; in bejGetDictionaryAndProperty()
188 *dictionary = params->annotDictionary; in bejGetDictionaryAndProperty()
189 dictPropOffset = params->state.annoDictPropOffset; in bejGetDictionaryAndProperty()
211 * the params->state.addPropertyName is false, this will return an empty string.
213 * @param[in] params - a valid populated BejHandleTypeFuncParam.
220 if (!params->state.addPropertyName || in bejGetPropName()
221 (bejGetDictionaryAndProperty(params, params->sflv.tupleS.schema, in bejGetPropName()
222 params->sflv.tupleS.sequenceNumber, in bejGetPropName()
227 return bejDictGetPropertyName(dictionary, prop->nameOffset, in bejGetPropName()
228 prop->nameLength); in bejGetPropName()
239 * @param[in] params - a valid BejHandleTypeFuncParam which contains the decoder
241 * @param[in] canBeEmpty - if true, the stack being empty is not an error. If
248 if (params->stackCallback->stackEmpty(params->stackDataPtr) && !canBeEmpty) in bejProcessEnding()
256 while (!params->stackCallback->stackEmpty(params->stackDataPtr)) in bejProcessEnding()
259 params->stackCallback->stackPeek(params->stackDataPtr); in bejProcessEnding()
262 if (params->state.encodedStreamOffset == ending->streamEndOffset) in bejProcessEnding()
267 params->state.mainDictPropOffset = ending->mainDictPropOffset; in bejProcessEnding()
268 params->state.annoDictPropOffset = ending->annoDictPropOffset; in bejProcessEnding()
269 params->state.addPropertyName = ending->addPropertyName; in bejProcessEnding()
271 if (ending->sectionType == bejSectionSet) in bejProcessEnding()
274 params->decodedCallback->callbackSetEnd, in bejProcessEnding()
275 params->callbacksDataPtr); in bejProcessEnding()
277 else if (ending->sectionType == bejSectionArray) in bejProcessEnding()
280 params->decodedCallback->callbackArrayEnd, in bejProcessEnding()
281 params->callbacksDataPtr); in bejProcessEnding()
283 params->stackCallback->stackPop(params->stackDataPtr); in bejProcessEnding()
288 params->decodedCallback->callbackPropertyEnd, in bejProcessEnding()
289 params->callbacksDataPtr); in bejProcessEnding()
302 * @param[in] params - a valid BejHandleTypeFuncParam struct.
310 if (params->stackCallback->stackEmpty(params->stackDataPtr)) in bejIsArrayElement()
315 params->stackCallback->stackPeek(params->stackDataPtr); in bejIsArrayElement()
318 return ending->sectionType == bejSectionArray; in bejIsArrayElement()
324 * @param[in] params - a valid BejHandleTypeFuncParam struct.
329 uint16_t sequenceNumber = params->sflv.tupleS.sequenceNumber; in bejHandleBejSet()
339 bejGetDictionaryAndProperty(params, params->sflv.tupleS.schema, in bejHandleBejSet()
343 if (params->state.addPropertyName) in bejHandleBejSet()
345 propName = bejDictGetPropertyName(dictionary, prop->nameOffset, in bejHandleBejSet()
346 prop->nameLength); in bejHandleBejSet()
349 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackSetStart, in bejHandleBejSet()
350 propName, params->callbacksDataPtr); in bejHandleBejSet()
354 params->state.encodedStreamOffset = bejGetFirstTupleOffset(params); in bejHandleBejSet()
356 uint64_t elements = bejGetNnint(params->sflv.value); in bejHandleBejSet()
360 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackSetEnd, in bejHandleBejSet()
361 params->callbacksDataPtr); in bejHandleBejSet()
372 .addPropertyName = params->state.addPropertyName, in bejHandleBejSet()
373 .mainDictPropOffset = params->state.mainDictPropOffset, in bejHandleBejSet()
374 .annoDictPropOffset = params->state.annoDictPropOffset, in bejHandleBejSet()
375 .streamEndOffset = params->sflv.valueEndOffset, in bejHandleBejSet()
378 params->stackCallback->stackPush(&newEnding, params->stackDataPtr)); in bejHandleBejSet()
379 params->state.addPropertyName = true; in bejHandleBejSet()
380 if (params->sflv.tupleS.schema == bejAnnotation) in bejHandleBejSet()
384 params->state.annoDictPropOffset = prop->childPointerOffset; in bejHandleBejSet()
388 params->state.mainDictPropOffset = prop->childPointerOffset; in bejHandleBejSet()
396 * @param[in] params - a valid BejHandleTypeFuncParam struct.
404 params, params->sflv.tupleS.schema, params->sflv.tupleS.sequenceNumber, in bejHandleBejArray()
408 if (params->state.addPropertyName) in bejHandleBejArray()
410 propName = bejDictGetPropertyName(dictionary, prop->nameOffset, in bejHandleBejArray()
411 prop->nameLength); in bejHandleBejArray()
414 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackArrayStart, in bejHandleBejArray()
415 propName, params->callbacksDataPtr); in bejHandleBejArray()
419 params->state.encodedStreamOffset = bejGetFirstTupleOffset(params); in bejHandleBejArray()
421 uint64_t elements = bejGetNnint(params->sflv.value); in bejHandleBejArray()
425 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackArrayEnd, in bejHandleBejArray()
426 params->callbacksDataPtr); in bejHandleBejArray()
437 .addPropertyName = params->state.addPropertyName, in bejHandleBejArray()
438 .mainDictPropOffset = params->state.mainDictPropOffset, in bejHandleBejArray()
439 .annoDictPropOffset = params->state.annoDictPropOffset, in bejHandleBejArray()
440 .streamEndOffset = params->sflv.valueEndOffset, in bejHandleBejArray()
443 params->stackCallback->stackPush(&newEnding, params->stackDataPtr)); in bejHandleBejArray()
445 params->state.addPropertyName = false; in bejHandleBejArray()
446 if (params->sflv.tupleS.schema == bejAnnotation) in bejHandleBejArray()
450 params->state.annoDictPropOffset = prop->childPointerOffset; in bejHandleBejArray()
454 params->state.mainDictPropOffset = prop->childPointerOffset; in bejHandleBejArray()
462 * @param[in] params - a valid BejHandleTypeFuncParam struct.
468 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackNull, propName, in bejHandleBejNull()
469 params->callbacksDataPtr); in bejHandleBejNull()
470 params->state.encodedStreamOffset = params->sflv.valueEndOffset; in bejHandleBejNull()
477 * @param[in] params - a valid BejHandleTypeFuncParam struct.
484 if (params->sflv.valueLength == 0) in bejHandleBejInteger()
486 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackNull, in bejHandleBejInteger()
487 propName, params->callbacksDataPtr); in bejHandleBejInteger()
492 params->decodedCallback->callbackInteger, propName, in bejHandleBejInteger()
493 bejGetIntegerValue(params->sflv.value, params->sflv.valueLength), in bejHandleBejInteger()
494 params->callbacksDataPtr); in bejHandleBejInteger()
496 params->state.encodedStreamOffset = params->sflv.valueEndOffset; in bejHandleBejInteger()
503 * @param[in] params - a valid BejHandleTypeFuncParam struct.
508 uint16_t sequenceNumber = params->sflv.tupleS.sequenceNumber; in bejHandleBejEnum()
516 bejGetDictionaryAndProperty(params, params->sflv.tupleS.schema, in bejHandleBejEnum()
520 if (params->state.addPropertyName) in bejHandleBejEnum()
522 propName = bejDictGetPropertyName(dictionary, prop->nameOffset, in bejHandleBejEnum()
523 prop->nameLength); in bejHandleBejEnum()
526 if (params->sflv.valueLength == 0) in bejHandleBejEnum()
528 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackNull, in bejHandleBejEnum()
529 propName, params->callbacksDataPtr); in bejHandleBejEnum()
535 (uint16_t)(bejGetNnint(params->sflv.value)); in bejHandleBejEnum()
538 bejDictGetProperty(dictionary, prop->childPointerOffset, in bejHandleBejEnum()
541 dictionary, enumValueProp->nameOffset, enumValueProp->nameLength); in bejHandleBejEnum()
543 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackEnum, in bejHandleBejEnum()
545 params->callbacksDataPtr); in bejHandleBejEnum()
548 params->state.encodedStreamOffset = params->sflv.valueEndOffset; in bejHandleBejEnum()
555 * @param[in] params - a valid BejHandleTypeFuncParam struct.
563 if (params->sflv.valueLength == 0) in bejHandleBejString()
565 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackNull, in bejHandleBejString()
566 propName, params->callbacksDataPtr); in bejHandleBejString()
571 params->decodedCallback->callbackString, propName, in bejHandleBejString()
572 (const char*)(params->sflv.value), params->sflv.valueLength, in bejHandleBejString()
573 params->callbacksDataPtr); in bejHandleBejString()
575 params->state.encodedStreamOffset = params->sflv.valueEndOffset; in bejHandleBejString()
582 * @param[in] params - a valid BejHandleTypeFuncParam struct.
589 if (params->sflv.valueLength == 0) in bejHandleBejReal()
591 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackNull, in bejHandleBejReal()
592 propName, params->callbacksDataPtr); in bejHandleBejReal()
597 // nnint - Length of whole in bejHandleBejReal()
598 // bejInteger - whole (includes sign for the overall real number) in bejHandleBejReal()
599 // nnint - Leading zero count for fract in bejHandleBejReal()
600 // nnint - fract in bejHandleBejReal()
601 // nnint - Length of exp in bejHandleBejReal()
602 // bejInteger - exp (includes sign for the exponent) in bejHandleBejReal()
603 uint8_t wholeByteLen = (uint8_t)bejGetNnint(params->sflv.value); in bejHandleBejReal()
605 params->sflv.value + bejGetNnintSize(params->sflv.value); in bejHandleBejReal()
622 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackReal, in bejHandleBejReal()
624 params->callbacksDataPtr); in bejHandleBejReal()
626 params->state.encodedStreamOffset = params->sflv.valueEndOffset; in bejHandleBejReal()
633 * @param[in] params - a valid BejHandleTypeFuncParam struct.
640 if (params->sflv.valueLength == 0) in bejHandleBejBoolean()
642 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackNull, in bejHandleBejBoolean()
643 propName, params->callbacksDataPtr); in bejHandleBejBoolean()
647 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackBool, in bejHandleBejBoolean()
648 propName, *(params->sflv.value) > 0, in bejHandleBejBoolean()
649 params->callbacksDataPtr); in bejHandleBejBoolean()
651 params->state.encodedStreamOffset = params->sflv.valueEndOffset; in bejHandleBejBoolean()
658 * @param[in] params - a valid BejHandleTypeFuncParam struct.
663 // TODO: Handle colon-delimited string values. in bejHandleBejPropertyAnnotation()
670 params, params->sflv.tupleS.schema, params->sflv.tupleS.sequenceNumber, in bejHandleBejPropertyAnnotation()
674 outerDictionary, outerProp->nameOffset, outerProp->nameLength); in bejHandleBejPropertyAnnotation()
675 RETURN_IF_CALLBACK_IERROR(params->decodedCallback->callbackAnnotation, in bejHandleBejPropertyAnnotation()
676 propName, params->callbacksDataPtr); in bejHandleBejPropertyAnnotation()
681 .addPropertyName = params->state.addPropertyName, in bejHandleBejPropertyAnnotation()
682 .mainDictPropOffset = params->state.mainDictPropOffset, in bejHandleBejPropertyAnnotation()
683 .annoDictPropOffset = params->state.annoDictPropOffset, in bejHandleBejPropertyAnnotation()
684 .streamEndOffset = params->sflv.valueEndOffset, in bejHandleBejPropertyAnnotation()
688 params->stackCallback->stackPush(&newEnding, params->stackDataPtr)); in bejHandleBejPropertyAnnotation()
689 params->state.addPropertyName = true; in bejHandleBejPropertyAnnotation()
691 params->state.mainDictPropOffset = outerProp->childPointerOffset; in bejHandleBejPropertyAnnotation()
693 params->state.encodedStreamOffset = in bejHandleBejPropertyAnnotation()
694 params->sflv.valueEndOffset - params->sflv.valueLength; in bejHandleBejPropertyAnnotation()
701 * @param[in] schemaDictionary - main schema dictionary to use.
702 * @param[in] annotationDictionary - annotation dictionary
703 * @param[in] enStream - encoded stream without the PLDM header.
704 * @param[in] streamLen - length of the enStream.
705 * @param[in] stackCallback - callbacks for stack handlers.
706 * @param[in] decodedCallback - callbacks for extracting decoded properties.
707 * @param[in] callbacksDataPtr - data pointer to pass to decoded callbacks. This
709 * @param[in] stackDataPtr - data pointer to pass to stack callbacks. This can
776 params.decodedCallback->callbackReadonlyProperty, in bejDecode()
836 if (!params.stackCallback->stackEmpty(params.stackDataPtr)) in bejDecode()
848 * @param[in] bejVersion - the bej version in the received encoded stream
871 NULL_CHECK(dictionaries->schemaDictionary, "schemaDictionary"); in bejDecodePldmBlock()
872 NULL_CHECK(dictionaries->annotationDictionary, "annotationDictionary"); in bejDecodePldmBlock()
877 NULL_CHECK(stackCallback->stackEmpty, "stackEmpty"); in bejDecodePldmBlock()
878 NULL_CHECK(stackCallback->stackPeek, "stackPeek"); in bejDecodePldmBlock()
879 NULL_CHECK(stackCallback->stackPop, "stackPop"); in bejDecodePldmBlock()
880 NULL_CHECK(stackCallback->stackPush, "stackPush"); in bejDecodePldmBlock()
894 if (!bejIsSupported(pldmHeader->bejVersion)) in bejDecodePldmBlock()
897 pldmHeader->bejVersion); in bejDecodePldmBlock()
901 if (pldmHeader->schemaClass == bejAnnotationSchemaClass) in bejDecodePldmBlock()
908 if (pldmHeader->schemaClass == bejCollectionMemberTypeSchemaClass) in bejDecodePldmBlock()
915 if (pldmHeader->schemaClass == bejErrorSchemaClass) in bejDecodePldmBlock()
922 ((const struct BejDictionaryHeader*)dictionaries->schemaDictionary); in bejDecodePldmBlock()
923 if (schemaDictionaryHeader->dictionarySize != in bejDecodePldmBlock()
924 dictionaries->schemaDictionarySize) in bejDecodePldmBlock()
927 schemaDictionaryHeader->dictionarySize, in bejDecodePldmBlock()
928 dictionaries->schemaDictionarySize); in bejDecodePldmBlock()
933 ((const struct BejDictionaryHeader*)dictionaries->annotationDictionary); in bejDecodePldmBlock()
934 if (annotationDictionaryHeader->dictionarySize != in bejDecodePldmBlock()
935 dictionaries->annotationDictionarySize) in bejDecodePldmBlock()
939 annotationDictionaryHeader->dictionarySize, in bejDecodePldmBlock()
940 dictionaries->annotationDictionarySize); in bejDecodePldmBlock()
944 if (dictionaries->errorDictionary != NULL) in bejDecodePldmBlock()
947 ((const struct BejDictionaryHeader*)dictionaries->errorDictionary); in bejDecodePldmBlock()
948 if (errorDictionaryHeader->dictionarySize != in bejDecodePldmBlock()
949 dictionaries->errorDictionarySize) in bejDecodePldmBlock()
953 errorDictionaryHeader->dictionarySize, in bejDecodePldmBlock()
954 dictionaries->errorDictionarySize); in bejDecodePldmBlock()
961 uint32_t streamLen = blockLength - pldmHeaderSize; in bejDecodePldmBlock()
962 return bejDecode(dictionaries->schemaDictionary, in bejDecodePldmBlock()
963 dictionaries->annotationDictionary, enStream, streamLen, in bejDecodePldmBlock()