diff options
author | mischief <mischief@offblast.org> | 2014-02-03 01:22:26 -0800 |
---|---|---|
committer | mischief <mischief@offblast.org> | 2014-02-03 01:22:26 -0800 |
commit | 1eef3731520109c4e17225a7c7de16e33c56e6c8 (patch) | |
tree | 0278025a3904baf531a0aced81dd6d988a6a910c | |
parent | 34f7e4ef9a9e9edafe94317f5e0ec05b6e6477bc (diff) | |
download | plan9front-1eef3731520109c4e17225a7c7de16e33c56e6c8.tar.xz |
pc64: fix up pointer calculations and enable sdvirtio disk driver
-rw-r--r-- | sys/src/9/pc/sdvirtio.c | 15 | ||||
-rw-r--r-- | sys/src/9/pc64/pc64 | 2 |
2 files changed, 11 insertions, 6 deletions
diff --git a/sys/src/9/pc/sdvirtio.c b/sys/src/9/pc/sdvirtio.c index 2ccc3dbce..1c26cea58 100644 --- a/sys/src/9/pc/sdvirtio.c +++ b/sys/src/9/pc/sdvirtio.c @@ -42,6 +42,11 @@ enum { Next = 1, Write = 2, Indirect = 4, +}; + +/* struct sizes */ +enum { + VringSize = 4, }; struct Vring @@ -111,10 +116,10 @@ mkvqueue(int size) q = malloc(sizeof(*q) + sizeof(void*)*size); p = mallocalign( PGROUND(sizeof(Vdesc)*size + - sizeof(Vring) + + VringSize + sizeof(u16int)*size + sizeof(u16int)) + - PGROUND(sizeof(Vring) + + PGROUND(VringSize + sizeof(Vused)*size + sizeof(u16int)), BY2PG, 0, 0); @@ -128,15 +133,15 @@ mkvqueue(int size) q->desc = (void*)p; p += sizeof(Vdesc)*size; q->avail = (void*)p; - p += sizeof(Vring); + p += VringSize; q->availent = (void*)p; p += sizeof(u16int)*size; q->availevent = (void*)p; p += sizeof(u16int); - p = (uchar*)PGROUND((ulong)p); + p = (uchar*)PGROUND((uintptr)p); q->used = (void*)p; - p += sizeof(Vring); + p += VringSize; q->usedent = (void*)p; p += sizeof(Vused)*size; q->usedevent = (void*)p; diff --git a/sys/src/9/pc64/pc64 b/sys/src/9/pc64/pc64 index 30c8d4b93..aebcb712a 100644 --- a/sys/src/9/pc64/pc64 +++ b/sys/src/9/pc64/pc64 @@ -92,7 +92,7 @@ misc # sdmylex pci sdscsi sdiahci pci sdscsi led # sdodin pci sdscsi led -# sdvirtio pci sdscsi + sdvirtio pci sdscsi # sdmmc pci pmmc # sdloop |