OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcSerializeLib.h File Reference

Go to the source code of this file.

Data Structures

struct  OC_SCHEMA_DICT
 
struct  OC_SCHEMA_VALUE
 
struct  OC_SCHEMA_BLOB
 
struct  OC_SCHEMA_LIST
 
union  OC_SCHEMA_INFO_
 
struct  OC_SCHEMA_
 

Macros

#define OC_SCHEMA_FIELD(Base, Type, Offset)
 
#define OC_SCHEMA_VALUE(Name, Offset, Type, SourceType)
 
#define OC_SCHEMA_BLOB(Name, Offset, SourceType)
 
#define OC_SCHEMA_DICT(Name, Schema)
 
#define OC_SCHEMA_DICT_OPT(Name, Schema)
 
#define OC_SCHEMA_BOOLEAN(Name)
 
#define OC_SCHEMA_INTEGER(Name, Type)
 
#define OC_SCHEMA_STRING(Name)
 
#define OC_SCHEMA_STRINGF(Name, Type)
 
#define OC_SCHEMA_DATA(Name)
 
#define OC_SCHEMA_DATAF(Name, Type)
 
#define OC_SCHEMA_MDATA(Name)
 
#define OC_SCHEMA_MDATAF(Name, Type)
 
#define OC_SCHEMA_ARRAY(Name, ChildSchema)
 
#define OC_SCHEMA_MAP(Name, ChildSchema)
 
#define OC_SCHEMA_BOOLEAN_IN(Name, Type, Field)
 
#define OC_SCHEMA_INTEGER_IN(Name, Type, Field)
 
#define OC_SCHEMA_STRING_IN(Name, Type, Field)
 
#define OC_SCHEMA_STRINGF_IN(Name, Type, Field)
 
#define OC_SCHEMA_DATA_IN(Name, Type, Field)
 
#define OC_SCHEMA_DATAF_IN(Name, Type, Field)
 
#define OC_SCHEMA_MDATA_IN(Name, Type, Field)
 
#define OC_SCHEMA_MDATAF_IN(Name, Type, Field)
 
#define OC_SCHEMA_ARRAY_IN(Name, Type, Field, ChildSchema)
 
#define OC_SCHEMA_MAP_IN(Name, Type, Field, ChildSchema)
 

Typedefs

typedef struct OC_SCHEMA_ OC_SCHEMA
 
typedef union OC_SCHEMA_INFO_ OC_SCHEMA_INFO
 
typedef VOID(* OC_APPLY) (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
 
typedef enum OC_SCHEMA_VALUE_TYPE_ OC_SCHEMA_VALUE_TYPE
 
typedef enum OC_SCHEMA_BLOB_TYPE_ OC_SCHEMA_BLOB_TYPE
 

Enumerations

enum  OC_SCHEMA_VALUE_TYPE_ {
  OC_SCHEMA_VALUE_BOOLEAN , OC_SCHEMA_VALUE_INTEGER , OC_SCHEMA_VALUE_DATA , OC_SCHEMA_VALUE_STRING ,
  OC_SCHEMA_VALUE_MDATA
}
 
enum  OC_SCHEMA_BLOB_TYPE_ { OC_SCHEMA_BLOB_DATA , OC_SCHEMA_BLOB_STRING , OC_SCHEMA_BLOB_MDATA }
 

Functions

OC_SCHEMALookupConfigSchema (IN OC_SCHEMA *SortedList, IN UINT32 Size, IN CONST CHAR8 *Name)
 
VOID ParseSerializedDict (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
 
VOID ParseSerializedValue (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
 
VOID ParseSerializedBlob (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
 
VOID ParseSerializedMap (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
 
VOID ParseSerializedArray (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
 
BOOLEAN ParseSerialized (OUT VOID *Serialized, IN OC_SCHEMA_INFO *RootSchema, IN VOID *PlistBuffer, IN UINT32 PlistSize, IN OUT UINT32 *ErrorCount OPTIONAL)
 

Detailed Description

OcSerializeLib

Copyright (c) 2018, vit9696

All rights reserved.

This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Definition in file OcSerializeLib.h.

Macro Definition Documentation

◆ OC_SCHEMA_ARRAY

#define OC_SCHEMA_ARRAY ( Name,
ChildSchema )
Value:
{.List = {0, ChildSchema}}}
VOID ParseSerializedArray(OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
@ PLIST_NODE_TYPE_ARRAY
Definition OcXmlLib.h:90

Definition at line 298 of file OcSerializeLib.h.

◆ OC_SCHEMA_ARRAY_IN

#define OC_SCHEMA_ARRAY_IN ( Name,
Type,
Field,
ChildSchema )
Value:
{.List = {OFFSET_OF (Type, Field), ChildSchema}}}

Definition at line 344 of file OcSerializeLib.h.

◆ OC_SCHEMA_BLOB

#define OC_SCHEMA_BLOB ( Name,
Offset,
SourceType )
Value:
{.Blob = {Offset, SourceType}}}
VOID ParseSerializedBlob(OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
@ PLIST_NODE_TYPE_ANY
Definition OcXmlLib.h:89

Definition at line 251 of file OcSerializeLib.h.

◆ OC_SCHEMA_BOOLEAN

#define OC_SCHEMA_BOOLEAN ( Name)
Value:
#define OC_SCHEMA_VALUE(Name, Offset, Type, SourceType)
@ OC_SCHEMA_VALUE_BOOLEAN

Definition at line 274 of file OcSerializeLib.h.

◆ OC_SCHEMA_BOOLEAN_IN

#define OC_SCHEMA_BOOLEAN_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_VALUE (Name, OFFSET_OF (Type, Field), (((Type *)0)->Field), \

Definition at line 315 of file OcSerializeLib.h.

◆ OC_SCHEMA_DATA

#define OC_SCHEMA_DATA ( Name)
Value:
#define OC_SCHEMA_BLOB(Name, Offset, SourceType)
@ OC_SCHEMA_BLOB_DATA

Definition at line 286 of file OcSerializeLib.h.

◆ OC_SCHEMA_DATA_IN

#define OC_SCHEMA_DATA_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_BLOB (Name, OFFSET_OF (Type, Field), OC_SCHEMA_BLOB_DATA)

Definition at line 330 of file OcSerializeLib.h.

◆ OC_SCHEMA_DATAF

#define OC_SCHEMA_DATAF ( Name,
Type )
Value:
@ OC_SCHEMA_VALUE_DATA

Definition at line 289 of file OcSerializeLib.h.

◆ OC_SCHEMA_DATAF_IN

#define OC_SCHEMA_DATAF_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_VALUE (Name, OFFSET_OF (Type, Field), (((Type *)0)->Field), \

Definition at line 333 of file OcSerializeLib.h.

◆ OC_SCHEMA_DICT

#define OC_SCHEMA_DICT ( Name,
Schema )
Value:
{.Dict = {(Schema), ARRAY_SIZE (Schema)}}}
#define ARRAY_SIZE(Array)
Definition AppleMacEfi.h:34
VOID ParseSerializedDict(OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)
@ PLIST_NODE_TYPE_DICT
Definition OcXmlLib.h:91

