Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/fat/fat.h

    refcebe1 rb69e4c0  
    11/*
    22 * Copyright (c) 2008 Jakub Jermar
     3 * Copyright (c) 2011 Oleg Romanenko
    34 * All rights reserved.
    45 *
     
    4647#endif
    4748
    48 #define min(a, b)               ((a) < (b) ? (a) : (b))
     49#define min(a, b)       ((a) < (b) ? (a) : (b))
    4950
    5051/*
     
    5556#define RSCNT(bs)       uint16_t_le2host((bs)->rscnt)
    5657#define FATCNT(bs)      (bs)->fatcnt
    57 #define SF(bs)          uint16_t_le2host((bs)->sec_per_fat)
     58
     59#define SF(bs)          (uint16_t_le2host((bs)->sec_per_fat) ? \
     60    uint16_t_le2host((bs)->sec_per_fat) : \
     61    uint32_t_le2host(bs->fat32.sectors_per_fat))
     62
    5863#define RDE(bs)         uint16_t_le2host((bs)->root_ent_max)
    59 #define TS(bs)          (uint16_t_le2host((bs)->totsec16) != 0 ? \
    60                         uint16_t_le2host((bs)->totsec16) : \
    61                         uint32_t_le2host(bs->totsec32))
    62 
    63 #define BS_BLOCK                0
    64 #define BS_SIZE                 512
     64
     65#define TS(bs)          (uint16_t_le2host((bs)->totsec16) ? \
     66    uint16_t_le2host((bs)->totsec16) : \
     67    uint32_t_le2host(bs->totsec32))
     68
     69#define BS_BLOCK        0
     70#define BS_SIZE         512
    6571
    6672typedef struct fat_bs {
     
    135141} __attribute__ ((packed)) fat_bs_t;
    136142
     143#define FAT32_FSINFO_SIG1       "RRaA"
     144#define FAT32_FSINFO_SIG2       "rrAa"
     145#define FAT32_FSINFO_SIG3       "\x00\x00\x55\xaa"
     146
     147typedef struct {
     148        uint8_t sig1[4];
     149        uint8_t res1[480];
     150        uint8_t sig2[4];
     151        uint32_t free_clusters;
     152        uint32_t last_allocated_cluster;
     153        uint8_t res2[12];
     154        uint8_t sig3[4];
     155} __attribute__ ((packed)) fat32_fsinfo_t;
     156
    137157typedef enum {
    138158        FAT_INVALID,
     
    175195
    176196        fibril_mutex_t  lock;
    177         devmap_handle_t devmap_handle;
     197        service_id_t    service_id;
    178198        fs_index_t      index;
    179199        /**
     
    224244} fat_node_t;
    225245
     246typedef struct {
     247        bool lfn_enabled;
     248} fat_instance_t;
     249
    226250extern vfs_out_ops_t fat_ops;
    227251extern libfs_ops_t fat_libfs_ops;
    228252
    229 extern int fat_idx_get_new(fat_idx_t **, devmap_handle_t);
    230 extern fat_idx_t *fat_idx_get_by_pos(devmap_handle_t, fat_cluster_t, unsigned);
    231 extern fat_idx_t *fat_idx_get_by_index(devmap_handle_t, fs_index_t);
     253extern int fat_idx_get_new(fat_idx_t **, service_id_t);
     254extern fat_idx_t *fat_idx_get_by_pos(service_id_t, fat_cluster_t, unsigned);
     255extern fat_idx_t *fat_idx_get_by_index(service_id_t, fs_index_t);
    232256extern void fat_idx_destroy(fat_idx_t *);
    233257extern void fat_idx_hashin(fat_idx_t *);
     
    236260extern int fat_idx_init(void);
    237261extern void fat_idx_fini(void);
    238 extern int fat_idx_init_by_devmap_handle(devmap_handle_t);
    239 extern void fat_idx_fini_by_devmap_handle(devmap_handle_t);
     262extern int fat_idx_init_by_service_id(service_id_t);
     263extern void fat_idx_fini_by_service_id(service_id_t);
    240264
    241265#endif
Note: See TracChangeset for help on using the changeset viewer.