#if !defined( __BOOTVARS ) #define __BOOTVARS #include #if defined __cplusplus extern "C" { #endif #define NVADRS ((volatile char *)0xF301D000) #define NVDATA ((volatile char *)0xF301F000) #define NVSTART 0x1800 #define NVSIZE 0x800 #define NVDATA_OHARE ((volatile unsigned char *)0xF3060000) struct nvram { unsigned short magic; /* 0x1275 */ unsigned char char2; unsigned char char3; unsigned short cksum; unsigned short end_vals; unsigned short start_strs; unsigned short word5; unsigned long bits; unsigned long vals[1]; }; typedef union { struct nvram nv; unsigned char c[NVSIZE]; unsigned short s[NVSIZE/2]; } buffer; extern short *item_vars; extern int nvitems; extern int file_io; extern int config_file; extern short fsRefNum; extern char reboot; extern buffer nvbuf; enum nvtype { boolean, word, string }; typedef struct nvvar { char *name; enum nvtype type; } nvvar; typedef struct nvval { unsigned int word_val; unsigned char *str_val; } nvval; extern nvvar nvvars[]; extern nvval nvvals[]; extern unsigned char nvstrbuf[NVSIZE]; extern int nvstr_used; asm void eieio(); int nvreadb(unsigned adr); void nvwriteb(unsigned adr, int v); void nvinit(void); int nvcsum(); int nvload(); void nvstore(); void nvunpack(); void nvpack(); size_t getNumNVVars(); void error_dial( int err, unsigned char *str ); #if defined __cplusplus } #endif #endif