Definition at line 266 of file OcSerializeLib.h.

◆ OC_SCHEMA_DICT_OPT

#define OC_SCHEMA_DICT_OPT ( Name,
Schema )
Value:
{.Dict = {(Schema), ARRAY_SIZE (Schema)}}}

Definition at line 270 of file OcSerializeLib.h.

◆ OC_SCHEMA_FIELD

#define OC_SCHEMA_FIELD ( Base,
Type,
Offset )
Value:
((Type *)(((UINT8 *) (Base)) + (Offset)))

Definition at line 241 of file OcSerializeLib.h.

◆ OC_SCHEMA_INTEGER

#define OC_SCHEMA_INTEGER ( Name,
Type )
Value:
@ OC_SCHEMA_VALUE_INTEGER

Definition at line 277 of file OcSerializeLib.h.

◆ OC_SCHEMA_INTEGER_IN

#define OC_SCHEMA_INTEGER_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_VALUE (Name, OFFSET_OF (Type, Field), (((Type *)0)->Field), \

Definition at line 319 of file OcSerializeLib.h.

◆ OC_SCHEMA_MAP

#define OC_SCHEMA_MAP ( Name,
ChildSchema )
Value:
{.List = {0, ChildSchema}}}
VOID ParseSerializedMap(OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)

Definition at line 302 of file OcSerializeLib.h.

◆ OC_SCHEMA_MAP_IN

#define OC_SCHEMA_MAP_IN ( Name,
Type,
Field,
ChildSchema )
Value:
{.List = {OFFSET_OF (Type, Field), ChildSchema}}}

Definition at line 348 of file OcSerializeLib.h.

◆ OC_SCHEMA_MDATA

#define OC_SCHEMA_MDATA ( Name)
Value:

Definition at line 292 of file OcSerializeLib.h.

◆ OC_SCHEMA_MDATA_IN

#define OC_SCHEMA_MDATA_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_BLOB (Name, OFFSET_OF (Type, Field), OC_SCHEMA_BLOB_MDATA)

Definition at line 337 of file OcSerializeLib.h.

◆ OC_SCHEMA_MDATAF

#define OC_SCHEMA_MDATAF ( Name,
Type )
Value:
@ OC_SCHEMA_VALUE_MDATA

Definition at line 295 of file OcSerializeLib.h.

◆ OC_SCHEMA_MDATAF_IN

#define OC_SCHEMA_MDATAF_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_VALUE (Name, OFFSET_OF (Type, Field), (((Type *)0)->Field), \

Definition at line 340 of file OcSerializeLib.h.

◆ OC_SCHEMA_STRING

#define OC_SCHEMA_STRING ( Name)
Value:

Definition at line 280 of file OcSerializeLib.h.

◆ OC_SCHEMA_STRING_IN

