1 /* $NetBSD: xxboot.h,v 1.1 1998/09/01 20:02:35 itohy Exp $ */ 2 3 /*************************************************************** 4 * 5 * file: boot.h 6 * 7 * author: chapuni(GBA02750@niftyserve.or.jp) 8 * 9 */ 10 11 /* xxboot.S */ 12 __dead void BOOT_ERROR __P((const char *msg)) __attribute__((noreturn)); 13 int badbaddr __P((volatile void *adr)); 14 int RAW_READ __P((void *buf, u_int32_t blkpos, size_t bytelen)); 15 #ifdef SCSI_ADHOC_BOOTPART 16 int RAW_READ0 __P((void *buf, u_int32_t blkpos, size_t bytelen)); 17 #endif 18 unsigned B_KEYINP __P((void)); 19 void B_CLR_ST __P((unsigned x)); 20 void B_PUTC __P((unsigned c)); 21 void B_PRINT __P((const unsigned char *p)); 22 unsigned B_COLOR __P((unsigned w)); 23 unsigned B_LOCATE __P((int x, int y)); 24 #if 0 25 unsigned JISSFT __P((unsigned c)); 26 #endif 27 unsigned short B_SFTSNS __P((void)); 28 void printtitle __P((void)); 29 #if 0 30 int SYS_STAT __P((int flags)); 31 int getcpu __P((void)); 32 #endif 33 34 extern unsigned ID; /* target SCSI ID */ 35 extern unsigned BOOT_INFO; /* result of IOCS(__BOOTINF) */ 36 37 /* check whether the bootinf is SCSI or floppy */ 38 #define BINF_ISFD(pbinf) (*((char *)(pbinf) + 1) == 0) 39 40 extern unsigned FDMODE; /* Floppy access mode: PDA x 256 + MODE */ 41 extern struct fdfmt{ 42 struct { 43 unsigned char N; /* sector length 0: 128, ..., 3: 1K */ 44 unsigned char C; /* cylinder # */ 45 unsigned char H; /* head # */ 46 unsigned char R; /* sector # */ 47 } minsec, maxsec; 48 } FDSECMINMAX; /* FD format type of the first track */ 49 #ifdef SCSI_ADHOC_BOOTPART 50 extern u_int32_t SCSI_PARTTOP; /* top position of boot partition in sector */ 51 extern u_int32_t SCSI_BLKLEN; /* sector len 0: 256, 1: 512, 2: 1024 */ 52 #endif 53 54 /* bootufs.c */ 55 int raw_read_queue __P((void *buf, u_int32_t blkpos, size_t len)); 56 void get_superblk __P((void)); 57 int get_inode __P((ino_t ino, struct dinode *pino)); 58 int read_indirect __P((ufs_daddr_t blkno, int level, void **buf, int count)); 59 void read_blocks __P((struct dinode *dp, void *buf, int count)); 60 ino_t search_file __P((ino_t dirino, const char *filename)); 61 unsigned load_ino __P((void *buf, ino_t ino, const char *filename)); 62 unsigned load_name __P((void *buf, ino_t dirino, const char *filename)); 63 void print_hex __P((unsigned x, int l)); 64 void pickup_list __P((ino_t dirino)); 65 void print_list __P((int n, int active, unsigned boothowto)); 66 volatile void bootufs __P((void)); 67 68 /* eof */ 69