RTEMS
5.0.0
|
Files | |
file | sparse-disk.h |
Sparse disk block device API. | |
file | sparse-disk.c |
Sparse disk block device implementation. | |
Data Structures | |
struct | rtems_sparse_disk_key |
struct | rtems_sparse_disk |
Typedefs | |
typedef struct rtems_sparse_disk | rtems_sparse_disk |
typedef void(* | rtems_sparse_disk_delete_handler) (rtems_sparse_disk *sparse_disk) |
Functions | |
rtems_status_code | rtems_sparse_disk_create_and_register (const char *device_file_name, uint32_t media_block_size, rtems_blkdev_bnum blocks_with_buffer, rtems_blkdev_bnum media_block_count, uint8_t fill_pattern) |
Creates and registers a sparse disk. More... | |
void | rtems_sparse_disk_free (rtems_sparse_disk *sparse_disk) |
Frees a sparse disk. More... | |
rtems_status_code | rtems_sparse_disk_register (const char *device_file_name, rtems_sparse_disk *sparse_disk, uint32_t media_block_size, rtems_blkdev_bnum blocks_with_buffer, rtems_blkdev_bnum media_block_count, uint8_t fill_pattern, rtems_sparse_disk_delete_handler sparse_disk_delete) |
Initializes and registers a sparse disk. More... | |
rtems_status_code rtems_sparse_disk_create_and_register | ( | const char * | device_file_name, |
uint32_t | media_block_size, | ||
rtems_blkdev_bnum | blocks_with_buffer, | ||
rtems_blkdev_bnum | media_block_count, | ||
uint8_t | fill_pattern | ||
) |
Creates and registers a sparse disk.
[in] | device_file_name | The device file name path. |
[in] | media_block_size | The media block size in bytes. |
[in] | blocks_with_buffer | Blocks of the device with a buffer. Other blocks can store only fill pattern value bytes. |
[in] | block_count | The media block count of the device. It is the sum of blocks with buffer and blocks that contain only fill pattern value bytes. |
[in] | fill_pattern | The fill pattern specifies the byte value of blocks without a buffer. It is also the initial value for blocks with a buffer. |
RTEMS_SUCCESSFUL | Successful operation. |
RTEMS_INVALID_NUMBER | Media block size or media block count is not positive. The blocks with buffer count is greater than the media block count. |
RTEMS_NO_MEMORY | Not enough memory. |
RTEMS_TOO_MANY | Cannot create semaphore. |
RTEMS_UNSATISFIED | Cannot create generic device node. |
void rtems_sparse_disk_free | ( | rtems_sparse_disk * | sparse_disk | ) |
Frees a sparse disk.
Calls free() on the sparse disk pointer.
rtems_status_code rtems_sparse_disk_register | ( | const char * | device_file_name, |
rtems_sparse_disk * | sparse_disk, | ||
uint32_t | media_block_size, | ||
rtems_blkdev_bnum | blocks_with_buffer, | ||
rtems_blkdev_bnum | media_block_count, | ||
uint8_t | fill_pattern, | ||
rtems_sparse_disk_delete_handler | sparse_disk_delete | ||
) |
Initializes and registers a sparse disk.
This will create one semaphore for mutual exclusion.
[in] | device_file_name | The device file name path. |
[in,out] | sparse_disk | The sparse disk. |
[in] | media_block_size | The media block size in bytes. |
[in] | blocks_with_buffer | Blocks of the device with a buffer. Other blocks can store only fill pattern value bytes. |
[in] | block_count | The media block count of the device. It is the sum of blocks with buffer and blocks that contain only fill pattern value bytes. |
[in] | fill_pattern | The fill pattern specifies the byte value of blocks without a buffer. It is also the initial value for blocks with a buffer. |
[in] | sparse_disk_delete | The sparse disk delete handler. |
RTEMS_SUCCESSFUL | Successful operation. |
RTEMS_INVALID_NUMBER | Media block size or media block count is not positive. The blocks with buffer count is greater than the media block count. |
RTEMS_INVALID_ADDRESS | Invalid sparse disk address. |
RTEMS_TOO_MANY | Cannot create semaphore. |
RTEMS_UNSATISFIED | Cannot create generic device node. |