X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..c0fea4742e91338fffdcf79f86a7c1d5e2b97eb1:/pexpert/i386/fakePPCStructs.h diff --git a/pexpert/i386/fakePPCStructs.h b/pexpert/i386/fakePPCStructs.h index 622b8441e..53447b30a 100644 --- a/pexpert/i386/fakePPCStructs.h +++ b/pexpert/i386/fakePPCStructs.h @@ -23,37 +23,64 @@ #include typedef struct { - char * name; - unsigned long length; - void * value; + const char * name; + unsigned long length; + void * value; } prop_init; typedef struct { - long zero; - long nProps; - long nChildren; + long zero; + long nProps; + long nChildren; } node_init; +typedef struct { + long one; + long * length; + long * address; +} data_init; + +typedef struct { + long two; + const char * name; + void * data; +} string_init; + typedef union { - prop_init propInit; - node_init nodeInit; + prop_init propInit; + node_init nodeInit; + data_init dataInit; + string_init stringInit; } dt_init; +typedef struct { + long length; + void * address; +} dt_data; + extern boot_args fakePPCBootArgs; extern unsigned char *nptr; -void printdt(void); -void * createdt(dt_init *template, long *retSize); +void printdt(void); +void * createdt(dt_init * template, long * retSize); + +#define NODE(props,children) \ + { .nodeInit = {0, props, children }} +#define INTPROP(name,value) \ + { .propInit = {name, 4, (void *)(uintptr_t)value }} -#define NODE(props,children) \ - {{(char *)0, props, (void *)children }} +#define PROP(name,value) \ + { .propInit = {name, sizeof( value), (void *)(uintptr_t)value }} -#define INTPROP(name,value) \ - {{name, 4, (void *)value }} +#define STRINGPROP(name,value) \ + { .stringInit = { 2, name, (void *)&(value) }} -#define PROP(name,value) \ - {{name, sizeof( value), value }} +#define NULLPROP(name) \ + { propInit = {name, 0, (void *)0 }} -#define NULLPROP(name) \ - {{name, 0, (void *)0 }} +#define DATAPROP(data) \ + { .dataInit = {1, &((data).length), (long *) &((data).address) }} + +#define DATANODE(data) \ + { .dataInit = {1, &((data).length), (long *)&((data).address) }}