RTEMS: cpukit/include/rtems/sparse-disk.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
sparse-disk.h
Go to the documentation of this file.
1
9/*
10 * Copyright (c) 2012 embedded brains GmbH. All rights reserved.
11 *
12 * embedded brains GmbH
13 * Obere Lagerstr. 30
14 * 82178 Puchheim
15 * Germany
16 * <rtems@embedded-brains.de>
17 *
18 * The license and distribution terms for this file may be
19 * found in the file LICENSE in this distribution or at
20 * http://www.rtems.org/license/LICENSE.
21 */
22
23#ifndef SPARSE_DISK_H
24#define SPARSE_DISK_H
25
26#include <stddef.h>
27#include <stdint.h>
28#include <rtems.h>
29#include <rtems/diskdevs.h>
30#include <rtems/thread.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif /* __cplusplus */
35
44 typedef struct {
45 rtems_blkdev_bnum block;
46 void *data;
47} rtems_sparse_disk_key;
48
49typedef struct rtems_sparse_disk rtems_sparse_disk;
50
51typedef void (*rtems_sparse_disk_delete_handler)(rtems_sparse_disk *sparse_disk);
52
53 struct rtems_sparse_disk {
54 rtems_mutex mutex;
55 rtems_blkdev_bnum blocks_with_buffer;
56 size_t used_count;
57 uint32_t media_block_size;
58 rtems_sparse_disk_delete_handler delete_handler;
59 uint8_t fill_pattern;
60 rtems_sparse_disk_key *key_table;
61};
62
84 rtems_status_code rtems_sparse_disk_create_and_register(
85 const char *device_file_name,
86 uint32_t media_block_size,
87 rtems_blkdev_bnum blocks_with_buffer,
88 rtems_blkdev_bnum media_block_count,
89 uint8_t fill_pattern
90);
91
97void rtems_sparse_disk_free( rtems_sparse_disk *sparse_disk );
98
122 rtems_status_code rtems_sparse_disk_register(
123 const char *device_file_name,
124 rtems_sparse_disk *sparse_disk,
125 uint32_t media_block_size,
126 rtems_blkdev_bnum blocks_with_buffer,
127 rtems_blkdev_bnum media_block_count,
128 uint8_t fill_pattern,
129 rtems_sparse_disk_delete_handler sparse_disk_delete
130);
131
134#ifdef __cplusplus
135}
136#endif /* __cplusplus */
137
138#endif /* SPARSE_DISK_H */
diskdevs.h
Block Device Disk Management API.
rtems_status_code
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_blkdev_bnum
uint32_t rtems_blkdev_bnum
Block device block index type.
Definition: diskdevs.h:45
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.
Definition: sparse-disk.c:306
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.
Definition: sparse-disk.c:336
rtems_sparse_disk_free
void rtems_sparse_disk_free(rtems_sparse_disk *sparse_disk)
Frees a sparse disk.
Definition: sparse-disk.c:301
rtems.h
mutex
Definition: mutex.h:4
rtems_sparse_disk_key
Definition: sparse-disk.h:44
rtems_sparse_disk
Definition: sparse-disk.h:53