RTEMS  5.0.0
Files | Data Structures | Typedefs | Functions

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...
 

Detailed Description

Function Documentation

◆ rtems_sparse_disk_create_and_register()

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.

Parameters
[in]device_file_nameThe device file name path.
[in]media_block_sizeThe media block size in bytes.
[in]blocks_with_bufferBlocks of the device with a buffer. Other blocks can store only fill pattern value bytes.
[in]block_countThe 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_patternThe fill pattern specifies the byte value of blocks without a buffer. It is also the initial value for blocks with a buffer.
Return values
RTEMS_SUCCESSFULSuccessful operation.
RTEMS_INVALID_NUMBERMedia block size or media block count is not positive. The blocks with buffer count is greater than the media block count.
RTEMS_NO_MEMORYNot enough memory.
RTEMS_TOO_MANYCannot create semaphore.
RTEMS_UNSATISFIEDCannot create generic device node.
See also
rtems_sparse_disk_register().

◆ rtems_sparse_disk_free()

void rtems_sparse_disk_free ( rtems_sparse_disk sparse_disk)

Frees a sparse disk.

Calls free() on the sparse disk pointer.

◆ rtems_sparse_disk_register()

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.

Parameters
[in]device_file_nameThe device file name path.
[in,out]sparse_diskThe sparse disk.
[in]media_block_sizeThe media block size in bytes.
[in]blocks_with_bufferBlocks of the device with a buffer. Other blocks can store only fill pattern value bytes.
[in]block_countThe 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_patternThe 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_deleteThe sparse disk delete handler.
Return values
RTEMS_SUCCESSFULSuccessful operation.
RTEMS_INVALID_NUMBERMedia block size or media block count is not positive. The blocks with buffer count is greater than the media block count.
RTEMS_INVALID_ADDRESSInvalid sparse disk address.
RTEMS_TOO_MANYCannot create semaphore.
RTEMS_UNSATISFIEDCannot create generic device node.