10
#include <fs/file_desc.h>
12
#include <fs/super_block.h>
16
static size_t fat_read(struct file_desc *desc, void *buf, size_t size) {
19
struct fat_file_info *fi;
21
fi = file_get_inode_data(desc);
22
fi->pointer = file_get_pos(desc);
24
rezult = fat_read_file(fi, fat_sector_buff, buf, &bytecount, size);
25
if (DFS_OK == rezult) {
31
static size_t fat_write(struct file_desc *desc, void *buf, size_t size) {
34
struct fat_file_info *fi;
36
int old_pos = file_get_pos(desc);
38
fi = file_get_inode_data(desc);
39
fi->pointer = old_pos;
40
new_sz = file_get_size(desc);
43
rezult = fat_write_file(fi, fat_sector_buff, (uint8_t *)buf,
44
&bytecount, size, &new_sz);
46
if (DFS_OK == rezult || DFS_EOF == rezult) {
47
if (old_pos + bytecount > file_get_size(desc)) {
48
file_set_size(desc, old_pos + bytecount);
49
fi->filelen = old_pos + bytecount;
58
struct file_operations fat_fops = {