mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-30 12:43:41 +01:00
7af605b0b6
Signed-off-by: SergeySlice <sergey.slice@gmail.com>
131 lines
1.8 KiB
C
131 lines
1.8 KiB
C
/*
|
|
* plist.h
|
|
*
|
|
* Created on: 31 Mar 2020
|
|
* Author: jief
|
|
*/
|
|
|
|
#ifndef PLATFORM_PLIST_H_
|
|
#define PLATFORM_PLIST_H_
|
|
|
|
|
|
/* XML Tags */
|
|
#define kXMLTagPList "plist"
|
|
#define kXMLTagDict "dict"
|
|
#define kXMLTagKey "key"
|
|
#define kXMLTagString "string"
|
|
#define kXMLTagInteger "integer"
|
|
#define kXMLTagData "data"
|
|
#define kXMLTagDate "date"
|
|
#define kXMLTagFalse "false/"
|
|
#define kXMLTagTrue "true/"
|
|
#define kXMLTagArray "array"
|
|
#define kXMLTagReference "reference"
|
|
#define kXMLTagID "ID="
|
|
#define kXMLTagIDREF "IDREF="
|
|
#define kXMLTagFloat "real"
|
|
|
|
|
|
struct Symbol {
|
|
UINTN refCount;
|
|
struct Symbol *next;
|
|
CHAR8 string[1];
|
|
};
|
|
typedef struct Symbol Symbol, *SymbolPtr;
|
|
|
|
|
|
typedef struct TagStruct {
|
|
|
|
UINTN type;
|
|
CHAR8 *string;
|
|
UINT8 *data;
|
|
UINTN dataLen;
|
|
UINTN offset;
|
|
struct TagStruct *tag;
|
|
struct TagStruct *tagNext;
|
|
|
|
} TagStruct, *TagPtr;
|
|
|
|
typedef union {
|
|
struct {
|
|
float fNum; //4 bytes
|
|
UINT32 pad; // else 4
|
|
} B;
|
|
CHAR8 *string;
|
|
} FlMix;
|
|
|
|
|
|
CHAR8*
|
|
XMLDecode (
|
|
CHAR8 *src
|
|
);
|
|
|
|
EFI_STATUS
|
|
ParseXML(
|
|
CONST CHAR8 *buffer,
|
|
TagPtr *dict,
|
|
UINT32 bufSize
|
|
);
|
|
|
|
|
|
//VOID RenderSVGfont(NSVGfont *fontSVG);
|
|
|
|
TagPtr
|
|
GetProperty(
|
|
TagPtr dict,
|
|
CONST CHAR8* key
|
|
);
|
|
|
|
EFI_STATUS
|
|
XMLParseNextTag (
|
|
CHAR8 *buffer,
|
|
TagPtr *tag,
|
|
UINT32 *lenPtr
|
|
);
|
|
|
|
VOID
|
|
FreeTag (
|
|
TagPtr tag
|
|
);
|
|
|
|
EFI_STATUS
|
|
GetNextTag (
|
|
UINT8 *buffer,
|
|
CHAR8 **tag,
|
|
UINT32 *start,
|
|
UINT32 *length
|
|
);
|
|
|
|
INTN
|
|
GetTagCount (
|
|
TagPtr dict
|
|
);
|
|
|
|
EFI_STATUS
|
|
GetElement(
|
|
TagPtr dict,
|
|
INTN id,
|
|
TagPtr *dict1
|
|
);
|
|
|
|
BOOLEAN
|
|
IsPropertyTrue(
|
|
TagPtr Prop
|
|
);
|
|
|
|
BOOLEAN
|
|
IsPropertyFalse(
|
|
TagPtr Prop
|
|
);
|
|
|
|
INTN
|
|
GetPropertyInteger(
|
|
TagPtr Prop,
|
|
INTN Default
|
|
);
|
|
|
|
float GetPropertyFloat (TagPtr Prop, float Default);
|
|
|
|
|
|
#endif /* PLATFORM_PLIST_H_ */
|