Преглед изворни кода

Save work, mid update

master
Jørn Guldberg пре 5 година
родитељ
комит
ac7c44e70d
3 измењених фајлова са 15 додато и 11 уклоњено
  1. +15
    -11
      lsfs_disk_controller.h
  2. BIN
      lsfs_fuse
  3. BIN
      lsfs_fuse.o

+ 15
- 11
lsfs_disk_controller.h Прегледај датотеку

@ -100,14 +100,15 @@ typedef struct Directory_Table
typedef struct File_System_Control_Information
{
char filesyste_information[256];
uint64_t offset_on_disk;
uint64_t next_partition;
uint64_t maximum_sectors_on_partition;
uint64_t next_free_sector;
uint64_t next_sector_reuse_pointer;
uint64_t last_sector_index_on_partition;
uint64_t maximum_sectors_on_disk;
uint64_t sectors_size_on_disk;
uint64_t next_free_sector;
uint64_t number_of_mtt;
uint64_t master_tag_records[16];
uint64_t not_used[26];
} __attribute__((packed)) FSCI;
typedef struct struct_partition_control
@ -522,11 +523,8 @@ int create_file_system() {
int* zero_buffer;
FSCI fsci;
fsci.offset_on_disk = 1;
fsci.maximum_sectors_on_partition = 1048576; // Max 4GiB
//fsci.maximum_sectors_on_partition = 1048576; // Max 4GiB
fsci.next_free_sector = 257;
fsci.number_of_mtt = 1;
memset(fsci.master_tag_records, 0, 128);
fsci.master_tag_records[0] = 1;
fseek ( disk , 0, SEEK_SET );
fwrite(&fsci, 1, sizeof(fsci), disk);
@ -559,9 +557,15 @@ int lsfs_disk_load_disk() {
if (mbr.partitions[i].partition_type == 0x18)
{
printf("%d\n", mbr.partitions[i].LBA_abs_first_sector);
// First we find the Mater Table.
// First we find the File system control information.
fseek ( disk , mbr.partitions[i].LBA_abs_first_sector * SECTOR_SIZE, SEEK_SET );
fread(&p_control.master_table, 1, sizeof(table_entry) * DEFAULT_MASTER_TABLE_SIZE , disk);
fread(&p_control.fsci, 1, SECTOR_SIZE , disk);
// next we find the Mater Table.
fseek ( disk , (mbr.partitions[i].LBA_abs_first_sector + 1) * SECTOR_SIZE, SEEK_SET );
fread(&p_control.master_table, 1, 10 * SECTOR_SIZE , disk);
return 1;
}
}



Loading…
Откажи
Сачувај