Lines Matching defs:exfat
92 void exfat_free_dir_list(struct exfat *exfat)
96 list_for_each_entry_safe(dir, i, &exfat->dir_list, list) {
105 void exfat_free_exfat(struct exfat *exfat)
107 if (exfat) {
108 if (exfat->bs)
109 free(exfat->bs);
110 if (exfat->alloc_bitmap)
111 free(exfat->alloc_bitmap);
112 if (exfat->disk_bitmap)
113 free(exfat->disk_bitmap);
114 if (exfat->ohead_bitmap)
115 free(exfat->ohead_bitmap);
116 if (exfat->upcase_table)
117 free(exfat->upcase_table);
118 if (exfat->root)
119 exfat_free_inode(exfat->root);
120 if (exfat->zero_cluster)
121 free(exfat->zero_cluster);
122 free(exfat);
126 struct exfat *exfat_alloc_exfat(struct exfat_blk_dev *blk_dev, struct pbr *bs)
128 struct exfat *exfat;
130 exfat = (struct exfat *)calloc(1, sizeof(*exfat));
131 if (!exfat)
134 INIT_LIST_HEAD(&exfat->dir_list);
135 exfat->blk_dev = blk_dev;
136 exfat->bs = bs;
137 exfat->clus_count = le32_to_cpu(bs->bsx.clu_count);
138 exfat->clus_size = EXFAT_CLUSTER_SIZE(bs);
139 exfat->sect_size = EXFAT_SECTOR_SIZE(bs);
142 exfat->alloc_bitmap = (char *)calloc(1,
143 EXFAT_BITMAP_SIZE(exfat->clus_count));
144 if (!exfat->alloc_bitmap) {
149 exfat->ohead_bitmap =
150 calloc(1, EXFAT_BITMAP_SIZE(exfat->clus_count));
151 if (!exfat->ohead_bitmap) {
156 exfat->disk_bitmap =
157 calloc(1, EXFAT_BITMAP_SIZE(exfat->clus_count));
158 if (!exfat->disk_bitmap) {
163 exfat->zero_cluster = calloc(1, exfat->clus_size);
164 if (!exfat->zero_cluster) {
169 exfat->start_clu = EXFAT_FIRST_CLUSTER;
170 return exfat;
172 exfat_free_exfat(exfat);