|
ncloader
0.1
|
fat12.c에 대한 include 의존 그래프데이타 구조 | |
| struct | fat_dentry |
| struct | boot_parameter_block |
| union | boot_parameter_block::type |
| struct | boot_parameter_block::type::fat16 |
| union | type |
| struct | type::fat16 |
| struct | DSKSZTOSECPERCLUS |
| struct | fat32_fsinfo |
| struct | fat_long_dirent |
매크로 | |
| #define | SIZEOF_DENTRY 32 |
| #define | ROOT_DIR_SECTORS(bpb) ((((bpb)->nr_root_entry * SIZEOF_DENTRY) + ((bpb)->sector_size - 1)) / (bpb)->sector_size) |
| #define | FAT_SIZE(bpb) ((bpb)->size_of_fat16 ? (bpb)->size_of_fat16 : (bpb)->type.fat32.size_of_fat32) |
| #define | FIRST_DATA_SECTOR(bpb) ((bpb)->reserved_sector + ((bpb)->nr_fat * FAT_SIZE(bpb)) + ROOT_DIR_SECTORS(bpb)) |
| #define | FIRST_SECTOR_OF_CLUSTER(bpb, N) (((N)-2) * ((bpb)->sector_per_cluster) + FIRST_DATA_SECTOR(bpb)) |
| #define | TOTAL_SECTOR(bpb) ((bpb)->total_sector16 ? (bpb)->total_sector16 : (bpb)->total_sector32) |
| #define | NR_DATA_SECTOR(bpb) (TOTAL_SECTOR(bpb) - ((bpb)->reserved_sector + (bpb)->nr_fat * FAT_SIZE(bpb)) + ROOT_DIR_SECTORS(bpb)) |
| #define | COUNT_OF_CLUSTER(bpb) (NR_DATA_SECTOR(bpb) / (bpb)->sector_per_cluster) |
| #define | IS_FAT12(bpb) (COUNT_OF_CLUSTER(bpb) < 4085) |
| #define | IS_FAT16(bpb) (!IS_FAT12(bpb) && (COUNT_OF_CLUSTER(bpb) < 65525)) |
| #define | IS_FAT32(bpb) (COUNT_OF_CLUSTER(bpb) >= 65525) |
| #define | COUNT_OF_VALID_MAX_CLUSTER(bpb) (COUNT_OF_CLUSTER(bpb) + 1) |
| #define | FAT_OFFSET(bpb, N) |
| #define | THIS_FAT_SECTOR_NUMBER(bpb, N) (FAT_OFFSET(bpb, (N)) / (bpb)->sector_size) |
| #define | THIS_FAT_SECTORS(bpb, N) ((bpb)->reserved_sector + (N) * FAT_SIZE(bpb)) |
| #define | THIS_FAT_OFFSET(bpb, N) (THIS_FAT_SECTORS(bpb, (N)) * (bpb)->sector_size) |
| #define | THIS_FAT_ENTRY_OFFSET(bpb, N) (FAT_OFFSET(bpb, (N)) % (bpb)->sector_size) |
| #define | TO_WORD(buffer) ((unsigned short*)(&buffer)) |
| #define | TO_DWORD(buffer) ((unsigned int*)(&buffer)) |
| #define | FAT_EOF(bpb) (IS_FAT12(bpb) ? 0x0FF8 : IS_FAT16(bpb) ? 0xFFF8 : IS_FAT32(bpb) ? 0x0FFFFFF8 : 0) |
| #define | GET_CLUSTER_ENTRY_VALUE(bpb, buffer, N) |
| #define | SET_CLUSTER_ENTRY_VALUE(bpb, buffer, N, val) |
| #define | IS_EOF(bpb, val) (IS_FAT12(bpb) ? (val) >= 0x0FF8 : IS_FAT16(bpb) ? (val) >= 0xFFF8 : IS_FAT32(bpb) ? (val) >= 0x0FFFFFF8 : 0) |
| #define | BAD_CLUSTER12 0x0FF7 |
| #define | BAD_CLUSTER16 0xFFF7 |
| #define | BAD_CLUSTER32 0x0FFFFFF7 |
| #define | UPDATE_FAT_SIZE(bpb, dsksz) |
| #define | FIRST_ROOTDIR_SECTOR(bpb) ((bpb)->reserved_sector + (bpb)->nr_fat * FAT_SIZE(bpb)) |
| #define | GET_FIRST_BLOCK(dentry) ((dentry)->first_cluster_hi << 16 | (dentry)->first_cluster_lo) |
| #define | IS_FREE_DENTRY(dirent) ((unsigned char)((dirent)->name[0] == (unsigned char)0xE5) || ((dirent)->name[0] == 0x00)) |
| #define | IS_KANJI_NAME(dirent) ((dirent)->name[0] == 0x05) |
| #define | IS_VALID_CHAR_FOR_NAME(ch) (!(((ch) != 0x05 && (ch) < 0x20) && (ch) != 0x22 && ((ch) >= 0x2A && (ch) <= 0x2F) && ((ch) >= 0x3A && (ch) <= 0x3F) && (ch) != 0x5B && (ch) != 0x5C && (ch) != 0x5D && (ch) != 0x7C)) |
| #define | DAY_OF_MONTH(ent) ((ent)->write_date & 0x000Fu) |
| #define | MONTH_OF_YEAR(ent) (((ent)->write_date >> 4) & 0x000Fu) |
| #define | COUNT_OF_YEAR(ent) (1980 + (((ent)->write_date >> 8) & 0x00FFu)) |
| #define | SECOND_COUNT(ent) ((ent)->write_time & 0x000Fu) |
| #define | MINUTES(ent) (((ent)->write_time >> 4) & 0x003F) |
| #define | HOURS(ent) (((ent)->write_time >> 10) & 0x001F) |
| #define | LAST_LONG_ENTRY 0x40 |
| #define | PATH_MAX 256 |
| #define | IS_LAST_SLOT(ent) ((ent->ord & LAST_LONG_ENTRY) == 0) |
타입정의 | |
| typedef struct fat_dentry | fat_dentry_t |
| typedef struct boot_parameter_block | boot_parameter_block_t |
| typedef struct fat_long_dirent | fat_slot_t |
열거형 타입 | |
| enum | dir_attributes { ATTR_READ_ONLY = 0x01, ATTR_HIDDEN = 0x02, ATTR_SYSTEM = 0x04, ATTR_VOLUME_ID = 0x08, ATTR_DIRECTORY = 0x10, ATTR_ARCHIVE = 0x20, ATTR_NONE = 0x00, ATTR_EXT = ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID, ATTR_UNUSED = ATTR_ARCHIVE | ATTR_VOLUME_ID | ATTR_SYSTEM | ATTR_HIDDEN, ATTR_LONG_NAME = ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID, ATTR_LONG_NAME_MASK = ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID | ATTR_DIRECTORY | ATTR_ARCHIVE, ATTR_NO_FILE = ATTR_SYSTEM | ATTR_VOLUME_ID | ATTR_DIRECTORY, ACTIVE_FLAG = 0x80, EXTENDED = 0x05, DELETED_FLAG = 0xE5 } |
함수 | |
| struct fat_dentry | __attribute__ ((packed)) |
| int | main (int argc, char *argv[]) |
변수 | |
| unsigned char | name [11] |
| unsigned char | attribute |
| unsigned char | reserved |
| unsigned char | create_time_tenth |
| unsigned short | create_time |
| unsigned short | create_date |
| unsigned short | last_access_date |
| unsigned short | first_cluster_hi |
| unsigned short | write_time |
| unsigned short | write_date |
| unsigned short | first_cluster_lo |
| unsigned int | file_size |
| unsigned char | boot_drive |
| unsigned char | boot_signature |
| unsigned int | volume_id |
| unsigned char | volume_label [11] |
| unsigned char | fs_type [8] |
| unsigned char | jmp [2] |
| unsigned char | nop |
| unsigned char | oem [8] |
| unsigned short | sector_size |
| unsigned char | sector_per_cluster |
| unsigned short | reserved_sector |
| unsigned char | nr_fat |
| unsigned short | nr_root_entry |
| unsigned short | total_sector16 |
| unsigned char | media_type |
| unsigned short | size_of_fat16 |
| unsigned short | sector_per_track |
| unsigned short | nr_head |
| unsigned int | hidden_sector |
| unsigned int | total_sector32 |
| union type | type |
| struct DSKSZTOSECPERCLUS | __attribute__ |
| unsigned int | lead_sig |
| unsigned char | reserved1 [480] |
| unsigned int | struct_sig |
| unsigned int | free_count |
| unsigned int | next_free |
| unsigned char | reserved2 [12] |
| unsigned int | trail_sig |
| char | ord |
| unsigned char | name1 [10] |
| char | checksum |
| unsigned char | name2 [12] |
| unsigned char | name3 [4] |
| char attribute |
| unsigned char boot_drive |
| unsigned char boot_signature |
| char checksum |
| unsigned short create_date |
| unsigned short create_time |
| unsigned char create_time_tenth |
| unsigned int file_size |
| unsigned short first_cluster_hi |
| unsigned short first_cluster_lo |
| unsigned int free_count |
| unsigned char fs_type |
| unsigned int hidden_sector |
| unsigned char jmp[2] |
| unsigned short last_access_date |
| unsigned int lead_sig |
| unsigned char media_type |
| unsigned char name[11] |
| unsigned char name1[10] |
| unsigned char name2[12] |
| unsigned char name3[4] |
| unsigned int next_free |
| unsigned char nop |
| unsigned char nr_fat |
| unsigned short nr_head |
| unsigned short nr_root_entry |
| unsigned char oem[8] |
| char ord |
| unsigned char reserved |
| unsigned char reserved1[480] |
| unsigned char reserved2[12] |
| unsigned short reserved_sector |
| unsigned char sector_per_cluster |
| unsigned short sector_per_track |
| unsigned short sector_size |
| unsigned short size_of_fat16 |
| unsigned int struct_sig |
| unsigned short total_sector16 |
| unsigned int total_sector32 |
| unsigned int trail_sig |
| char type |
| unsigned int volume_id |
| unsigned char volume_label |
| unsigned short write_date |
| unsigned short write_time |