summaryrefslogtreecommitdiffstats
path: root/src/drivers/block
Commit message (Collapse)AuthorAgeFilesLines
* Split bootsector execution code out into bootsector.c.Michael Brown2007-01-291-0/+91
| | | | Added basic El Torito ISO image boot capability
* Automatically select between the "10" and "16" variants of command set,Michael Brown2006-12-121-31/+72
| | | | based on the device size.
* Catch SCSI errors, and work around the start-of-day CHECK CONDITIONMichael Brown2006-12-121-1/+32
| | | | that some targets send.
* We don't actually have a stdio.h header file. Our printf() functions areMichael Brown2006-09-271-1/+0Star
| | | | | | | | defined in vsprintf.h. (This may change, since vsprintf.h is a non-standard name, but for now it's the one to use.) There should be no need to include vsprintf.h just for DBG() statements, since include/compiler.h forces it in for a debug build anyway.
* added stdio.h to includes for DBG compilationMarty Connor2006-09-271-0/+1
|
* Updated debug message to reflect change in data structure.Michael Brown2006-06-121-2/+3
|
* Backing out last change; no immediate plans to make the whole block-deviceMichael Brown2006-06-011-2/+1Star
| | | | | layer asynchronous, so keeping the sync/async boundary within aoedev.c seems cleanest for now.
* ATA devices are now asynchronous. The ATA layer itself now performs theMichael Brown2006-05-311-1/+2
| | | | | | | | async_wait(), though we may wish to move this higher up the stack, and consider making the block device model asynchronous. (There is only a marginal cost for synchronous devices, since they can simply call async_done() before returning; async_wait() will work seamlessly in this situation).
* Added generic asynchronous operations code.Michael Brown2006-05-311-5/+4Star
| | | | | | | | | Removed data_in_len and data_out_len from ata_command structure; the lengths are implied by the sector count and the presence of the data_in or data_out pointers. Changed AoE code to use subcommands by default, and made aoe_issue() nonblocking (with completion via async_wait()).
* Use separate data-in and data-out buffers.Michael Brown2006-05-291-40/+30Star
| | | | Increase code simplicity at the expense of around 64 bytes.
* Fixed debug codeMichael Brown2006-05-211-3/+3
|
* Added (untested) support for ATA devices. This code should be genericMichael Brown2006-05-211-0/+169
| | | | enough to support both real IDE chipsets and AoE.
* READ CAPACITY (16) turns out to be an optional command (even thoughMichael Brown2006-05-191-2/+57
| | | | | READ(16) is mandatory); we must use READ CAPACITY (10) first and then use READ CAPACITY (16) if the READ CAPACITY (10) returns "out of range".
* Add the concept of a "user pointer" (similar to the void __user * inMichael Brown2006-05-191-7/+9
| | | | | | | | | | | | | | | | | | | | 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).
* Defined SCSI device interface, and added SCSI block deviceMichael Brown2006-05-131-0/+142
implementation.