CloverBootloader/rEFIt_UEFI/Platform/plist.h
SergeySlice 01f33f7552 detect unknown linux versions,
stylish change: remove space between func and brace

Signed-off-by: SergeySlice <sergey.slice@gmail.com>
2020-04-23 12:08:10 +03:00

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_ */