summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/dosfs/fat.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libfs/src/dosfs/fat.h')
-rw-r--r--cpukit/libfs/src/dosfs/fat.h36
1 files changed, 29 insertions, 7 deletions
diff --git a/cpukit/libfs/src/dosfs/fat.h b/cpukit/libfs/src/dosfs/fat.h
index 48b149199d..5d36fb45c0 100644
--- a/cpukit/libfs/src/dosfs/fat.h
+++ b/cpukit/libfs/src/dosfs/fat.h
@@ -440,6 +440,20 @@ fat_cluster_num_to_sector512_num(
}
static inline uint32_t
+ fat_block_num_to_cluster_num (const fat_fs_info_t *fs_info,
+ const uint32_t block_number)
+{
+ return block_number >> (fs_info->vol.bpc_log2 - fs_info->vol.bytes_per_block_log2);
+}
+
+static inline uint32_t
+ fat_block_num_to_sector_num (const fat_fs_info_t *fs_info,
+ const uint32_t block_number)
+{
+ return block_number << (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
+}
+
+static inline uint32_t
fat_sector_num_to_block_num (const fat_fs_info_t *fs_info,
const uint32_t sector_number)
{
@@ -481,18 +495,26 @@ _fat_block_read(fat_fs_info_t *fs_info,
void *buff);
ssize_t
-_fat_block_write(fat_fs_info_t *fs_info,
+fat_cluster_write(fat_fs_info_t *fs_info,
+ uint32_t start_cln,
+ uint32_t offset,
+ uint32_t count,
+ const void *buff,
+ bool overwrite_cluster);
+
+ssize_t
+fat_sector_write(fat_fs_info_t *fs_info,
uint32_t start,
uint32_t offset,
uint32_t count,
const void *buff);
-int
-_fat_block_zero(fat_fs_info_t *fs_info,
- uint32_t start,
- uint32_t offset,
- uint32_t count);
-
+ssize_t
+fat_cluster_set(fat_fs_info_t *fs_info,
+ uint32_t start,
+ uint32_t offset,
+ uint32_t count,
+ uint8_t pattern);
int