20 #ifndef _RTEMS_BDBUF_H 21 #define _RTEMS_BDBUF_H 396 #define RTEMS_BDBUF_MAX_READ_AHEAD_BLOCKS_DEFAULT 0 401 #define RTEMS_BDBUF_MAX_WRITE_BLOCKS_DEFAULT 16 406 #define RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT 15 411 #define RTEMS_BDBUF_SWAPOUT_TASK_SWAP_PERIOD_DEFAULT 250 416 #define RTEMS_BDBUF_SWAPOUT_TASK_BLOCK_HOLD_DEFAULT 1000 421 #define RTEMS_BDBUF_SWAPOUT_WORKER_TASKS_DEFAULT 0 426 #define RTEMS_BDBUF_SWAPOUT_WORKER_TASK_PRIORITY_DEFAULT \ 427 RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT 432 #define RTEMS_BDBUF_READ_AHEAD_TASK_PRIORITY_DEFAULT \ 433 RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT 438 #define RTEMS_BDBUF_TASK_STACK_SIZE_DEFAULT RTEMS_MINIMUM_STACK_SIZE 443 #define RTEMS_BDBUF_CACHE_MEMORY_SIZE_DEFAULT (64 * 512) 448 #define RTEMS_BDBUF_BUFFER_MIN_SIZE_DEFAULT (512) 453 #define RTEMS_BDBUF_BUFFER_MAX_SIZE_DEFAULT (4096) void rtems_bdbuf_purge_dev(rtems_disk_device *dd)
Purges all buffers corresponding to the disk device dd.
Definition: bdbuf.c:2861
void * user
Definition: bdbuf.h:333
uint32_t rtems_blkdev_bnum
Block device block index type.
Definition: diskdevs.h:45
rtems_bdbuf_group * group
Definition: bdbuf.h:327
Accessed by upper layer with modified data.
Definition: bdbuf.h:260
rtems_task_priority swapout_priority
Definition: bdbuf.h:363
void rtems_bdbuf_get_device_stats(const rtems_disk_device *dd, rtems_blkdev_stats *stats)
Returns the block device statistics.
Definition: bdbuf.c:2985
int references
Definition: bdbuf.h:332
uint32_t waiters
Definition: bdbuf.h:325
rtems_status_code rtems_bdbuf_syncdev(rtems_disk_device *dd)
Definition: bdbuf.c:2229
signed char cache
Definition: bdbuf.h:313
In transfer by block device driver and purged.
Definition: bdbuf.h:290
size_t swapout_workers
Definition: bdbuf.h:368
struct rtems_bdbuf_buffer * left
Definition: bdbuf.h:311
void sync(void)
Definition: sync.c:85
Scheduled for synchronization.
Definition: bdbuf.h:280
Empty.
Definition: bdbuf.h:245
void rtems_bdbuf_reset_device_stats(rtems_disk_device *dd)
Resets the block device statistics.
Definition: bdbuf.c:2993
size_t size
Definition: bdbuf.h:375
rtems_task_priority swapout_worker_priority
Definition: bdbuf.h:371
size_t task_stack_size
Definition: bdbuf.h:373
rtems_status_code rtems_bdbuf_init(void)
Definition: bdbuf.c:1509
uint32_t max_write_blocks
Definition: bdbuf.h:361
unsigned char * buffer
Definition: bdbuf.h:321
Cached.
Definition: bdbuf.h:250
signed char bal
Definition: bdbuf.h:314
rtems_status_code rtems_bdbuf_read(rtems_disk_device *dd, rtems_blkdev_bnum block, rtems_bdbuf_buffer **bd)
Definition: bdbuf.c:2057
size_t bds_per_group
Definition: bdbuf.h:347
Block device statistics.
Definition: diskdevs.h:92
struct rtems_bdbuf_buffer rtems_bdbuf_buffer
Description of a disk device (logical and physical disks).
Definition: diskdevs.h:157
uint32_t max_read_ahead_blocks
Definition: bdbuf.h:359
uint32_t swap_block_hold
Definition: bdbuf.h:367
Modified by upper layer.
Definition: bdbuf.h:275
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_task_priority read_ahead_priority
Definition: bdbuf.h:381
rtems_status_code rtems_bdbuf_set_block_size(rtems_disk_device *dd, uint32_t block_size, bool sync)
Sets the block size of a disk device.
Definition: bdbuf.c:2869
uint32_t hold_timer
Definition: bdbuf.h:329
rtems_bdbuf_buffer * bdbuf
Definition: bdbuf.h:351
rtems_disk_device * dd
Definition: bdbuf.h:317
Block Device Disk Management API.
rtems_status_code rtems_bdbuf_release(rtems_bdbuf_buffer *bd)
Definition: bdbuf.c:2131
rtems_chain_node link
Definition: bdbuf.h:345
struct rtems_bdbuf_buffer * right
Definition: bdbuf.h:312
rtems_status_code rtems_bdbuf_get(rtems_disk_device *dd, rtems_blkdev_bnum block, rtems_bdbuf_buffer **bd)
Definition: bdbuf.c:1789
const rtems_bdbuf_config rtems_bdbuf_configuration
Accessed by upper layer with cached data.
Definition: bdbuf.h:255
rtems_bdbuf_buf_state
State of a buffer of the cache.
Definition: bdbuf.h:235
uint32_t buffer_max
Definition: bdbuf.h:378
rtems_bdbuf_buf_state state
Definition: bdbuf.h:323
Free.
Definition: bdbuf.h:240
rtems_status_code rtems_bdbuf_sync(rtems_bdbuf_buffer *bd)
Definition: bdbuf.c:2197
Accessed by upper layer with purged data.
Definition: bdbuf.h:270
struct rtems_bdbuf_config rtems_bdbuf_config
rtems_blkdev_bnum block
Definition: bdbuf.h:319
uint32_t users
Definition: bdbuf.h:350
uint32_t buffer_min
Definition: bdbuf.h:377
rtems_status_code rtems_bdbuf_release_modified(rtems_bdbuf_buffer *bd)
Definition: bdbuf.c:2165
rtems_chain_node link
Definition: bdbuf.h:307
Accessed by upper layer with invalid data.
Definition: bdbuf.h:265
In transfer by block device driver.
Definition: bdbuf.h:285
uint32_t swapout_period
Definition: bdbuf.h:365
uint32_t rtems_task_priority
Definition: tasks.h:54