Update for block device API change

This commit is contained in:
Thomas Doerfler
2009-12-18 15:59:30 +00:00
parent 57674ef62e
commit 1e0a5512fc
10 changed files with 42 additions and 42 deletions

View File

@@ -1,3 +1,9 @@
2009-12-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1474
* libchip/i2c/spi-sd-card.c, libchip/ide/ata.c: Update for block
device API change.
2009-12-17 Joel Sherrill <joel.sherrill@oarcorp.com> 2009-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* libchip/network/greth.c: Eliminate unused type * libchip/network/greth.c: Eliminate unused type

View File

@@ -1122,7 +1122,7 @@ static int sd_card_disk_ioctl( rtems_disk_device *dd, uint32_t req, void *arg)
{ {
RTEMS_DEBUG_PRINT( "dev = %u, req = %u, arg = 0x08%x\n", dev, req, arg); RTEMS_DEBUG_PRINT( "dev = %u, req = %u, arg = 0x08%x\n", dev, req, arg);
if (req == RTEMS_BLKIO_REQUEST) { if (req == RTEMS_BLKIO_REQUEST) {
rtems_device_minor_number minor = rtems_disk_physical_minor_number( dd); rtems_device_minor_number minor = rtems_disk_get_minor_number( dd);
sd_card_driver_entry *e = &sd_card_driver_table [minor]; sd_card_driver_entry *e = &sd_card_driver_table [minor];
rtems_blkdev_request *r = (rtems_blkdev_request *) arg; rtems_blkdev_request *r = (rtems_blkdev_request *) arg;
switch (r->req) { switch (r->req) {

View File

@@ -1009,7 +1009,7 @@ ata_queue_task(rtems_task_argument arg)
static int static int
ata_ioctl(rtems_disk_device *dd, uint32_t cmd, void *argp) ata_ioctl(rtems_disk_device *dd, uint32_t cmd, void *argp)
{ {
dev_t device = rtems_disk_physical_device_number(dd); dev_t device = rtems_disk_get_device_identifier(dd);
rtems_status_code status; rtems_status_code status;
rtems_device_minor_number rel_minor; rtems_device_minor_number rel_minor;

View File

@@ -1,3 +1,13 @@
2009-12-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1474
* libblock/include/rtems/diskdevs.h, libblock/src/bdbuf.c,
libblock/src/blkdev.c: Pass only physical disc devices to the block
device driver. Reject direct usage of RTEMS_BLKIO_REQUEST though an
IO control. Renamed and removed disk device structure access methods.
* libblock/src/flashdisk.c, libblock/src/nvdisk.c,
libblock/src/ramdisk-driver.c: Update for block device API change.
2009-12-17 Joel Sherrill <joel.sherrill@oarcorp.com> 2009-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* rtems/include/rtems/rtems/clock.h: Eliminate unused type * rtems/include/rtems/rtems/clock.h: Eliminate unused type

View File

@@ -143,57 +143,37 @@ struct rtems_disk_device {
* @{ * @{
*/ */
static inline dev_t rtems_disk_physical_device_number( static inline dev_t rtems_disk_get_device_identifier(
const rtems_disk_device *dd const rtems_disk_device *dd
) )
{
return dd->phys_dev->dev;
}
static inline rtems_device_major_number rtems_disk_physical_major_number(
const rtems_disk_device *dd
)
{
return rtems_filesystem_dev_major_t(dd->phys_dev->dev);
}
static inline rtems_device_minor_number rtems_disk_physical_minor_number(
const rtems_disk_device *dd
)
{
return rtems_filesystem_dev_minor_t(dd->phys_dev->dev);
}
static inline dev_t rtems_disk_device_number(const rtems_disk_device *dd)
{ {
return dd->dev; return dd->dev;
} }
static inline rtems_device_major_number rtems_disk_major_number( static inline rtems_device_major_number rtems_disk_get_major_number(
const rtems_disk_device *dd const rtems_disk_device *dd
) )
{ {
return rtems_filesystem_dev_major_t(dd->dev); return rtems_filesystem_dev_major_t(dd->dev);
} }
static inline rtems_device_minor_number rtems_disk_minor_number( static inline rtems_device_minor_number rtems_disk_get_minor_number(
const rtems_disk_device *dd const rtems_disk_device *dd
) )
{ {
return rtems_filesystem_dev_minor_t(dd->dev); return rtems_filesystem_dev_minor_t(dd->dev);
} }
static inline void *rtems_disk_driver_data(const rtems_disk_device *dd) static inline void *rtems_disk_get_driver_data(
const rtems_disk_device *dd
)
{ {
return dd->driver_data; return dd->driver_data;
} }
static inline uint32_t rtems_disk_block_size(const rtems_disk_device *dd) static inline uint32_t rtems_disk_get_media_block_size(
{ const rtems_disk_device *dd
return dd->block_size; )
}
static inline uint32_t rtems_disk_media_block_size(const rtems_disk_device *dd)
{ {
return dd->media_block_size; return dd->media_block_size;
} }

View File

@@ -1914,7 +1914,7 @@ rtems_bdbuf_execute_read_request (rtems_blkdev_request *req,
req->status = RTEMS_RESOURCE_IN_USE; req->status = RTEMS_RESOURCE_IN_USE;
req->error = 0; req->error = 0;
result = dd->ioctl (dd, RTEMS_BLKIO_REQUEST, req); result = dd->ioctl (dd->phys_dev, RTEMS_BLKIO_REQUEST, req);
if (result == 0) if (result == 0)
{ {
@@ -2324,7 +2324,8 @@ rtems_bdbuf_swapout_write (rtems_bdbuf_swapout_transfer* transfer)
* Perform the transfer. No cache locks, no preemption, only the disk * Perform the transfer. No cache locks, no preemption, only the disk
* device is being held. * device is being held.
*/ */
result = dd->ioctl (dd, RTEMS_BLKIO_REQUEST, transfer->write_req); result = dd->ioctl (dd->phys_dev, RTEMS_BLKIO_REQUEST,
transfer->write_req);
if (result < 0) if (result < 0)
{ {
rtems_bdbuf_lock_cache (); rtems_bdbuf_lock_cache ();

View File

@@ -251,15 +251,18 @@ rtems_blkdev_generic_ioctl(
break; break;
case RTEMS_BLKIO_REQUEST: case RTEMS_BLKIO_REQUEST:
{ /*
rtems_blkdev_request *req = args->buffer; * It is not allowed to directly access the driver circumventing
args->ioctl_return = (uint32_t) dd->ioctl(dd, args->command, req); * the cache.
*/
rc = RTEMS_INVALID_NAME;
args->ioctl_return = -1;
break; break;
}
default: default:
args->ioctl_return = (uint32_t) dd->ioctl(dd, args->command, args->ioctl_return = (uint32_t) dd->ioctl(dd->phys_dev,
args->buffer); args->command,
args->buffer);
break; break;
} }
rtems_disk_release(dd); rtems_disk_release(dd);

View File

@@ -2343,7 +2343,7 @@ rtems_fdisk_print_status (rtems_flashdisk* fd)
static int static int
rtems_fdisk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp) rtems_fdisk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp)
{ {
dev_t dev = rtems_disk_physical_device_number (dd); dev_t dev = rtems_disk_get_device_identifier (dd);
rtems_device_minor_number minor = rtems_filesystem_dev_minor_t (dev); rtems_device_minor_number minor = rtems_filesystem_dev_minor_t (dev);
rtems_blkdev_request* r = argp; rtems_blkdev_request* r = argp;
rtems_status_code sc; rtems_status_code sc;

View File

@@ -682,7 +682,7 @@ rtems_nvdisk_erase_disk (rtems_nvdisk* nvd)
static int static int
rtems_nvdisk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp) rtems_nvdisk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp)
{ {
dev_t dev = rtems_disk_physical_device_number (dd); dev_t dev = rtems_disk_get_device_identifier (dd);
rtems_device_minor_number minor = rtems_filesystem_dev_minor_t (dev); rtems_device_minor_number minor = rtems_filesystem_dev_minor_t (dev);
rtems_blkdev_request* r = argp; rtems_blkdev_request* r = argp;
rtems_status_code sc; rtems_status_code sc;

View File

@@ -101,7 +101,7 @@ ramdisk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
case RTEMS_BLKIO_REQUEST: case RTEMS_BLKIO_REQUEST:
{ {
rtems_blkdev_request *r = argp; rtems_blkdev_request *r = argp;
struct ramdisk *rd = rtems_disk_driver_data(dd); struct ramdisk *rd = rtems_disk_get_driver_data(dd);
switch (r->req) switch (r->req)
{ {