|
|
@ -126,6 +126,7 @@ int dmu_create_file_system(char* disk_name) { |
|
|
|
printf("Create new disk img\n"); |
|
|
|
create_file_system(disk_name, hdd_or_partition, filesystem_size_in_MB); |
|
|
|
printf("Disk is created as: %s\n", disk_name); |
|
|
|
|
|
|
|
fclose (disk); |
|
|
|
|
|
|
|
// TODO: Do you want to install SingOS: |
|
|
@ -166,125 +167,112 @@ int dmu_print_mtt(char *path) { |
|
|
|
printf("\n\n\n"); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
#if 0 |
|
|
|
|
|
|
|
|
|
|
|
int dmu_print_tag_table(lsfs_tag_id TagID) { |
|
|
|
tag_record* tag_table = calloc(1, SECTOR_SIZE); |
|
|
|
mif* mif_data = calloc(1, SECTOR_SIZE); |
|
|
|
read_data_from_disk(TagID, tag_table); |
|
|
|
|
|
|
|
printf("Tag Table for: %lu\n", TagID); |
|
|
|
printf("\n|------------------------Tag Table--------------------------|\n"); |
|
|
|
|
|
|
|
for (int i = 0; i < MAX_TAGS_IN_TAG_TABLE; ++i) { |
|
|
|
if (tag_table[i].mif_record == 0) { |
|
|
|
break; |
|
|
|
} |
|
|
|
read_data_from_disk(tag_table[i].mif_record, mif_data); |
|
|
|
printf("|%-28lu|%-30s| \n", tag_table[i].mif_record, mif_data->filename); |
|
|
|
printf("|-----------------------------------------------------------|\n"); |
|
|
|
|
|
|
|
} |
|
|
|
printf("\n\n\n"); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
int main (int argc, char *argv[]) |
|
|
|
{ |
|
|
|
|
|
|
|
if (argc > 1) |
|
|
|
{ |
|
|
|
|
|
|
|
char chose[8]; |
|
|
|
while(strcmp(chose, "exit")) { |
|
|
|
if(!disk_is_loaded) { |
|
|
|
printf("Tag File System Utility\nMenu:\nc: Create new lsfs disk\nl: load disk\nEnter:"); |
|
|
|
} |
|
|
|
else { |
|
|
|
printf("Tag File System Utility\n" |
|
|
|
"Disk loaded: %s\nMenu:\n" |
|
|
|
"1: Print Directory table\n" |
|
|
|
"2: (Not implemented) \n" |
|
|
|
"3: Print File\n" |
|
|
|
"4: (Not implemented)\n" |
|
|
|
"5: Create New Directory\n" |
|
|
|
"i: install Bootloader\n" |
|
|
|
"v: install VBR\n" |
|
|
|
"exit: exit program\n", loaded_disk_name); |
|
|
|
} |
|
|
|
|
|
|
|
scanf("%s", chose); |
|
|
|
|
|
|
|
if (strcmp(chose, "c") == 0) |
|
|
|
{ |
|
|
|
printf("\nCreate disk\nEnter filename:\n"); |
|
|
|
scanf("%s", loaded_disk_name); |
|
|
|
dmu_create_file_system(loaded_disk_name); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "l") == 0) |
|
|
|
{ |
|
|
|
printf("\nLoad disk\nEnter filename:\n"); |
|
|
|
scanf("%s", loaded_disk_name); |
|
|
|
dmu_load_file_system(loaded_disk_name); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "i") == 0) { |
|
|
|
printf("\nInstall Bootloader\nEnter filename:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
dmu_install_bootloader(input_buffer); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "v") == 0) { |
|
|
|
printf("\nInstall VBR\nEnter filename:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
dmu_install_vbr(input_buffer); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "1") == 0) { |
|
|
|
// Print Directory: |
|
|
|
printf("Enter Directory:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
dmu_print_mtt(input_buffer); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "3") == 0) { |
|
|
|
// Print File |
|
|
|
printf("Enter path:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
|
|
|
|
dmu_print_file( input_buffer ); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "5") == 0) { |
|
|
|
printf("Enter Directory:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
|
|
|
|
int new_id = lsfs_disk_create_entry(input_buffer, ENTRY_DIRECTORY ); |
|
|
|
//lsfs_disk_write_data_to_file(new_id, strlen(new_file_data_d), new_file_data_d); |
|
|
|
|
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
char chose[8]; |
|
|
|
while(strcmp(chose, "exit")) { |
|
|
|
if(!disk_is_loaded) { |
|
|
|
printf("Tag File System Utility\nMenu:\nc: Create new lsfs disk\nl: load disk\nEnter:"); |
|
|
|
} |
|
|
|
else { |
|
|
|
printf("Tag File System Utility\n" |
|
|
|
"Disk loaded: %s\nMenu:\n" |
|
|
|
"1: Print Directory table\n" |
|
|
|
"2: (Not implemented) \n" |
|
|
|
"3: Print File\n" |
|
|
|
"4: (Not implemented)\n" |
|
|
|
"5: Create New Directory\n" |
|
|
|
"b: install Bootloader\n" |
|
|
|
"v: install VBR\n" |
|
|
|
"exit: exit program\n", loaded_disk_name); |
|
|
|
} |
|
|
|
|
|
|
|
scanf("%s", chose); |
|
|
|
|
|
|
|
if (strcmp(chose, "c") == 0) |
|
|
|
{ |
|
|
|
printf("\nCreate disk\nEnter filename:\n"); |
|
|
|
scanf("%s", loaded_disk_name); |
|
|
|
dmu_create_file_system(loaded_disk_name); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "l") == 0) |
|
|
|
{ |
|
|
|
printf("\nLoad disk\nEnter filename:\n"); |
|
|
|
scanf("%s", loaded_disk_name); |
|
|
|
dmu_load_file_system(loaded_disk_name); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "b") == 0) { |
|
|
|
printf("\nInstall Bootloader\nEnter filename:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
dmu_install_bootloader(input_buffer); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "v") == 0) { |
|
|
|
printf("\nInstall VBR\nEnter filename:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
dmu_install_vbr(input_buffer); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "1") == 0) { |
|
|
|
// Print Directory: |
|
|
|
printf("Enter Directory:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
dmu_print_mtt(input_buffer); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "3") == 0) { |
|
|
|
// Print File |
|
|
|
printf("Enter path:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
|
|
|
|
dmu_print_file( input_buffer ); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "5") == 0) { |
|
|
|
printf("Enter Directory:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
|
|
|
|
int new_id = lsfs_disk_create_entry(input_buffer, ENTRY_DIRECTORY ); |
|
|
|
//lsfs_disk_write_data_to_file(new_id, strlen(new_file_data_d), new_file_data_d); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#if 0 |
|
|
|
else if(strcmp(chose, "2") == 0) { |
|
|
|
// Print Master Tag Table |
|
|
|
printf("Enter Tag ID:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
|
|
|
|
dmu_print_tag_table( (lsfs_tag_id) atoi(input_buffer) ); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "4") == 0) { |
|
|
|
// Print Master Tag Table |
|
|
|
printf("Enter Tag name:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
lsfs_disk_create_tag(input_buffer, false); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
printf("Write data:\n"); |
|
|
|
char* new_file_data_d = calloc(1, 4096); |
|
|
|
scanf("%s", new_file_data_d); |
|
|
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
#if 0 |
|
|
|
else if(strcmp(chose, "2") == 0) { |
|
|
|
// Print Master Tag Table |
|
|
|
printf("Enter Tag ID:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
|
|
|
|
dmu_print_tag_table( (lsfs_tag_id) atoi(input_buffer) ); |
|
|
|
} |
|
|
|
else if(strcmp(chose, "4") == 0) { |
|
|
|
// Print Master Tag Table |
|
|
|
printf("Enter Tag name:\n"); |
|
|
|
scanf("%s", input_buffer); |
|
|
|
lsfs_disk_create_tag(input_buffer, false); |
|
|
|
if(disk_is_loaded) |
|
|
|
{ |
|
|
|
fclose (disk); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
printf("Write data:\n"); |
|
|
|
char* new_file_data_d = calloc(1, 4096); |
|
|
|
scanf("%s", new_file_data_d); |
|
|
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
if(disk_is_loaded) { |
|
|
|
fclose (disk); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
} |