1 /* $OpenBSD: dev_hppa.h,v 1.9 2011/03/13 00:13:52 deraadt Exp $ */ 2 3 4 #define IOPGSHIFT 11 5 #define IONBPG (1 << IOPGSHIFT) 6 #define IOPGOFSET (IONBPG - 1) 7 8 struct disklabel; 9 struct hppa_dev { 10 dev_t bootdev; 11 struct pz_device *pz_dev; /* device descriptor */ 12 daddr32_t fsoff; /* offset to the file system */ 13 daddr32_t last_blk; /* byte offset for last read blk */ 14 size_t last_read; /* amount read last time */ 15 struct disklabel *label; 16 /* buffer to cache data (aligned properly) */ 17 char *buf; 18 char ua_buf[IODC_IOSIZ + IODC_MINIOSIZ]; 19 }; 20 21 #ifdef PDCDEBUG 22 #define DEVPATH_PRINT(dp) \ 23 printf("%x, %d.%d.%d.%d.%d.%d, 0x%x, %x.%x.%x.%x.%x.%x\n", \ 24 (dp)->dp_flags, (dp)->dp_bc[0], (dp)->dp_bc[1], (dp)->dp_bc[2], \ 25 (dp)->dp_bc[3], (dp)->dp_bc[4], (dp)->dp_bc[5], (dp)->dp_mod, \ 26 (dp)->dp_layers[0], (dp)->dp_layers[1], (dp)->dp_layers[2], \ 27 (dp)->dp_layers[3], (dp)->dp_layers[4], (dp)->dp_layers[5]); 28 #define PZDEV_PRINT(dp) \ 29 printf("devpath={%x, %d.%d.%d.%d.%d.%d, 0x%x, %x.%x.%x.%x.%x.%x}," \ 30 "\n\thpa=%p, spa=%p, io=%p, class=%u\n", \ 31 (dp)->pz_flags, (dp)->pz_bc[0], (dp)->pz_bc[1], (dp)->pz_bc[2], \ 32 (dp)->pz_bc[3], (dp)->pz_bc[4], (dp)->pz_bc[5], (dp)->pz_mod, \ 33 (dp)->pz_layers[0], (dp)->pz_layers[1], (dp)->pz_layers[2], \ 34 (dp)->pz_layers[3], (dp)->pz_layers[4], (dp)->pz_layers[5], \ 35 (dp)->pz_hpa, (dp)->pz_spa, (dp)->pz_iodc_io, (dp)->pz_class); 36 #endif 37 38 extern pdcio_t pdc; 39 extern int pdcbuf[]; /* PDC returns, pdc.c */ 40 41 int iodc_rw(char *, u_int, u_int, int func, struct pz_device *); 42 const char *dk_disklabel(struct hppa_dev *dp, struct disklabel *label); 43 44