promvec (%i0) - arch/sparc/include/bsd_openprom.h 00 0x10010407 04 int pv_romvec_vers 08 int pv_plugin_vers 0c int pv_printrev struct v0mem pv_v0mem "V0: Memory description lists" struct v0mem: 10 struct v0mlist **v0_phystot 14 struct v0mlist **v0_vmprom 18 struct v0mlist *v0_physavail 1c struct nodeops *pv_nodeops struct nodeops: 00 int (*no_nextnode)(int); 04 int (*no_child)(int); 08 int (*no_proplen)(int, char *); 0c int (*no_getprop)(int, char *, void *); 10 int (*no_setprop)(int, chr *, void *, int); 14 char *(*no_nextprop)(int, char *); 20 char **pv_bootstr struct v0devops pv_v0devops; struct v0devops: 24 int (*v0_open)(char *); 28 int (*v0_close)(int); 2c int (*v0_rbdev)(int, int, int, void *); 30 int (*v0_wbdev)(int, int, int, void *); 34 int (*v0_wnet)(int, int, void *); 38 int (*v0_rnet)(int, int, void *); 3c int (*v0_rcdev)(int, int, int, void *); 40 int (*v0_wcdev)(int, int, int, void *); 44 int (*v0_seek)(int, long, int); 48 char *pv_stdin 4c char *pv_stdout above two: 0 for screen/kbd, 1 for ttya, 2 for ttyb 50 int (*pv_getchar)(void); // blocking 54 void (*pv_putchar)(int); // blocking 58 int (*pv_nbgetchar)(void); // nonblocking, -1 on error 5c int (*pv_nbputchar)(int); // nonblocking, -1 on error 60 void (*pv_putstr)(char *, int); // may be very slow 64 void (*pv_reboot)(char *); 68 void (*pv_printf)(const char *, ...); 6c void (*pv_abort)(void); 70 int *pv_ticks; 74 void (*pv_halt)(void); 78 void (**pv_synchook)(void); 7c function pointer to eval a FORTH string 80 struct v0bootargs **pv_v0bootargs; 84 function pointer to get Ethernet MAC struct v2bootargs pv_v2bootargs struct v2bootargs: 88 char **v2_bootpath; 8c char **v2_bootargs; 90 int *v2_fd0; // stdin 94 int *v2_fd1; // stdout strct v2devops pv_v2devops struct v2devops 98 int (*v2_fd_phandle)(int); // instance handle to package handle 9c void *(*v2_malloc)(caddr_t, u_int); a0 void (*v2_free)(caddr_t, u_int); a4 caddr_t (*v2_mmap)(caddr_t, int, u_int, u_int); a8 void (*v2_munmap)(caddr_t, u_int); ac int (*v2_open)(char *); b0 void (*v2_close)(int); b4 int (*v2_read)(int, void *, int); b8 int (*v2_write)(int, void *, int); <-- used for v2_putchar, pass *v2_fd1 as first arg bc int (*v2_seek)(int, int, int); c0 void (*v2_chain)(void); c4 void (*v2_release)(void); nodeops int (*no_nextnode)(int); int (*no_firstchild)(int); int (*no_proplen)(int, char *); int (*no_getprop)(int, char *, void *); int (*no_setprop)(int, char *, void *, int); char *(*no_nextprop)(int, char *);