SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
+\r
#ifndef JSON_LIB_H_\r
#define JSON_LIB_H_\r
\r
-typedef VOID* EDKII_JSON_VALUE;\r
-typedef VOID* EDKII_JSON_ARRAY;\r
-typedef VOID* EDKII_JSON_OBJECT;\r
+typedef VOID *EDKII_JSON_VALUE;\r
+typedef VOID *EDKII_JSON_ARRAY;\r
+typedef VOID *EDKII_JSON_OBJECT;\r
\r
///\r
/// Map to json_int_t in jansson.h\r
///\r
-typedef INT64 EDKII_JSON_INT_T; // #JSON_INTEGER_IS_LONG_LONG is set to 1\r
+typedef INT64 EDKII_JSON_INT_T; // #JSON_INTEGER_IS_LONG_LONG is set to 1\r
// in jansson_Config.h\r
\r
///\r
/// See below URI for the JSON encoding flags reference.\r
/// https://jansson.readthedocs.io/en/2.13/apiref.html#encoding\r
///\r
-#define EDKII_JSON_MAX_INDENT 0x1F\r
-#define EDKII_JSON_INDENT(n) ((n) & EDKII_JSON_MAX_INDENT)\r
-\r
-#define EDKII_JSON_COMPACT 0x20\r
-#define EDKII_JSON_ENSURE_ASCII 0x40\r
-#define EDKII_JSON_SORT_KEYS 0x80\r
-#define EDKII_JSON_PRESERVE_ORDER 0x100\r
-#define EDKII_JSON_ENCODE_ANY 0x200\r
-#define EDKII_JSON_ESCAPE_SLASH 0x400\r
-#define EDKII_JSON_REAL_PRECISION(n) (((n) & 0x1F) << 11)\r
-#define EDKII_JSON_EMBED 0x10000\r
+#define EDKII_JSON_MAX_INDENT 0x1F\r
+#define EDKII_JSON_INDENT(n) ((n) & EDKII_JSON_MAX_INDENT)\r
+\r
+#define EDKII_JSON_COMPACT 0x20\r
+#define EDKII_JSON_ENSURE_ASCII 0x40\r
+#define EDKII_JSON_SORT_KEYS 0x80\r
+#define EDKII_JSON_PRESERVE_ORDER 0x100\r
+#define EDKII_JSON_ENCODE_ANY 0x200\r
+#define EDKII_JSON_ESCAPE_SLASH 0x400\r
+#define EDKII_JSON_REAL_PRECISION(n) (((n) & 0x1F) << 11)\r
+#define EDKII_JSON_EMBED 0x10000\r
\r
///\r
/// Map to the definitions in jansson.h\r
/// See below URI for the JSON decoding flags reference.\r
/// https://jansson.readthedocs.io/en/2.13/apiref.html?highlight=json_loadb#decoding\r
///\r
-#define EDKII_JSON_REJECT_DUPLICATES 0x1\r
-#define EDKII_JSON_DISABLE_EOF_CHECK 0x2\r
-#define EDKII_JSON_DECODE_ANY 0x4\r
-#define EDKII_JSON_DECODE_INT_AS_REAL 0x8\r
-#define EDKII_JSON_ALLOW_NUL 0x10\r
+#define EDKII_JSON_REJECT_DUPLICATES 0x1\r
+#define EDKII_JSON_DISABLE_EOF_CHECK 0x2\r
+#define EDKII_JSON_DECODE_ANY 0x4\r
+#define EDKII_JSON_DECODE_INT_AS_REAL 0x8\r
+#define EDKII_JSON_ALLOW_NUL 0x10\r
\r
#define EDKII_JSON_ARRAY_FOREACH(Array, Index, Value) \\r
for(Index = 0; \\r
///\r
/// Map to the json_error_t in jansson.h\r
///\r
-#define EDKII_JSON_ERROR_TEXT_LENGTH 160\r
-#define EDKII_JSON_ERROR_SOURCE_LENGTH 80\r
+#define EDKII_JSON_ERROR_TEXT_LENGTH 160\r
+#define EDKII_JSON_ERROR_SOURCE_LENGTH 80\r
typedef struct {\r
- INTN Line;\r
- INTN Column;\r
- INTN Position;\r
- CHAR8 Source [EDKII_JSON_ERROR_SOURCE_LENGTH];\r
- CHAR8 Text [EDKII_JSON_ERROR_TEXT_LENGTH];\r
+ INTN Line;\r
+ INTN Column;\r
+ INTN Position;\r
+ CHAR8 Source[EDKII_JSON_ERROR_SOURCE_LENGTH];\r
+ CHAR8 Text[EDKII_JSON_ERROR_TEXT_LENGTH];\r
} EDKII_JSON_ERROR;\r
\r
///\r
/// Map to the json_type in jansson.h\r
///\r
typedef enum {\r
- EdkiiJsonTypeObject,\r
- EdkiiJsonTypeArray,\r
- EdkiiJsonTypeString,\r
- EdkiiJsonTypeInteger,\r
- EdkiiJsonTypeReal,\r
- EdkiiJsonTypeTrue,\r
- EdkiiJsonTypeFalse,\r
- EdkiiJsonTypeNull\r
+ EdkiiJsonTypeObject,\r
+ EdkiiJsonTypeArray,\r
+ EdkiiJsonTypeString,\r
+ EdkiiJsonTypeInteger,\r
+ EdkiiJsonTypeReal,\r
+ EdkiiJsonTypeTrue,\r
+ EdkiiJsonTypeFalse,\r
+ EdkiiJsonTypeNull\r
} EDKII_JSON_TYPE;\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonValueInitAsciiString (\r
- IN CONST CHAR8 *String\r
+ IN CONST CHAR8 *String\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonValueInitUnicodeString (\r
- IN CHAR16 *String\r
+ IN CHAR16 *String\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonValueInitInteger (\r
- IN INT64 Value\r
+ IN INT64 Value\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonValueInitBoolean (\r
- IN BOOLEAN Value\r
+ IN BOOLEAN Value\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
JsonValueFree (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonValueClone (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsArray (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsObject (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsString (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsInteger (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsNumber (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsBoolean (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsTrue (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsFalse (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueIsNull (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
EDKII_JSON_ARRAY\r
EFIAPI\r
JsonValueGetArray (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
EDKII_JSON_OBJECT\r
EFIAPI\r
JsonValueGetObject (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
CONST CHAR8 *\r
EFIAPI\r
JsonValueGetAsciiString (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
@retval Return the associated Unicode string in JSON value or NULL.\r
\r
**/\r
-CHAR16*\r
+CHAR16 *\r
EFIAPI\r
JsonValueGetUnicodeString (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
INT64\r
EFIAPI\r
JsonValueGetInteger (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
JsonValueGetBoolean (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
@retval Return the associated Ascii string in JSON value or NULL on errors.\r
\r
**/\r
-CONST CHAR8*\r
+CONST CHAR8 *\r
EFIAPI\r
JsonValueGetString (\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
UINTN\r
EFIAPI\r
JsonObjectSize (\r
- IN EDKII_JSON_OBJECT JsonObject\r
+ IN EDKII_JSON_OBJECT JsonObject\r
);\r
\r
/**\r
JsonObj is not an JSON object, key count is zero or on other errors.\r
\r
**/\r
-CHAR8**\r
+CHAR8 **\r
JsonObjectGetKeys (\r
- IN EDKII_JSON_OBJECT JsonObj,\r
- OUT UINTN *KeyCount\r
+ IN EDKII_JSON_OBJECT JsonObj,\r
+ OUT UINTN *KeyCount\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonObjectGetValue (\r
- IN CONST EDKII_JSON_OBJECT JsonObj,\r
- IN CONST CHAR8 *Key\r
+ IN CONST EDKII_JSON_OBJECT JsonObj,\r
+ IN CONST CHAR8 *Key\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
JsonObjectSetValue (\r
- IN EDKII_JSON_OBJECT JsonObj,\r
- IN CONST CHAR8 *Key,\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_OBJECT JsonObj,\r
+ IN CONST CHAR8 *Key,\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
UINTN\r
EFIAPI\r
JsonArrayCount (\r
- IN EDKII_JSON_ARRAY JsonArray\r
+ IN EDKII_JSON_ARRAY JsonArray\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonArrayGetValue (\r
- IN EDKII_JSON_ARRAY JsonArray,\r
- IN UINTN Index\r
+ IN EDKII_JSON_ARRAY JsonArray,\r
+ IN UINTN Index\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
JsonArrayAppendValue (\r
- IN EDKII_JSON_ARRAY JsonArray,\r
- IN EDKII_JSON_VALUE Json\r
+ IN EDKII_JSON_ARRAY JsonArray,\r
+ IN EDKII_JSON_VALUE Json\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
JsonArrayRemoveValue (\r
- IN EDKII_JSON_ARRAY JsonArray,\r
- IN UINTN Index\r
+ IN EDKII_JSON_ARRAY JsonArray,\r
+ IN UINTN Index\r
);\r
\r
/**\r
CHAR8 *\r
EFIAPI\r
JsonDumpString (\r
- IN EDKII_JSON_VALUE JsonValue,\r
- IN UINTN Flags\r
+ IN EDKII_JSON_VALUE JsonValue,\r
+ IN UINTN Flags\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonLoadString (\r
- IN CONST CHAR8* String,\r
- IN UINT64 Flags,\r
- IN EDKII_JSON_ERROR *Error\r
+ IN CONST CHAR8 *String,\r
+ IN UINT64 Flags,\r
+ IN EDKII_JSON_ERROR *Error\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonLoadBuffer (\r
- IN CONST CHAR8 *Buffer,\r
+ IN CONST CHAR8 *Buffer,\r
IN UINTN BufferLen,\r
IN UINTN Flags,\r
IN OUT EDKII_JSON_ERROR *Error\r
VOID\r
EFIAPI\r
JsonDecreaseReference (\r
- IN EDKII_JSON_VALUE JsonValue\r
+ IN EDKII_JSON_VALUE JsonValue\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonIncreaseReference (\r
- IN EDKII_JSON_VALUE JsonValue\r
+ IN EDKII_JSON_VALUE JsonValue\r
);\r
+\r
/**\r
Returns an opaque iterator which can be used to iterate over all key-value pairs\r
in object, or NULL if object is empty\r
VOID *\r
EFIAPI\r
JsonObjectIterator (\r
- IN EDKII_JSON_VALUE JsonValue\r
+ IN EDKII_JSON_VALUE JsonValue\r
);\r
\r
/**\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonObjectIteratorValue (\r
- IN VOID *Iterator\r
+ IN VOID *Iterator\r
);\r
\r
/**\r
VOID *\r
EFIAPI\r
JsonObjectIteratorNext (\r
- IN EDKII_JSON_VALUE JsonValue,\r
- IN VOID *Iterator\r
+ IN EDKII_JSON_VALUE JsonValue,\r
+ IN VOID *Iterator\r
);\r
\r
/**\r
CHAR8 *\r
EFIAPI\r
JsonObjectIteratorKey (\r
- IN VOID *Iterator\r
-);\r
+ IN VOID *Iterator\r
+ );\r
\r
/**\r
Returns the pointer of iterator by key.\r
VOID *\r
EFIAPI\r
JsonObjectKeyToIterator (\r
- IN CHAR8 *Key\r
-);\r
+ IN CHAR8 *Key\r
+ );\r
\r
/**\r
Returns the json type of this json value\r
**/\r
EDKII_JSON_TYPE\r
EFIAPI\r
-JsonGetType(\r
- IN EDKII_JSON_VALUE JsonValue\r
+JsonGetType (\r
+ IN EDKII_JSON_VALUE JsonValue\r
);\r
+\r
#endif\r