summaryrefslogtreecommitdiff
path: root/ide.c
diff options
context:
space:
mode:
authorrtm <rtm>2006-07-20 09:07:53 +0000
committerrtm <rtm>2006-07-20 09:07:53 +0000
commit29270816285978e44b317c6e5c7bfa7a89ec24dd (patch)
treefae6e6346ca73f7d2721c059a9f1fce166c045c7 /ide.c
parentbd228a81566befa6154807d327d8c873f6a76c79 (diff)
downloadxv6-labs-29270816285978e44b317c6e5c7bfa7a89ec24dd.tar.gz
xv6-labs-29270816285978e44b317c6e5c7bfa7a89ec24dd.tar.bz2
xv6-labs-29270816285978e44b317c6e5c7bfa7a89ec24dd.zip
uint32_t -> uint &c
Diffstat (limited to 'ide.c')
-rw-r--r--ide.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/ide.c b/ide.c
index 2ea2253..5b75053 100644
--- a/ide.c
+++ b/ide.c
@@ -18,7 +18,8 @@
#define IDE_ERR 0x01
struct ide_request {
- uint32_t secno;
+ int diskno;
+ uint secno;
void *dst;
uint nsecs;
};
@@ -26,7 +27,6 @@ struct ide_request request[NREQUEST];
int head, tail;
struct spinlock ide_lock;
-static int diskno = 0;
int disk_channel;
static int
@@ -80,14 +80,6 @@ ide_probe_disk1(void)
}
void
-ide_set_disk(int d)
-{
- if (d != 0 && d != 1)
- panic("bad disk number");
- diskno = d;
-}
-
-void
ide_start_request (void)
{
struct ide_request *r;
@@ -100,13 +92,13 @@ ide_start_request (void)
outb(0x1F3, r->secno & 0xFF);
outb(0x1F4, (r->secno >> 8) & 0xFF);
outb(0x1F5, (r->secno >> 16) & 0xFF);
- outb(0x1F6, 0xE0 | ((diskno&1)<<4) | ((r->secno>>24)&0x0F));
+ outb(0x1F6, 0xE0 | ((r->diskno&1)<<4) | ((r->secno>>24)&0x0F));
outb(0x1F7, 0x20); // CMD 0x20 means read sector
}
}
void *
-ide_start_read(uint32_t secno, void *dst, uint nsecs)
+ide_start_read(uint secno, void *dst, uint nsecs)
{
struct ide_request *r;
if(!holding(&ide_lock))
@@ -122,6 +114,7 @@ ide_start_read(uint32_t secno, void *dst, uint nsecs)
r->secno = secno;
r->dst = dst;
r->nsecs = nsecs;
+ r->diskno = 0;
ide_start_request();
@@ -155,9 +148,10 @@ ide_finish_read(void *c)
}
int
-ide_write(uint32_t secno, const void *src, uint nsecs)
+ide_write(uint secno, const void *src, uint nsecs)
{
int r;
+ int diskno = 0;
if(nsecs > 256)
panic("ide_write");