-
Notifications
You must be signed in to change notification settings - Fork 2
Struktur des Dateisystems
Das Dateisystem besteht aus dem Superblock, der DMAP, der FAT (File Allocation Table), dem Root-Bereich und dem Datenbereich.
Hierbei sind DMAP, FAT und Root im Arbeitsspeicher realisiert. Somit muss es Methoden geben, die diese Strukturen initialisieren und persistieren.
Der Superblock enthält generelle Dateisysteminformationen. Diese Informationen sind der Inhalt des Structs Superblock in structs-myfs.h:
fileSystemSize; // Die Größe des gesamten Dateisystems
emptySpaceSize; // Der aktuelle freie Speicherplatz in Blöcken
maximumStorageSize; // Der maximale Speicherplatz in Blöcken
dmapStart; // Der Start-Block der DMAP
fatStart; // Der Start-Block der FAT
rootStart; // Der Start-Block des Root-Bereichs
dataStart; // Der Start-Block der Daten
dmapSize; // Die Anzahl der DMAP-Blöcke
fatSize; // Die Anzahl der FAT-Blöcke
rootSize; // Die Anzahl der Root-Blöcke (Ein Block pro Metadaten)
dataSize; // Die Anzahl der Datenblöcke
TODO
Die DMAP beschreibt den Status der Datenblöcke, nämlich ob diese leer sind oder einen Inhalt haben.
Die Größe der DMAP beträgt 16 Blöcke (Block 1-16).
Für jede Adresse bzw. Datenblock gibt es einen Eintrag in der DMAP und zwar 0, wenn der Block leer ist und 1 wenn der Block beschrieben wurde.
-
void readDMAP(char** dmap);
-
void writeDMAP();
-
void setPointInDMAP(u_int16_t setAddress);
-
void clearPointInDMAP(u_int16_t setAddress);
-
bool isAdressFull(u_int16_t blockNo);
-
int findFreeBlockDMAP(uint32_t* freeBlock);
-
void readFAT(
Rückgabeparameter);
-
void writeFAT();
-
void readRoot(
Rückgabeparameter);
-
void writeRoot();