Rev 4153 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4153 | Rev 4581 | ||
|---|---|---|---|
| Line 33... | Line 33... | ||
| 33 | #ifndef FAT_FAT_H_ |
33 | #ifndef FAT_FAT_H_ |
| 34 | #define FAT_FAT_H_ |
34 | #define FAT_FAT_H_ |
| 35 | 35 | ||
| 36 | #include "fat_fat.h" |
36 | #include "fat_fat.h" |
| 37 | #include <ipc/ipc.h> |
37 | #include <ipc/ipc.h> |
| - | 38 | #include <fibril_sync.h> |
|
| 38 | #include <libfs.h> |
39 | #include <libfs.h> |
| 39 | #include <atomic.h> |
40 | #include <atomic.h> |
| 40 | #include <sys/types.h> |
41 | #include <sys/types.h> |
| 41 | #include <bool.h> |
42 | #include <bool.h> |
| 42 | #include "../../vfs/vfs.h" |
43 | #include "../../vfs/vfs.h" |
| Line 158... | Line 159... | ||
| 158 | /** Used indices (position) hash table link. */ |
159 | /** Used indices (position) hash table link. */ |
| 159 | link_t uph_link; |
160 | link_t uph_link; |
| 160 | /** Used indices (index) hash table link. */ |
161 | /** Used indices (index) hash table link. */ |
| 161 | link_t uih_link; |
162 | link_t uih_link; |
| 162 | 163 | ||
| 163 | futex_t lock; |
164 | fibril_mutex_t lock; |
| 164 | dev_handle_t dev_handle; |
165 | dev_handle_t dev_handle; |
| 165 | fs_index_t index; |
166 | fs_index_t index; |
| 166 | /** |
167 | /** |
| 167 | * Parent node's first cluster. |
168 | * Parent node's first cluster. |
| 168 | * Zero is used if this node is not linked, in which case nodep must |
169 | * Zero is used if this node is not linked, in which case nodep must |
| Line 176... | Line 177... | ||
| 176 | struct fat_node *nodep; |
177 | struct fat_node *nodep; |
| 177 | } fat_idx_t; |
178 | } fat_idx_t; |
| 178 | 179 | ||
| 179 | /** FAT in-core node. */ |
180 | /** FAT in-core node. */ |
| 180 | typedef struct fat_node { |
181 | typedef struct fat_node { |
| - | 182 | /** Back pointer to the FS node. */ |
|
| - | 183 | fs_node_t *bp; |
|
| - | 184 | ||
| 181 | futex_t lock; |
185 | fibril_mutex_t lock; |
| 182 | fat_node_type_t type; |
186 | fat_node_type_t type; |
| 183 | fat_idx_t *idx; |
187 | fat_idx_t *idx; |
| 184 | /** |
188 | /** |
| 185 | * Node's first cluster. |
189 | * Node's first cluster. |
| 186 | * Zero is used for zero-length nodes. |
190 | * Zero is used for zero-length nodes. |
| Line 201... | Line 205... | ||
| 201 | extern void fat_mount(ipc_callid_t, ipc_call_t *); |
205 | extern void fat_mount(ipc_callid_t, ipc_call_t *); |
| 202 | extern void fat_lookup(ipc_callid_t, ipc_call_t *); |
206 | extern void fat_lookup(ipc_callid_t, ipc_call_t *); |
| 203 | extern void fat_read(ipc_callid_t, ipc_call_t *); |
207 | extern void fat_read(ipc_callid_t, ipc_call_t *); |
| 204 | extern void fat_write(ipc_callid_t, ipc_call_t *); |
208 | extern void fat_write(ipc_callid_t, ipc_call_t *); |
| 205 | extern void fat_truncate(ipc_callid_t, ipc_call_t *); |
209 | extern void fat_truncate(ipc_callid_t, ipc_call_t *); |
| - | 210 | extern void fat_close(ipc_callid_t, ipc_call_t *); |
|
| 206 | extern void fat_destroy(ipc_callid_t, ipc_call_t *); |
211 | extern void fat_destroy(ipc_callid_t, ipc_call_t *); |
| - | 212 | extern void fat_open_node(ipc_callid_t, ipc_call_t *); |
|
| - | 213 | extern void fat_device(ipc_callid_t, ipc_call_t *); |
|
| - | 214 | extern void fat_sync(ipc_callid_t, ipc_call_t *); |
|
| 207 | 215 | ||
| 208 | extern fat_idx_t *fat_idx_get_new(dev_handle_t); |
216 | extern fat_idx_t *fat_idx_get_new(dev_handle_t); |
| 209 | extern fat_idx_t *fat_idx_get_by_pos(dev_handle_t, fat_cluster_t, unsigned); |
217 | extern fat_idx_t *fat_idx_get_by_pos(dev_handle_t, fat_cluster_t, unsigned); |
| 210 | extern fat_idx_t *fat_idx_get_by_index(dev_handle_t, fs_index_t); |
218 | extern fat_idx_t *fat_idx_get_by_index(dev_handle_t, fs_index_t); |
| 211 | extern void fat_idx_destroy(fat_idx_t *); |
219 | extern void fat_idx_destroy(fat_idx_t *); |