genode/os/src/drivers/atapi
Stefan Kalkowski eeb2d95b1f block: prevent from dereferencing invalid pointers
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
2014-02-25 14:58:02 +01:00
..
contrib Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
ata_bus_master.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
ata_bus_master.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
ata_device.cc block: support for block number >32 bit (Fix #968) 2013-12-19 11:34:04 +01:00
ata_device.h block: prevent from dereferencing invalid pointers 2014-02-25 14:58:02 +01:00
atapi_device.cc block: support for block number >32 bit (Fix #968) 2013-12-19 11:34:04 +01:00
endian.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
io.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
io.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
main.cc block: use new server framework in block drivers 2014-01-27 18:53:52 +01:00
pio.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
target.mk block: use new server framework in block drivers 2014-01-27 18:53:52 +01:00

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'.