summaryrefslogtreecommitdiff
path: root/sys/arch/hppa64/stand/libsa/dev_hppa64.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/hppa64/stand/libsa/dev_hppa64.h')
-rw-r--r--sys/arch/hppa64/stand/libsa/dev_hppa64.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/sys/arch/hppa64/stand/libsa/dev_hppa64.h b/sys/arch/hppa64/stand/libsa/dev_hppa64.h
new file mode 100644
index 00000000000..a47daa2173a
--- /dev/null
+++ b/sys/arch/hppa64/stand/libsa/dev_hppa64.h
@@ -0,0 +1,43 @@
+/* $OpenBSD: dev_hppa64.h,v 1.1 2005/04/01 10:40:48 mickey Exp $ */
+
+
+#define IOPGSHIFT 11
+#define IONBPG (1 << IOPGSHIFT)
+#define IOPGOFSET (IONBPG - 1)
+
+struct disklabel;
+struct hppa_dev {
+ dev_t bootdev;
+ struct pz_device *pz_dev; /* device descriptor */
+ daddr_t fsoff; /* offset to the file system */
+ daddr_t last_blk; /* byte offset for last read blk */
+ size_t last_read; /* amount read last time */
+ struct disklabel *label;
+ /* buffer to cache data (aligned properly) */
+ char *buf;
+ char ua_buf[IODC_IOSIZ + IODC_MINIOSIZ];
+};
+
+#ifdef PDCDEBUG
+#define DEVPATH_PRINT(dp) \
+ printf("%x, %d.%d.%d.%d.%d.%d, 0x%x, %x.%x.%x.%x.%x.%x\n", \
+ (dp)->dp_flags, (dp)->dp_bc[0], (dp)->dp_bc[1], (dp)->dp_bc[2], \
+ (dp)->dp_bc[3], (dp)->dp_bc[4], (dp)->dp_bc[5], (dp)->dp_mod, \
+ (dp)->dp_layers[0], (dp)->dp_layers[1], (dp)->dp_layers[2], \
+ (dp)->dp_layers[3], (dp)->dp_layers[4], (dp)->dp_layers[5]);
+#define PZDEV_PRINT(dp) \
+ printf("devpath={%x, %d.%d.%d.%d.%d.%d, 0x%x, %x.%x.%x.%x.%x.%x}," \
+ "\n\thpa=%p, spa=%p, io=%p, class=%u\n", \
+ (dp)->pz_flags, (dp)->pz_bc[0], (dp)->pz_bc[1], (dp)->pz_bc[2], \
+ (dp)->pz_bc[3], (dp)->pz_bc[4], (dp)->pz_bc[5], (dp)->pz_mod, \
+ (dp)->pz_layers[0], (dp)->pz_layers[1], (dp)->pz_layers[2], \
+ (dp)->pz_layers[3], (dp)->pz_layers[4], (dp)->pz_layers[5], \
+ (dp)->pz_hpa, (dp)->pz_spa, (dp)->pz_iodc_io, (dp)->pz_class);
+#endif
+
+extern pdcio_t pdc;
+extern int pdcbuf[]; /* PDC returns, pdc.c */
+
+int iodc_rw(char *, u_int, u_int, int func, struct pz_device *);
+const char *dk_disklabel(struct hppa_dev *dp, struct disklabel *label);
+int pdc_call(void *, ...);