mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
Update for block device API change
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 ();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user