Import proto file parser for dump9660.
diff --git a/include/disk.h b/include/disk.h
new file mode 100644
index 0000000..a887866
--- /dev/null
+++ b/include/disk.h
@@ -0,0 +1,65 @@
+#pragma src "/sys/src/libdisk"
+#pragma lib "libdisk.a"
+
+/* SCSI interface */
+typedef struct Scsi Scsi;
+struct Scsi {
+	QLock	lk;
+	char*	inquire;
+	int	rawfd;
+	int	nchange;
+	ulong	changetime;
+};
+
+enum {
+	Sread = 0,
+	Swrite,
+	Snone,
+};
+
+char*	scsierror(int, int);
+int		scsicmd(Scsi*, uchar*, int, void*, int, int);
+int		scsi(Scsi*, uchar*, int, void*, int, int);
+Scsi*		openscsi(char*);
+int		scsiready(Scsi*);
+
+extern int		scsiverbose;
+
+/* disk partition interface */
+typedef struct Disk Disk;
+struct Disk {
+	char *prefix;
+	char *part;
+	int fd;
+	int wfd;
+	int ctlfd;
+	int rdonly;
+	int type;
+
+	vlong secs;
+	vlong secsize;
+	vlong size;
+	vlong offset;	/* within larger disk, perhaps */
+	int width;	/* of disk size in bytes as decimal string */
+	int c;
+	int h;
+	int s;
+	int chssrc;
+};
+
+Disk*	opendisk(char*, int, int);
+
+enum {
+	Tfile = 0,
+	Tsd,
+	Tfloppy,
+
+	Gpart = 0,	/* partition info source */
+	Gdisk,
+	Gguess,
+};
+
+/* proto file parsing */
+typedef void Protoenum(char *new, char *old, Dir *d, void *a);
+typedef void Protowarn(char *msg, void *a);
+int rdproto(char*, char*, Protoenum*, Protowarn*, void*);