diff options
author | Chris Johns <chrisj@rtems.org> | 2008-07-29 02:21:15 +0000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2008-07-29 02:21:15 +0000 |
commit | 3899a5379f4bfa067e73b4612a547a308a6634ec (patch) | |
tree | f837533ace01e934da6089cdca360822d85cc662 /cpukit/libblock/include/rtems/diskdevs.h | |
parent | 2008-07-27 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-3899a5379f4bfa067e73b4612a547a308a6634ec.tar.bz2 |
2008-07-29 Chris Johns <chrisj@rtems.org>
* libblock/Makefile.am: Removed src/show_bdbuf.c.
* libblock/src/show_bdbuf.c: Removed.
* libblock/include/rtems/bdbuf.h, cpukit/libblock/src/bdbuf.c:
Rewritten the bdbuf code. Remove pre-emption disable, score
access, fixed many bugs and increased performance.
* libblock/include/rtems/blkdev.h: Added
RTEMS_BLKDEV_CAPABILITIES block device request. Cleaned up
comments. Added block and user fields to the sg buffer
request. Move to rtems_* namespace.
* libblock/include/rtems/diskdevs.h,
cpukit/libblock/src/diskdevs.c: Move to rtems_* namespace. Add a
capabilities field for drivers. Change rtems_disk_lookup to
rtems_disk_obtain to match the release call. You do not lookup and
release a disk, you obtain and release a disk.
* libblock/include/rtems/ide_part_table.h,
libblock/include/rtems/ramdisk.h, libblock/src/ide_part_table.c:
Move to rtems_* namespace.
* libblock/include/rtems/nvdisk.h: Formatting change.
* libblock/src/blkdev.c: Move to rtems_* namespace. Change
rtems_disk_lookup to rtems_disk_obtain
* libblock/src/flashdisk.c: Move to rtems_* namespace. Use the new
support for the block number in the scatter/grather request
struct. This allows non-continuous buffer requests for those
drivers that can support increasing performance.
* libblock/src/nvdisk.c: Move to rtems_* namespace. Removed
warnings. Added better error checking. Fixed some comments.
* libblock/src/ramdisk.c: Move to rtems_* namespace. Added some
trace functions to help debugging upper layers. Use the new
support for the block number in the scatter/grather request
struct. This allows non-continuous buffer requests for those
drivers that can support increasing performance.
* libfs/src/dosfs/fat.c, libfs/src/dosfs/fat.h: Use new chains
API. Removed temporary hack and changed
set_errno_and_return_minus_one to
rtems_set_errno_and_return_minus_one. Move fat_buf_access from
header and stopped it being inlined. Updated to libblock changes.
* libfs/src/dosfs/fat_fat_operations.c,
libfs/src/dosfs/fat_file.c, libfs/src/dosfs/msdos_create.c,
libfs/src/dosfs/msdos_dir.c, libfs/src/dosfs/msdos_eval.c,
libfs/src/dosfs/msdos_file.c, libfs/src/dosfs/msdos_format.c,
libfs/src/dosfs/msdos_free.c, libfs/src/dosfs/msdos_initsupp.c,
libfs/src/dosfs/msdos_misc.c, libfs/src/dosfs/msdos_mknod.c: Use
new chains API. Removed temporary hack and changed
set_errno_and_return_minus_one to
rtems_set_errno_and_return_minus_one. Updated to libblock changes.
* libmisc/Makefile.am: Add new ls and rm command files.
* libmisc/shell/cmp-ls.c, libmisc/shell/extern-ls.h,
libmisc/shell/filemode.c, libmisc/shell/print-ls.c,
libmisc/shell/pwcache.c, libmisc/shell/utils-ls.c,
libmisc/shell/vis.c, shell/vis.h: New.
* libmisc/shell/extern-cp.h, libmisc/shell/main_cp.c,
libmisc/shell/utils-cp.c: Fixed the usage call bug.
* libmisc/shell/main_blksync.c: Updated to the new block IO ioctl
command.
* libmisc/shell/main_ls.c, libmisc/shell/main_rm.c: Updated to BSD
commands with more features.
* score/src/coremutex.c: Fix the strick order mutex code.
* libmisc/shell/shell.c: Change shell tasks mode to be timeslice
and no ASR.
* sapi/include/confdefs.h: Change ata_driver_task_priority to
rtems_ata_driver_task_priority. Add the new BD buf cache
parameters with defaults.
* score/src/interr.c: Do not return if the CPU halt call returns.
Diffstat (limited to '')
-rw-r--r-- | cpukit/libblock/include/rtems/diskdevs.h | 71 |
1 files changed, 37 insertions, 34 deletions
diff --git a/cpukit/libblock/include/rtems/diskdevs.h b/cpukit/libblock/include/rtems/diskdevs.h index 6542d74775..3517ddede2 100644 --- a/cpukit/libblock/include/rtems/diskdevs.h +++ b/cpukit/libblock/include/rtems/diskdevs.h @@ -21,44 +21,47 @@ extern "C" { #include <rtems/libio.h> #include <stdlib.h> -#include "rtems/blkdev.h" - /* Buffer pool identifier */ typedef int rtems_bdpool_id; +#include "rtems/blkdev.h" + +/* Driver capabilities. */ + /* Block device ioctl handler */ -typedef int (* block_device_ioctl) (dev_t dev, uint32_t req, void *argp); +typedef int (* rtems_block_device_ioctl) (dev_t dev, uint32_t req, void *argp); -/* disk_device: Entry of this type created for every disk device (both for - * logical and physical disks). +/* rtems_disk_device: Entry of this type created for every disk device + * (both for logical and physical disks). * Array of arrays of pointers to disk_device structures maintained. First * table indexed by major number and second table indexed by minor number. * Such data organization allow quick lookup using data structure of * moderated size. */ -typedef struct disk_device { - dev_t dev; /* Device ID (major + minor) */ - struct disk_device *phys_dev; /* Physical device ID (the same - as dev if this entry specifies - the physical device) */ - char *name; /* Disk device name */ - int uses; /* Use counter. Device couldn't be - removed if it is in use. */ - int start; /* Starting block number (0 for - physical devices, block offset - on the related physical device - for logical device) */ - int size; /* Size of physical or logical disk - in disk blocks */ - int block_size; /* Size of device block (minimum - transfer unit) in bytes - (must be power of 2) */ - int block_size_log2; /* log2 of block_size */ - rtems_bdpool_id pool; /* Buffer pool assigned to this - device */ - block_device_ioctl ioctl; /* ioctl handler for this block - device */ -} disk_device; +typedef struct rtems_disk_device { + dev_t dev; /* Device ID (major + minor) */ + struct rtems_disk_device *phys_dev; /* Physical device ID (the same + as dev if this entry specifies + the physical device) */ + uint32_t capabilities; /* Driver capabilities. */ + char *name; /* Disk device name */ + int uses; /* Use counter. Device couldn't be + removed if it is in use. */ + int start; /* Starting block number (0 for + physical devices, block offset + on the related physical device + for logical device) */ + int size; /* Size of physical or logical disk + in disk blocks */ + int block_size; /* Size of device block (minimum + transfer unit) in bytes + (must be power of 2) */ + int block_size_log2; /* log2 of block_size */ + rtems_bdpool_id pool; /* Buffer pool assigned to this + device */ + rtems_block_device_ioctl ioctl; /* ioctl handler for this block + device */ +} rtems_disk_device; /* rtems_disk_create_phys -- * Create physical disk entry. This function usually invoked from @@ -84,7 +87,7 @@ typedef struct disk_device { */ rtems_status_code rtems_disk_create_phys(dev_t dev, int block_size, int disk_size, - block_device_ioctl handler, + rtems_block_device_ioctl handler, const char *name); /* rtems_disk_create_log -- @@ -131,7 +134,7 @@ rtems_disk_create_log(dev_t dev, dev_t phys, int start, int size, char *name); rtems_status_code rtems_disk_delete(dev_t dev); -/* rtems_disk_lookup -- +/* rtems_disk_obtain -- * Find block device descriptor by its device identifier. This function * increment usage counter to 1. User should release disk_device structure * by invoking rtems_disk_release primitive. @@ -143,8 +146,8 @@ rtems_disk_delete(dev_t dev); * pointer to the block device descriptor, or NULL if no such device * exists. */ -disk_device * -rtems_disk_lookup(dev_t dev); +rtems_disk_device * +rtems_disk_obtain(dev_t dev); /* rtems_disk_release -- * Release disk_device structure (decrement usage counter to 1). @@ -159,7 +162,7 @@ rtems_disk_lookup(dev_t dev); * It should be implemented as inline function. */ rtems_status_code -rtems_disk_release(disk_device *dd); +rtems_disk_release(rtems_disk_device *dd); /* rtems_disk_next -- * Disk device enumerator. Looking for device having device number larger @@ -172,7 +175,7 @@ rtems_disk_release(disk_device *dd); * RETURNS: * Pointer to the disk descriptor for next disk device, or NULL if all * devices enumerated. */ -disk_device * +rtems_disk_device * rtems_disk_next(dev_t dev); /* rtems_diskio_initialize -- |