summaryrefslogtreecommitdiff
path: root/sys/include/disk.h
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 16:47:56 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 16:47:56 +0300
commitc558a99e0be506a9abdf677f0ca4490644e05fc1 (patch)
tree17aef678ad05a32ef96ce8385703cb3fe089a5c7 /sys/include/disk.h
parente5888a1ffdae813d7575f5fb02275c6bb07e5199 (diff)
Import sources from 2011-03-30 iso image - sys/include
Diffstat (limited to 'sys/include/disk.h')
-rwxr-xr-xsys/include/disk.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/sys/include/disk.h b/sys/include/disk.h
new file mode 100755
index 000000000..be0a4a0fe
--- /dev/null
+++ b/sys/include/disk.h
@@ -0,0 +1,66 @@
+#pragma src "/sys/src/libdisk"
+#pragma lib "libdisk.a"
+
+/* SCSI interface */
+typedef struct Scsi Scsi;
+struct Scsi {
+ QLock;
+ 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*);
+void closescsi(Scsi*);
+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*);