15typedef VOID *EDKII_JSON_VALUE;
16typedef VOID *EDKII_JSON_ARRAY;
17typedef VOID *EDKII_JSON_OBJECT;
30#define EDKII_JSON_MAX_INDENT 0x1F
31#define EDKII_JSON_INDENT(n) ((n) & EDKII_JSON_MAX_INDENT)
33#define EDKII_JSON_COMPACT 0x20
34#define EDKII_JSON_ENSURE_ASCII 0x40
35#define EDKII_JSON_SORT_KEYS 0x80
36#define EDKII_JSON_PRESERVE_ORDER 0x100
37#define EDKII_JSON_ENCODE_ANY 0x200
38#define EDKII_JSON_ESCAPE_SLASH 0x400
39#define EDKII_JSON_REAL_PRECISION(n) (((n) & 0x1F) << 11)
40#define EDKII_JSON_EMBED 0x10000
47#define EDKII_JSON_REJECT_DUPLICATES 0x1
48#define EDKII_JSON_DISABLE_EOF_CHECK 0x2
49#define EDKII_JSON_DECODE_ANY 0x4
50#define EDKII_JSON_DECODE_INT_AS_REAL 0x8
51#define EDKII_JSON_ALLOW_NUL 0x10
53#define EDKII_JSON_ARRAY_FOREACH(Array, Index, Value) \
55 Index < JsonArrayCount(Array) && (Value = JsonArrayGetValue(Array, Index)); \
58#define EDKII_JSON_OBJECT_FOREACH_SAFE(Object, N, Key, Value) \
59 for (Key = JsonObjectIteratorKey(JsonObjectIterator(Object)), \
60 N = JsonObjectIteratorNext(Object, JsonObjectKeyToIterator(Key)); \
61 Key && (Value = JsonObjectIteratorValue(JsonObjectKeyToIterator(Key))); \
62 Key = JsonObjectIteratorKey(N), \
63 N = JsonObjectIteratorNext(Object, JsonObjectKeyToIterator(Key)))
68#define EDKII_JSON_ERROR_TEXT_LENGTH 160
69#define EDKII_JSON_ERROR_SOURCE_LENGTH 80
74 CHAR8 Source[EDKII_JSON_ERROR_SOURCE_LENGTH];
283 IN EDKII_JSON_VALUE Json
306 IN EDKII_JSON_VALUE Json
321 IN EDKII_JSON_VALUE Json
336 IN EDKII_JSON_VALUE Json
352 IN EDKII_JSON_VALUE Json
367 IN EDKII_JSON_VALUE Json
382 IN EDKII_JSON_VALUE Json
397 IN EDKII_JSON_VALUE Json
412 IN EDKII_JSON_VALUE Json
427 IN EDKII_JSON_VALUE Json
442 IN EDKII_JSON_VALUE Json
458 IN EDKII_JSON_VALUE Json
474 IN EDKII_JSON_VALUE Json
490 IN EDKII_JSON_VALUE Json
507 IN EDKII_JSON_VALUE Json
524 IN EDKII_JSON_VALUE Json
541 IN EDKII_JSON_VALUE Json
557 IN EDKII_JSON_VALUE Json
572 IN EDKII_JSON_OBJECT JsonObject
588 IN EDKII_JSON_OBJECT JsonObject
606 IN EDKII_JSON_OBJECT JsonObj,
629 IN CONST EDKII_JSON_OBJECT JsonObj,
654 IN EDKII_JSON_OBJECT JsonObj,
656 IN EDKII_JSON_VALUE Json
672 IN EDKII_JSON_OBJECT JsonObj,
688 IN EDKII_JSON_ARRAY JsonArray
710 IN EDKII_JSON_ARRAY JsonArray,
730 IN EDKII_JSON_ARRAY JsonArray,
731 IN EDKII_JSON_VALUE Json
751 IN EDKII_JSON_ARRAY JsonArray,
780 IN EDKII_JSON_VALUE JsonValue,
853 IN EDKII_JSON_VALUE JsonValue
871 IN EDKII_JSON_VALUE JsonValue
883 IN EDKII_JSON_VALUE JsonValue
908 IN EDKII_JSON_VALUE JsonValue,
945 IN EDKII_JSON_VALUE JsonValue
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)
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)
#define EDKII_JSON_ERROR_TEXT_LENGTH
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)