Subversion Repositories HelenOS

Rev

Rev 3504 | Rev 3513 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3504 Rev 3506
Line 31... Line 31...
31
 */
31
 */
32
 
32
 
33
#ifndef FAT_FAT_FAT_H_
33
#ifndef FAT_FAT_FAT_H_
34
#define FAT_FAT_FAT_H_
34
#define FAT_FAT_FAT_H_
35
 
35
 
-
 
36
#include "../../vfs/vfs.h"
-
 
37
#include <stdint.h>
-
 
38
 
-
 
39
#define FAT1        0
-
 
40
 
-
 
41
#define FAT_CLST_RES0   0x0000
-
 
42
#define FAT_CLST_RES1   0x0001
-
 
43
#define FAT_CLST_FIRST  0x0002
-
 
44
#define FAT_CLST_BAD    0xfff7
-
 
45
#define FAT_CLST_LAST1  0xfff8
-
 
46
#define FAT_CLST_LAST8  0xffff
-
 
47
 
-
 
48
/* internally used to mark root directory's parent */
-
 
49
#define FAT_CLST_ROOTPAR    FAT_CLST_RES0
-
 
50
/* internally used to mark root directory */
-
 
51
#define FAT_CLST_ROOT       FAT_CLST_RES1
-
 
52
 
-
 
53
 
-
 
54
/* forward declarations */
-
 
55
struct block;
-
 
56
struct fat_node;
-
 
57
 
-
 
58
typedef uint16_t fat_cluster_t;
-
 
59
 
-
 
60
#define fat_block_get(np, off) \
-
 
61
    _fat_block_get((np)->idx->dev_handle, (np)->firstc, (off))
-
 
62
   
-
 
63
extern struct block *_fat_block_get(dev_handle_t, fat_cluster_t, off_t);
-
 
64
extern uint16_t _fat_blcks_get(dev_handle_t, fat_cluster_t);
-
 
65
extern uint16_t fat_bps_get(dev_handle_t);
-
 
66
 
-
 
67
extern void fat_append_clusters(struct fat_node *, fat_cluster_t);
-
 
68
extern int fat_alloc_clusters(dev_handle_t, unsigned, fat_cluster_t *,
-
 
69
    fat_cluster_t *);
-
 
70
extern void fat_alloc_shadow_clusters(dev_handle_t, fat_cluster_t *, unsigned);
-
 
71
extern void fat_mark_cluster(dev_handle_t, unsigned, fat_cluster_t,
-
 
72
    fat_cluster_t);
-
 
73
extern void fat_fill_gap(struct fat_node *, fat_cluster_t, off_t);
-
 
74
 
36
#endif
75
#endif
37
 
76
 
38
/**
77
/**
39
 * @}
78
 * @}
40
 */
79
 */