pc64: fix up pointer calculations and enable sdvirtio disk driver
This commit is contained in:
parent
34f7e4ef9a
commit
1eef373152
2 changed files with 11 additions and 6 deletions
|
@ -42,6 +42,11 @@ enum {
|
||||||
Next = 1,
|
Next = 1,
|
||||||
Write = 2,
|
Write = 2,
|
||||||
Indirect = 4,
|
Indirect = 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* struct sizes */
|
||||||
|
enum {
|
||||||
|
VringSize = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Vring
|
struct Vring
|
||||||
|
@ -111,10 +116,10 @@ mkvqueue(int size)
|
||||||
q = malloc(sizeof(*q) + sizeof(void*)*size);
|
q = malloc(sizeof(*q) + sizeof(void*)*size);
|
||||||
p = mallocalign(
|
p = mallocalign(
|
||||||
PGROUND(sizeof(Vdesc)*size +
|
PGROUND(sizeof(Vdesc)*size +
|
||||||
sizeof(Vring) +
|
VringSize +
|
||||||
sizeof(u16int)*size +
|
sizeof(u16int)*size +
|
||||||
sizeof(u16int)) +
|
sizeof(u16int)) +
|
||||||
PGROUND(sizeof(Vring) +
|
PGROUND(VringSize +
|
||||||
sizeof(Vused)*size +
|
sizeof(Vused)*size +
|
||||||
sizeof(u16int)),
|
sizeof(u16int)),
|
||||||
BY2PG, 0, 0);
|
BY2PG, 0, 0);
|
||||||
|
@ -128,15 +133,15 @@ mkvqueue(int size)
|
||||||
q->desc = (void*)p;
|
q->desc = (void*)p;
|
||||||
p += sizeof(Vdesc)*size;
|
p += sizeof(Vdesc)*size;
|
||||||
q->avail = (void*)p;
|
q->avail = (void*)p;
|
||||||
p += sizeof(Vring);
|
p += VringSize;
|
||||||
q->availent = (void*)p;
|
q->availent = (void*)p;
|
||||||
p += sizeof(u16int)*size;
|
p += sizeof(u16int)*size;
|
||||||
q->availevent = (void*)p;
|
q->availevent = (void*)p;
|
||||||
p += sizeof(u16int);
|
p += sizeof(u16int);
|
||||||
|
|
||||||
p = (uchar*)PGROUND((ulong)p);
|
p = (uchar*)PGROUND((uintptr)p);
|
||||||
q->used = (void*)p;
|
q->used = (void*)p;
|
||||||
p += sizeof(Vring);
|
p += VringSize;
|
||||||
q->usedent = (void*)p;
|
q->usedent = (void*)p;
|
||||||
p += sizeof(Vused)*size;
|
p += sizeof(Vused)*size;
|
||||||
q->usedevent = (void*)p;
|
q->usedevent = (void*)p;
|
||||||
|
|
|
@ -92,7 +92,7 @@ misc
|
||||||
# sdmylex pci sdscsi
|
# sdmylex pci sdscsi
|
||||||
sdiahci pci sdscsi led
|
sdiahci pci sdscsi led
|
||||||
# sdodin pci sdscsi led
|
# sdodin pci sdscsi led
|
||||||
# sdvirtio pci sdscsi
|
sdvirtio pci sdscsi
|
||||||
# sdmmc pci pmmc
|
# sdmmc pci pmmc
|
||||||
# sdloop
|
# sdloop
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue