#include "devices/disk.h"
#include "filesys/file.h"
#include <inttypes.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
◆ EOChain
| #define EOChain 0x0FFFFFFF /* End of cluster chain */ |
◆ FAT_BOOT_SECTOR
| #define FAT_BOOT_SECTOR 0 /* FAT boot sector. */ |
◆ FAT_MAGIC
| #define FAT_MAGIC 0xEB3C9000 /* MAGIC string to identify FAT disk */ |
◆ ROOT_DIR_CLUSTER
| #define ROOT_DIR_CLUSTER 1 /* Cluster for the root directory */ |
◆ SECTORS_PER_CLUSTER
| #define SECTORS_PER_CLUSTER 1 /* Number of sectors per cluster */ |
◆ cluster_t
◆ cluster_to_sector()
◆ fat_close()
84 {
85
88 PANIC (
"FAT close failed");
92
93
95 off_t bytes_wrote = 0;
99 bytes_left = fat_size_in_bytes - bytes_wrote;
104 } else {
107 PANIC (
"FAT close failed");
110 bytes_wrote += bytes_left;
112 }
113 }
114}
#define PANIC(...)
Definition: debug.h:14
void disk_write(struct disk *d, disk_sector_t sec_no, const void *buffer)
Definition: disk.c:235
#define DISK_SECTOR_SIZE
Definition: disk.h:8
#define FAT_BOOT_SECTOR
Definition: fat.h:18
uint32_t cluster_t
Definition: fat.h:11
struct disk * filesys_disk
Definition: filesys.c:12
void * calloc(size_t, size_t) __attribute__((malloc))
Definition: malloc.c:149
void free(void *)
Definition: malloc.c:202
int32_t off_t
Definition: off_t.h:9
#define NULL
Definition: stddef.h:4
unsigned char uint8_t
Definition: stdint.h:20
void * memcpy(void *, const void *, size_t)
Definition: string.c:7
unsigned int fat_start
Definition: fat.c:14
unsigned int fat_sectors
Definition: fat.c:15
struct fat_boot bs
Definition: fat.c:21
unsigned int fat_length
Definition: fat.c:23
unsigned int * fat
Definition: fat.c:22
◆ fat_create()
117 {
118
121
122
125 PANIC (
"FAT creation failed");
126
127
129
130
133 PANIC (
"FAT create failed due to OOM");
136}
void fat_boot_create(void)
Definition: fat.c:139
void fat_put(cluster_t clst, cluster_t val)
Definition: fat.c:179
void fat_fs_init(void)
Definition: fat.c:154
disk_sector_t cluster_to_sector(cluster_t clst)
Definition: fat.c:191
#define EOChain
Definition: fat.h:14
#define ROOT_DIR_CLUSTER
Definition: fat.h:19
◆ fat_create_chain()
◆ fat_get()
◆ fat_init()
35 {
38 PANIC (
"FAT init failed");
39
40
43 PANIC (
"FAT init failed");
47
48
52}
void disk_read(struct disk *d, disk_sector_t sec_no, void *buffer)
Definition: disk.c:211
#define FAT_MAGIC
Definition: fat.h:13
void * malloc(size_t) __attribute__((malloc))
Definition: malloc.c:85
unsigned int magic
Definition: fat.c:11
◆ fat_open()
55 {
58 PANIC (
"FAT load failed");
59
60
66 bytes_left = fat_size_in_bytes - bytes_read;
71 } else {
74 PANIC (
"FAT load failed");
77 bytes_read += bytes_left;
79 }
80 }
81}
◆ fat_put()
◆ fat_remove_chain()