14 #ifndef _RTEMS_DISKDEVS_H 15 #define _RTEMS_DISKDEVS_H 60 #define RTEMS_DISK_READ_AHEAD_NO_TRIGGER ((rtems_blkdev_bnum) -1) 281 static inline dev_t rtems_disk_get_device_identifier(
288 static inline rtems_device_major_number rtems_disk_get_major_number(
292 return rtems_filesystem_dev_major_t(dd->
dev);
295 static inline rtems_device_minor_number rtems_disk_get_minor_number(
299 return rtems_filesystem_dev_minor_t(dd->
dev);
302 static inline void *rtems_disk_get_driver_data(
309 static inline uint32_t rtems_disk_get_media_block_size(
316 static inline uint32_t rtems_disk_get_block_size(
323 static inline rtems_blkdev_bnum rtems_disk_get_block_begin(
330 static inline rtems_blkdev_bnum rtems_disk_get_block_count(
397 rtems_blkdev_bnum block_begin,
398 rtems_blkdev_bnum block_count,
495 rtems_blkdev_bnum block_count,
504 rtems_blkdev_bnum block_begin,
505 rtems_blkdev_bnum block_count
uint32_t block_size
Block size in bytes.
Definition: diskdevs.h:215
This is used to manage each element (node) which is placed on a chain.
Definition: chain.h:65
rtems_disk_device * rtems_disk_next(dev_t dev)
Disk device iterator.
Definition: diskdevs.c:479
Block device read-ahead control.
Definition: diskdevs.h:65
uint32_t rtems_blkdev_bnum
Block device block index type.
Definition: diskdevs.h:46
size_t bds_per_group
Buffer descriptors per group count.
Definition: diskdevs.h:247
rtems_blkdev_stats stats
Device statistics for this disk.
Definition: diskdevs.h:268
rtems_chain_node node
Chain node for the read-ahead request queue of the read-ahead task.
Definition: diskdevs.h:69
int(* rtems_block_device_ioctl)(rtems_disk_device *dd, uint32_t req, void *argp)
Block device IO control handler type.
Definition: diskdevs.h:51
rtems_status_code rtems_disk_create_phys(dev_t dev, uint32_t block_size, rtems_blkdev_bnum block_count, rtems_block_device_ioctl handler, void *driver_data, const char *name)
Creates a physical disk with device identifier dev.
Definition: diskdevs.c:233
uint32_t capabilities
Driver capabilities.
Definition: diskdevs.h:173
uint32_t media_block_size
Media block size in bytes.
Definition: diskdevs.h:205
char * name
Disk device name.
Definition: diskdevs.h:178
dev_t dev
Device identifier (concatenation of major and minor number).
Definition: diskdevs.h:162
rtems_blkdev_bnum size
Size of the physical or logical disk in media blocks.
Definition: diskdevs.h:198
rtems_blkdev_read_ahead read_ahead
Read-ahead control for this disk.
Definition: diskdevs.h:273
uint32_t read_blocks
Count of blocks transfered from the device.
Definition: diskdevs.h:121
Block device statistics.
Definition: diskdevs.h:93
Description of a disk device (logical and physical disks).
Definition: diskdevs.h:158
uint32_t read_errors
Read error count.
Definition: diskdevs.h:128
uint32_t read_ahead_transfers
Read-ahead transfer count.
Definition: diskdevs.h:116
rtems_status_code rtems_disk_io_initialize(void)
Initializes the disk device management.
Definition: diskdevs.c:536
rtems_blkdev_bnum block_count
Block count.
Definition: diskdevs.h:222
rtems_status_code
Classic API Status.
Definition: status.h:46
rtems_disk_device * rtems_disk_obtain(dev_t dev)
Returns the disk device descriptor for the device identifier dev.
Definition: diskdevs.c:434
uint32_t media_blocks_per_block
Media blocks per device blocks.
Definition: diskdevs.h:229
uint32_t write_errors
Write error count.
Definition: diskdevs.h:147
rtems_status_code rtems_disk_release(rtems_disk_device *dd)
Releases the disk device descriptor dd.
Definition: diskdevs.c:459
uint32_t write_blocks
Count of blocks transfered to the device.
Definition: diskdevs.h:140
void * driver_data
Private data for the disk driver.
Definition: diskdevs.h:257
int block_to_media_block_shift
Block to media block shift.
Definition: diskdevs.h:240
rtems_status_code rtems_disk_io_done(void)
Releases all resources allocated for disk device management.
Definition: diskdevs.c:579
rtems_blkdev_bnum trigger
Block value to trigger the read-ahead request.
Definition: diskdevs.h:77
rtems_blkdev_bnum start
Start media block number.
Definition: diskdevs.h:193
rtems_disk_device * phys_dev
Physical device identifier (equals the dev entry if it specifies a physical device).
Definition: diskdevs.h:168
unsigned uses
Usage counter.
Definition: diskdevs.h:185
uint32_t read_misses
Read miss count.
Definition: diskdevs.h:109
rtems_status_code rtems_disk_delete(dev_t dev)
Deletes a physical or logical disk device with identifier dev.
Definition: diskdevs.c:408
rtems_blkdev_bnum next
Start block for the next read-ahead request.
Definition: diskdevs.h:85
rtems_block_device_ioctl ioctl
IO control handler for this disk.
Definition: diskdevs.h:252
uint32_t read_hits
Read hit count.
Definition: diskdevs.h:100
bool deleted
Indicates that this disk should be deleted as soon as the last user releases this disk...
Definition: diskdevs.h:263
rtems_status_code rtems_disk_create_log(dev_t dev, dev_t phys, rtems_blkdev_bnum block_begin, rtems_blkdev_bnum block_count, const char *name)
Creates a logical disk with device identifier dev.
Definition: diskdevs.c:292
uint32_t write_transfers
Write transfer count.
Definition: diskdevs.h:135