#define OC_SCHEMA_STRING_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_BLOB (Name, OFFSET_OF (Type, Field), OC_SCHEMA_BLOB_STRING)

Definition at line 323 of file OcSerializeLib.h.

◆ OC_SCHEMA_STRINGF

#define OC_SCHEMA_STRINGF ( Name,
Type )
Value:
@ OC_SCHEMA_VALUE_STRING

Definition at line 283 of file OcSerializeLib.h.

◆ OC_SCHEMA_STRINGF_IN

#define OC_SCHEMA_STRINGF_IN ( Name,
Type,
Field )
Value:
OC_SCHEMA_VALUE (Name, OFFSET_OF (Type, Field), (((Type *)0)->Field), \

Definition at line 326 of file OcSerializeLib.h.

◆ OC_SCHEMA_VALUE

#define OC_SCHEMA_VALUE ( Name,
Offset,
Type,
SourceType )
Value:
{.Value = {Offset, sizeof (Type), SourceType}}}
VOID ParseSerializedValue(OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)

Definition at line 247 of file OcSerializeLib.h.

Typedef Documentation

◆ OC_APPLY

typedef VOID(* OC_APPLY) (OUT VOID *Serialized, IN XML_NODE *Node, IN OC_SCHEMA_INFO *Info, IN CONST CHAR8 *Context OPTIONAL, IN OUT UINT32 *ErrorCount OPTIONAL)

Definition at line 32 of file OcSerializeLib.h.

◆ OC_SCHEMA

typedef struct OC_SCHEMA_ OC_SCHEMA

Definition at line 25 of file OcSerializeLib.h.

◆ OC_SCHEMA_BLOB_TYPE

◆ OC_SCHEMA_INFO

Definition at line 26 of file OcSerializeLib.h.

◆ OC_SCHEMA_VALUE_TYPE

Enumeration Type Documentation

◆ OC_SCHEMA_BLOB_TYPE_

Enumerator
OC_SCHEMA_BLOB_DATA 
OC_SCHEMA_BLOB_STRING 
OC_SCHEMA_BLOB_MDATA 

Definition at line 86 of file OcSerializeLib.h.

◆ OC_SCHEMA_VALUE_TYPE_

Enumerator
OC_SCHEMA_VALUE_BOOLEAN 
OC_SCHEMA_VALUE_INTEGER 
OC_SCHEMA_VALUE_DATA 
OC_SCHEMA_VALUE_STRING 
OC_SCHEMA_VALUE_MDATA 

Definition at line 59 of file OcSerializeLib.h.

Function Documentation

◆ LookupConfigSchema()

OC_SCHEMA * LookupConfigSchema ( IN OC_SCHEMA * SortedList,
IN UINT32 Size,
IN CONST CHAR8 * Name )

Definition at line 47 of file OcSerializeLib.c.

◆ ParseSerialized()

BOOLEAN ParseSerialized ( OUT VOID * Serialized,
IN OC_SCHEMA_INFO * RootSchema,
IN VOID * PlistBuffer,
IN UINT32 PlistSize,
IN OUT UINT32 *ErrorCount OPTIONAL )

Definition at line 471 of file OcSerializeLib.c.

◆ ParseSerializedArray()

VOID ParseSerializedArray ( OUT VOID * Serialized,
IN XML_NODE * Node,
IN OC_SCHEMA_INFO * Info,
IN CONST CHAR8 *Context OPTIONAL,
IN OUT UINT32 *ErrorCount OPTIONAL )

Definition at line 422 of file OcSerializeLib.c.

◆ ParseSerializedBlob()

VOID ParseSerializedBlob ( OUT VOID * Serialized,
IN XML_NODE * Node,
IN OC_SCHEMA_INFO * Info,
IN CONST CHAR8 *Context OPTIONAL,
IN OUT UINT32 *ErrorCount OPTIONAL )

Definition at line 251 of file OcSerializeLib.c.

◆ ParseSerializedDict()

VOID ParseSerializedDict ( OUT VOID * Serialized,
IN XML_NODE * Node,
IN OC_SCHEMA_INFO * Info,
IN CONST CHAR8 *Context OPTIONAL,
IN OUT UINT32 *ErrorCount OPTIONAL )

Definition at line 90 of file OcSerializeLib.c.

◆ ParseSerializedMap()

VOID ParseSerializedMap ( OUT VOID * Serialized,
IN XML_NODE * Node,
IN OC_SCHEMA_INFO * Info,
IN CONST CHAR8 *Context OPTIONAL,
IN OUT UINT32 *ErrorCount OPTIONAL )

Definition at line 344 of file OcSerializeLib.c.

◆ ParseSerializedValue()

VOID ParseSerializedValue ( OUT VOID * Serialized,
IN XML_NODE * Node,
IN OC_SCHEMA_INFO * Info,
IN CONST CHAR8 *Context OPTIONAL,
IN OUT UINT32 *ErrorCount OPTIONAL )

Definition at line 201 of file OcSerializeLib.c.