Add the concept of a "user pointer" (similar to the void __user * in
authorMichael Brown <mcb30@etherboot.org>
Fri, 19 May 2006 15:06:51 +0000 (15:06 +0000)
committerMichael Brown <mcb30@etherboot.org>
Fri, 19 May 2006 15:06:51 +0000 (15:06 +0000)
commitd48d0fb1bb53262bf44a03dbe8388529f1566a1c
tree31081f33dbeb48c42d2e4cf806570853162781d9
parent0ab92faedbe423fa9b93f01b6d1971f28b0b3139
Add the concept of a "user pointer" (similar to the void __user * in
the kernel), which encapsulates the information needed to refer to an
external buffer.  Under normal operation, this can just be a void *
equivalent, but under -DKEEP_IT_REAL it would be a segoff_t equivalent.

Use this concept to avoid the need for bounce buffers in int13.c,
which reduces memory usage and opens up the possibility of using
multi-sector reads.

Extend the block-device API and the SCSI block device implementation
to support multi-sector reads.

Update iscsi.c to use user buffers.

Move the obsolete portions of realmode.h to old_realmode.h.

MS-DOS now boots an order of magnitude faster over iSCSI (~10 seconds
from power-up to C:> prompt in bochs).
src/arch/i386/core/pic8259.c
src/arch/i386/include/bits/uaccess.h [new file with mode: 0644]
src/arch/i386/include/librm.h
src/arch/i386/include/old_realmode.h [new file with mode: 0644]
src/arch/i386/include/realmode.h
src/arch/i386/interface/pcbios/int13.c
src/drivers/block/scsi.c
src/include/gpxe/blockdev.h
src/include/gpxe/scsi.h
src/include/gpxe/uaccess.h [new file with mode: 0644]
src/net/tcp/iscsi.c