Until now, block drivers had to deal with a pointer to the client session component, e.g.: to acknowledge block packets already processed. When a session was closed, the driver object wasn't informed explicitly, which leads to defensive programming, or lastly to a race-condition in test-blk-srv. To prevent from this class of errors, the pointer is now private to the generic block driver base class, and not accessible to the concrete driver implementation. Moreover, the driver gets explicitly informed when a session got invalidated. Ref #113 |
||
---|---|---|
.. | ||
contrib | ||
ata_bus_master.cc | ||
ata_bus_master.h | ||
ata_device.cc | ||
ata_device.h | ||
atapi_device.cc | ||
endian.h | ||
io.cc | ||
io.h | ||
main.cc | ||
pio.h | ||
README | ||
target.mk |
This directory contains a port of the MINDRVR PATA/SATA driver (See: [http://ata-atapi.com]. The driver will probe the system's IDE bus and will use the first ATAPI device present. Usage ----- Simply start the 'atapi_drv' in your Genode environment. The front-end implemented by the driver is Genode's block interface (see: 'os/include/block_session'). Configuration example: ! <start name="atapi_drv"> ! <resource name="RAM" quantum="1M" /> ! <provides><service name="Block" /></provides> ! </start> To use the driver as IDE block driver supporting both read and write transactions, supply the XML attribute 'ata="yes"' to the config node of 'atapi_drv'.