1 typedef struct ROM ROM; 2 typedef struct ROMconf ROMconf; 3 4 struct ROM 5 { 6 uint magic; 7 uint version; 8 uint plugversion; 9 uint monid; 10 uint pad1[3]; 11 ROMconf *conf; 12 uint pad2[17]; 13 void (*boot)(void*); 14 uint pad3[1]; 15 void (*enter)(void); 16 int *msec; 17 void (*exit)(void); 18 void (**callback)(void); 19 uint (*interpret)(void*); 20 uint pad4[2]; 21 char **bootpath; 22 char **bootargs; 23 uint *stdin; 24 uint *stdout; 25 uint (*phandle)(uint); 26 uint (*alloc)(void*, uint); 27 void (*free)(void*); 28 uint (*map)(void*, uint, uint, uint); 29 void (*unmap)(void*, uint); 30 uint (*open)(char*); 31 uint (*close)(uint); 32 uint (*read)(uint, void*, int); 33 uint (*write)(uint, void*, int); 34 uint (*seek)(uint, uint, uint); 35 void (*chain)(void*, uint, void*, void*, uint); 36 void (*release)(void*, uint); 37 uint pad4[15]; 38 void (*putcxsegm)(int, ulong, int); 39 int (*startcpu)(uint, uint, uint, uint); 40 int (*stopcpu)(uint); 41 int (*idlecpu)(uint); 42 int (*resumecpu)(uint); 43 }; 44 45 struct ROMconf 46 { 47 uint (*next)(uint); 48 uint (*child)(uint); 49 int (*getproplen)(uint, void*); 50 int (*getprop)(uint, void*, void*); 51 int (*setprop)(uint, void*, void*); 52 void* (*nextprop)(uint, void*); 53 }; 54 55 #define ROMMAGIC 0x10010407 56 57 extern ROM *rom; 58