MicrOS
fat_directory_entry.h
Go to the documentation of this file.
1 #ifndef FAT_DIRECTORY_ENTRY_H
2 #define FAT_DIRECTORY_ENTRY_H
3 
4 #include <stdint.h>
5 
7 {
8  uint8_t readonly : 1;
9  uint8_t hidden : 1;
10  uint8_t system : 1;
11  uint8_t volume_label : 1;
12  uint8_t subdirectory : 1;
13  uint8_t archive : 1;
14  uint8_t device : 1;
15  uint8_t reserved : 1;
16 } __attribute__((packed)) fat_directory_entry_file_attributes;
17 
19 {
23  uint8_t reserved : 1;
24  uint8_t disable_checksums : 1;
25  uint8_t ignore_checksum_error : 1;
26  uint8_t partial_close_default : 1;
28 } __attribute__((packed)) fat_directory_entry_user_attribtes;
29 
31 {
32  uint8_t seconds : 5;
33  uint8_t minutes : 6;
34  uint8_t hours : 5;
35 } __attribute__((packed)) fat_directory_entry_time;
36 
38 {
39  uint8_t day : 5;
40  uint8_t month : 4;
41  uint8_t year : 7;
42 } __attribute__((packed)) fat_directory_entry_date;
43 
45 {
47  uint8_t owner_execute : 1;
48  uint8_t owner_write_modify : 1;
49  uint8_t owner_read_copy : 1;
51  uint8_t group_execute : 1;
52  uint8_t group_write_modify : 1;
53  uint8_t group_read_copy : 1;
55  uint8_t world_execute : 1;
56  uint8_t world_write_modify : 1;
57  uint8_t world_read_copy : 1;
58  uint8_t reserved : 4;
59 } __attribute__((packed)) fat_directory_entry_access_rights;
60 
61 typedef struct directory_entry
62 {
63  char filename[8];
64  char extension[3];
65 
68 
69  uint8_t first_character;
70 
73 
75 
77 
80 
81  uint16_t first_sector;
83 } __attribute__((packed)) fat_directory_entry;
84 
85 #endif
uint8_t partial_close_default
Definition: fat_directory_entry.h:26
uint8_t disable_checksums
Definition: fat_directory_entry.h:24
Definition: fat_directory_entry.h:37
uint8_t world_read_copy
Definition: fat_directory_entry.h:57
fat_directory_entry_time modify_time
Definition: fat_directory_entry.h:78
uint8_t read_requires_password
Definition: fat_directory_entry.h:20
Definition: fat_directory_entry.h:30
uint8_t ignore_checksum_error
Definition: fat_directory_entry.h:25
fat_directory_entry_access_rights access_rights
Definition: fat_directory_entry.h:76
fat_directory_entry_date modify_date
Definition: fat_directory_entry.h:79
uint8_t write_requires_password
Definition: fat_directory_entry.h:21
fat_directory_entry_date create_date
Definition: fat_directory_entry.h:72
uint8_t hours
Definition: fat_directory_entry.h:34
uint8_t owner_read_copy
Definition: fat_directory_entry.h:49
uint8_t world_execute
Definition: fat_directory_entry.h:55
uint8_t reserved
Definition: fat_directory_entry.h:15
uint8_t owner_execute
Definition: fat_directory_entry.h:47
uint8_t reserved
Definition: fat_directory_entry.h:23
uint8_t reserved
Definition: fat_directory_entry.h:58
uint8_t delete_requires_password
Definition: fat_directory_entry.h:22
uint8_t day
Definition: fat_directory_entry.h:39
uint8_t world_write_modify
Definition: fat_directory_entry.h:56
fat_directory_entry_file_attributes file_attributes
Definition: fat_directory_entry.h:66
uint8_t readonly
Definition: fat_directory_entry.h:8
uint8_t seconds
Definition: fat_directory_entry.h:32
uint8_t group_read_copy
Definition: fat_directory_entry.h:53
uint8_t first_character
Definition: fat_directory_entry.h:69
uint8_t minutes
Definition: fat_directory_entry.h:33
uint8_t archive
Definition: fat_directory_entry.h:13
uint8_t month
Definition: fat_directory_entry.h:40
uint8_t system
Definition: fat_directory_entry.h:10
fat_directory_entry_date last_access_date
Definition: fat_directory_entry.h:74
fat_directory_entry_time create_time
Definition: fat_directory_entry.h:71
fat_directory_entry_user_attribtes user_attributes
Definition: fat_directory_entry.h:67
uint8_t subdirectory
Definition: fat_directory_entry.h:12
uint8_t modify_default_open_rules
Definition: fat_directory_entry.h:27
uint8_t group_write_modify
Definition: fat_directory_entry.h:52
Definition: fat_directory_entry.h:44
uint8_t year
Definition: fat_directory_entry.h:41
uint16_t first_sector
Definition: fat_directory_entry.h:81
uint8_t group_delete_rename_attribute_change
Definition: fat_directory_entry.h:50
uint8_t volume_label
Definition: fat_directory_entry.h:11
uint8_t hidden
Definition: fat_directory_entry.h:9
uint8_t world_delete_rename_attribute_change
Definition: fat_directory_entry.h:54
Definition: fat_directory_entry.h:18
uint8_t group_execute
Definition: fat_directory_entry.h:51
uint32_t size
Definition: fat_directory_entry.h:82
Definition: fat_directory_entry.h:6
uint8_t device
Definition: fat_directory_entry.h:14
size_t uint32_t
Unsigned integral type.
Definition: string.h:8
Definition: fat_directory_entry.h:61
uint8_t owner_delete_rename_attribute_change
Definition: fat_directory_entry.h:46
uint8_t owner_write_modify
Definition: fat_directory_entry.h:48