22extern volatile UINT32 hashtable_seed;
43 return (EDKII_JSON_VALUE)json_array ();
65 return (EDKII_JSON_VALUE)json_object ();
100 while (*(String + Index) !=
'\0') {
101 if (((*(String + Index)) & 0x80) != 0x00) {
108 return (EDKII_JSON_VALUE)json_string (String);
137 if (String ==
NULL) {
143 if (EFI_ERROR (Status)) {
147 return (EDKII_JSON_VALUE)json_string (Utf8Str);
170 return (EDKII_JSON_VALUE)json_integer (Value);
190 return (EDKII_JSON_VALUE)json_boolean (Value);
208 return (EDKII_JSON_VALUE)json_true ();
226 return (EDKII_JSON_VALUE)json_false ();
244 return (EDKII_JSON_VALUE)json_null ();
270 IN EDKII_JSON_VALUE Json
273 json_decref ((json_t *)Json);
296 IN EDKII_JSON_VALUE Json
299 return (EDKII_JSON_VALUE)json_deep_copy ((json_t *)Json);
314 IN EDKII_JSON_VALUE Json
317 return json_is_array ((json_t *)Json);
332 IN EDKII_JSON_VALUE Json
335 return json_is_object ((json_t *)Json);
351 IN EDKII_JSON_VALUE Json
354 return json_is_string ((json_t *)Json);
369 IN EDKII_JSON_VALUE Json
372 return json_is_integer ((json_t *)Json);
387 IN EDKII_JSON_VALUE Json
390 return json_is_number ((json_t *)Json);
405 IN EDKII_JSON_VALUE Json
408 return json_is_boolean ((json_t *)Json);
423 IN EDKII_JSON_VALUE Json
426 if (json_is_true ((json_t *)Json)) {
445 IN EDKII_JSON_VALUE Json
448 if (json_is_false ((json_t *)Json)) {
467 IN EDKII_JSON_VALUE Json
470 return json_is_null ((json_t *)Json);
486 IN EDKII_JSON_VALUE Json
493 return (EDKII_JSON_ARRAY)Json;
509 IN EDKII_JSON_VALUE Json
516 return (EDKII_JSON_OBJECT)Json;
532 IN EDKII_JSON_VALUE Json
535 CONST CHAR8 *AsciiStr;
538 AsciiStr = json_string_value ((json_t *)Json);
539 if (AsciiStr ==
NULL) {
544 while (*(AsciiStr + Index) !=
'\0') {
545 if (((*(AsciiStr + Index)) & 0x80) != 0x00) {
569 IN EDKII_JSON_VALUE Json
573 CONST CHAR8 *Utf8Str;
577 Utf8Str = json_string_value ((json_t *)Json);
578 if (Utf8Str ==
NULL) {
583 if (EFI_ERROR (Status)) {
604 IN EDKII_JSON_VALUE Json
612 return json_integer_value ((json_t *)Json);
629 IN EDKII_JSON_VALUE Json
637 return json_is_true ((json_t *)Json);
653 IN EDKII_JSON_VALUE Json
656 return json_string_value ((
const json_t *)Json);
671 IN EDKII_JSON_OBJECT JsonObject
674 return json_object_size ((json_t *)JsonObject);
690 IN EDKII_JSON_OBJECT JsonObject
693 if (json_object_clear ((json_t *)JsonObject) != 0) {
715 IN EDKII_JSON_OBJECT JsonObj,
720 CONST CHAR8 **KeyArray;
722 EDKII_JSON_VALUE Value;
724 if ((JsonObj ==
NULL) || (KeyCount ==
NULL)) {
729 json_object_foreach (JsonObj, Key, Value) {
739 if (KeyArray ==
NULL) {
746 json_object_foreach ((json_t *)JsonObj, Key, Value) {
747 KeyArray[Index] = Key;
751 return (CHAR8 **)KeyArray;
773 IN CONST EDKII_JSON_OBJECT JsonObj,
777 return (EDKII_JSON_VALUE)json_object_get ((
const json_t *)JsonObj, (
const char *)Key);
801 IN EDKII_JSON_OBJECT JsonObj,
803 IN EDKII_JSON_VALUE Json
806 if (json_object_set ((json_t *)JsonObj, Key, (json_t *)Json) != 0) {
826 IN EDKII_JSON_OBJECT JsonObj,
830 if (json_object_del ((json_t *)JsonObj, (
const char *)Key) != 0) {
849 IN EDKII_JSON_ARRAY JsonArray
852 return json_array_size ((json_t *)JsonArray);
874 IN EDKII_JSON_ARRAY JsonArray,
878 return (EDKII_JSON_VALUE)json_array_get ((json_t *)JsonArray, Index);
897 IN EDKII_JSON_ARRAY JsonArray,
898 IN EDKII_JSON_VALUE Json
901 if (json_array_append ((json_t *)JsonArray, (json_t *)Json) != 0) {
925 IN EDKII_JSON_ARRAY JsonArray,
929 if (json_array_remove ((json_t *)JsonArray, Index) != 0) {
961 IN EDKII_JSON_VALUE JsonValue,
965 if (JsonValue ==
NULL) {
969 return json_dumps ((json_t *)JsonValue, Flags);
997 return (EDKII_JSON_VALUE)json_loads ((
const char *)String, Flags, (json_error_t *)Error);
1028 return json_loadb (Buffer, BufferLen, Flags, (json_error_t *)Error);
1047 IN EDKII_JSON_VALUE JsonValue
1050 json_decref (JsonValue);
1068 IN EDKII_JSON_VALUE JsonValue
1071 return json_incref (JsonValue);
1084 IN EDKII_JSON_VALUE JsonValue
1087 return json_object_iter (JsonValue);
1102 return json_object_iter_value (Iterator);
1116 IN EDKII_JSON_VALUE JsonValue,
1120 return json_object_iter_next (JsonValue, Iterator);
1135 return (CHAR8 *)json_object_iter_key (Iterator);
1150 return json_object_key_to_iter (Key);
1162 IN EDKII_JSON_VALUE JsonValue
1196 hashtable_seed = 0xFDAE2143;
EFI_STATUS UCS2StrToUTF8(IN CHAR16 *Ucs2Str, OUT CHAR8 **Utf8StrAddr)
EFI_STATUS UTF8StrToUCS2(IN CHAR8 *Utf8Str, OUT CHAR16 **Ucs2StrAddr)
VOID *EFIAPI AllocateZeroPool(IN UINTN AllocationSize)
VOID *EFIAPI JsonObjectKeyToIterator(IN CHAR8 *Key)
BOOLEAN EFIAPI JsonValueGetBoolean(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonValueInitUnicodeString(IN CHAR16 *String)
BOOLEAN EFIAPI JsonValueIsString(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonLoadBuffer(IN CONST CHAR8 *Buffer, IN UINTN BufferLen, IN UINTN Flags, IN OUT EDKII_JSON_ERROR *Error)
BOOLEAN EFIAPI JsonValueIsNull(IN EDKII_JSON_VALUE Json)
UINTN EFIAPI JsonObjectSize(IN EDKII_JSON_OBJECT JsonObject)
CONST CHAR8 *EFIAPI JsonValueGetString(IN EDKII_JSON_VALUE Json)
VOID EFIAPI JsonValueFree(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonValueInitFalse(VOID)
EFI_STATUS EFIAPI JsonArrayAppendValue(IN EDKII_JSON_ARRAY JsonArray, IN EDKII_JSON_VALUE Json)
EDKII_JSON_ARRAY EFIAPI JsonValueGetArray(IN EDKII_JSON_VALUE Json)
BOOLEAN EFIAPI JsonValueIsFalse(IN EDKII_JSON_VALUE Json)
BOOLEAN EFIAPI JsonValueIsInteger(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonLoadString(IN CONST CHAR8 *String, IN UINT64 Flags, IN EDKII_JSON_ERROR *Error)
EDKII_JSON_VALUE EFIAPI JsonValueInitObject(VOID)
CHAR8 *EFIAPI JsonDumpString(IN EDKII_JSON_VALUE JsonValue, IN UINTN Flags)
EFI_STATUS EFIAPI JsonObjectClear(IN EDKII_JSON_OBJECT JsonObject)
BOOLEAN EFIAPI JsonValueIsNumber(IN EDKII_JSON_VALUE Json)
CHAR8 ** JsonObjectGetKeys(IN EDKII_JSON_OBJECT JsonObj, OUT UINTN *KeyCount)
VOID EFIAPI JsonDecreaseReference(IN EDKII_JSON_VALUE JsonValue)
EFI_STATUS EFIAPI JsonObjectDelete(IN EDKII_JSON_OBJECT JsonObj, IN CONST CHAR8 *Key)
EDKII_JSON_VALUE EFIAPI JsonValueInitNull(VOID)
EDKII_JSON_OBJECT EFIAPI JsonValueGetObject(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonArrayGetValue(IN EDKII_JSON_ARRAY JsonArray, IN UINTN Index)
BOOLEAN EFIAPI JsonValueIsBoolean(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonValueClone(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonValueInitBoolean(IN BOOLEAN Value)
CONST CHAR8 *EFIAPI JsonValueGetAsciiString(IN EDKII_JSON_VALUE Json)
CHAR8 *EFIAPI JsonObjectIteratorKey(IN VOID *Iterator)
VOID *EFIAPI JsonObjectIteratorNext(IN EDKII_JSON_VALUE JsonValue, IN VOID *Iterator)
BOOLEAN EFIAPI JsonValueIsArray(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonObjectGetValue(IN CONST EDKII_JSON_OBJECT JsonObj, IN CONST CHAR8 *Key)
EFI_STATUS EFIAPI JsonArrayRemoveValue(IN EDKII_JSON_ARRAY JsonArray, IN UINTN Index)
EDKII_JSON_VALUE EFIAPI JsonValueInitTrue(VOID)
EFI_STATUS EFIAPI JsonLibConstructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EDKII_JSON_TYPE EFIAPI JsonGetType(IN EDKII_JSON_VALUE JsonValue)
UINTN EFIAPI JsonArrayCount(IN EDKII_JSON_ARRAY JsonArray)
EDKII_JSON_VALUE EFIAPI JsonIncreaseReference(IN EDKII_JSON_VALUE JsonValue)
INT64 EFIAPI JsonValueGetInteger(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonValueInitArray(VOID)
EDKII_JSON_VALUE EFIAPI JsonValueInitAsciiString(IN CONST CHAR8 *String)
EFI_STATUS EFIAPI JsonObjectSetValue(IN EDKII_JSON_OBJECT JsonObj, IN CONST CHAR8 *Key, IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonObjectIteratorValue(IN VOID *Iterator)
VOID *EFIAPI JsonObjectIterator(IN EDKII_JSON_VALUE JsonValue)
CHAR16 *EFIAPI JsonValueGetUnicodeString(IN EDKII_JSON_VALUE Json)
EDKII_JSON_VALUE EFIAPI JsonValueInitInteger(IN INT64 Value)
BOOLEAN EFIAPI JsonValueIsTrue(IN EDKII_JSON_VALUE Json)
BOOLEAN EFIAPI JsonValueIsObject(IN EDKII_JSON_VALUE Json)