![]() |
RTEMS 6.1
|
#include <bdbuf.h>
Data Structures | |
| struct | rtems_bdbuf_avl_node |
Data Fields | |
| rtems_chain_node | link |
| struct rtems_bdbuf_buffer::rtems_bdbuf_avl_node | avl |
| rtems_disk_device * | dd |
| rtems_blkdev_bnum | block |
| unsigned char * | buffer |
| rtems_bdbuf_buf_state | state |
| uint32_t | waiters |
| rtems_bdbuf_group * | group |
| uint32_t | hold_timer |
| int | references |
| void * | user |
To manage buffers we using buffer descriptors (BD). A BD holds a buffer plus a range of other information related to managing the buffer in the cache. To speed-up buffer lookup descriptors are organized in AVL-Tree. The fields 'dd' and 'block' are search keys.
| rtems_blkdev_bnum rtems_bdbuf_buffer::block |
block number on the device
| unsigned char* rtems_bdbuf_buffer::buffer |
Pointer to the buffer memory area
| rtems_disk_device* rtems_bdbuf_buffer::dd |
disk device
| rtems_bdbuf_group* rtems_bdbuf_buffer::group |
Pointer to the group of BDs this BD is part of.
| uint32_t rtems_bdbuf_buffer::hold_timer |
Timer to indicate how long a buffer has been held in the cache modified.
| rtems_chain_node rtems_bdbuf_buffer::link |
Link the BD onto a number of lists.
| int rtems_bdbuf_buffer::references |
Allow reference counting by owner.
| rtems_bdbuf_buf_state rtems_bdbuf_buffer::state |
State of the buffer.
| void* rtems_bdbuf_buffer::user |
User data.
| uint32_t rtems_bdbuf_buffer::waiters |
The number of threads waiting on this buffer.