Ignore:
File:
1 edited

Legend:

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

    rffa2c8ef 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
    226 extern fs_reg_t fat_reg;
    227 
    228 extern void fat_mounted(ipc_callid_t, ipc_call_t *);
    229 extern void fat_mount(ipc_callid_t, ipc_call_t *);
    230 extern void fat_unmounted(ipc_callid_t, ipc_call_t *);
    231 extern void fat_unmount(ipc_callid_t, ipc_call_t *);
    232 extern void fat_lookup(ipc_callid_t, ipc_call_t *);
    233 extern void fat_read(ipc_callid_t, ipc_call_t *);
    234 extern void fat_write(ipc_callid_t, ipc_call_t *);
    235 extern void fat_truncate(ipc_callid_t, ipc_call_t *);
    236 extern void fat_stat(ipc_callid_t, ipc_call_t *);
    237 extern void fat_close(ipc_callid_t, ipc_call_t *);
    238 extern void fat_destroy(ipc_callid_t, ipc_call_t *);
    239 extern void fat_open_node(ipc_callid_t, ipc_call_t *);
    240 extern void fat_stat(ipc_callid_t, ipc_call_t *);
    241 extern void fat_sync(ipc_callid_t, ipc_call_t *);
    242 
    243 extern int fat_idx_get_new(fat_idx_t **, devmap_handle_t);
    244 extern fat_idx_t *fat_idx_get_by_pos(devmap_handle_t, fat_cluster_t, unsigned);
    245 extern fat_idx_t *fat_idx_get_by_index(devmap_handle_t, fs_index_t);
     246typedef struct {
     247        bool lfn_enabled;
     248} fat_instance_t;
     249
     250extern vfs_out_ops_t fat_ops;
     251extern libfs_ops_t fat_libfs_ops;
     252
     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);
    246256extern void fat_idx_destroy(fat_idx_t *);
    247257extern void fat_idx_hashin(fat_idx_t *);
     
    250260extern int fat_idx_init(void);
    251261extern void fat_idx_fini(void);
    252 extern int fat_idx_init_by_devmap_handle(devmap_handle_t);
    253 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);
    254264
    255265#endif
Note: See TracChangeset for help on using the changeset viewer.