Changeset b7fd2a0 in mainline for uspace/srv/fs/exfat
- Timestamp:
- 2018-01-13T03:10:29Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a53ed3a
- Parents:
- 36f0738
- Location:
- uspace/srv/fs/exfat
- Files:
-
- 10 edited
-
exfat.c (modified) (1 diff)
-
exfat.h (modified) (2 diffs)
-
exfat_bitmap.c (modified) (12 diffs)
-
exfat_bitmap.h (modified) (1 diff)
-
exfat_directory.c (modified) (18 diffs)
-
exfat_directory.h (modified) (1 diff)
-
exfat_fat.c (modified) (19 diffs)
-
exfat_fat.h (modified) (1 diff)
-
exfat_idx.c (modified) (5 diffs)
-
exfat_ops.c (modified) (37 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/exfat/exfat.c
r36f0738 rb7fd2a0 71 71 } 72 72 73 int rc = exfat_idx_init();73 errno_t rc = exfat_idx_init(); 74 74 if (rc != EOK) 75 75 goto err; -
uspace/srv/fs/exfat/exfat.h
r36f0738 rb7fd2a0 169 169 extern libfs_ops_t exfat_libfs_ops; 170 170 171 extern int exfat_idx_get_new(exfat_idx_t **, service_id_t);171 extern errno_t exfat_idx_get_new(exfat_idx_t **, service_id_t); 172 172 extern exfat_idx_t *exfat_idx_get_by_pos(service_id_t, exfat_cluster_t, unsigned); 173 173 extern exfat_idx_t *exfat_idx_get_by_index(service_id_t, fs_index_t); … … 176 176 extern void exfat_idx_hashout(exfat_idx_t *); 177 177 178 extern int exfat_idx_init(void);178 extern errno_t exfat_idx_init(void); 179 179 extern void exfat_idx_fini(void); 180 extern int exfat_idx_init_by_service_id(service_id_t);180 extern errno_t exfat_idx_init_by_service_id(service_id_t); 181 181 extern void exfat_idx_fini_by_service_id(service_id_t); 182 182 183 extern int exfat_node_expand(service_id_t, exfat_node_t *, exfat_cluster_t);184 extern int exfat_node_put(fs_node_t *);185 extern int exfat_bitmap_get(fs_node_t **, service_id_t);186 extern int exfat_uctable_get(fs_node_t **, service_id_t);183 extern errno_t exfat_node_expand(service_id_t, exfat_node_t *, exfat_cluster_t); 184 extern errno_t exfat_node_put(fs_node_t *); 185 extern errno_t exfat_bitmap_get(fs_node_t **, service_id_t); 186 extern errno_t exfat_uctable_get(fs_node_t **, service_id_t); 187 187 188 188 -
uspace/srv/fs/exfat/exfat_bitmap.c
r36f0738 rb7fd2a0 48 48 49 49 50 int exfat_bitmap_is_free(exfat_bs_t *bs, service_id_t service_id,50 errno_t exfat_bitmap_is_free(exfat_bs_t *bs, service_id_t service_id, 51 51 exfat_cluster_t clst) 52 52 { … … 55 55 exfat_node_t *bitmapp; 56 56 uint8_t *bitmap; 57 int rc;57 errno_t rc; 58 58 bool alloc; 59 59 … … 89 89 } 90 90 91 int exfat_bitmap_set_cluster(exfat_bs_t *bs, service_id_t service_id,91 errno_t exfat_bitmap_set_cluster(exfat_bs_t *bs, service_id_t service_id, 92 92 exfat_cluster_t clst) 93 93 { … … 96 96 exfat_node_t *bitmapp; 97 97 uint8_t *bitmap; 98 int rc;98 errno_t rc; 99 99 100 100 clst -= EXFAT_CLST_FIRST; … … 124 124 } 125 125 126 int exfat_bitmap_clear_cluster(exfat_bs_t *bs, service_id_t service_id,126 errno_t exfat_bitmap_clear_cluster(exfat_bs_t *bs, service_id_t service_id, 127 127 exfat_cluster_t clst) 128 128 { … … 131 131 exfat_node_t *bitmapp; 132 132 uint8_t *bitmap; 133 int rc;133 errno_t rc; 134 134 135 135 clst -= EXFAT_CLST_FIRST; … … 160 160 } 161 161 162 int exfat_bitmap_set_clusters(exfat_bs_t *bs, service_id_t service_id,162 errno_t exfat_bitmap_set_clusters(exfat_bs_t *bs, service_id_t service_id, 163 163 exfat_cluster_t firstc, exfat_cluster_t count) 164 164 { 165 int rc;165 errno_t rc; 166 166 exfat_cluster_t clst; 167 167 clst = firstc; … … 180 180 } 181 181 182 int exfat_bitmap_clear_clusters(exfat_bs_t *bs, service_id_t service_id,182 errno_t exfat_bitmap_clear_clusters(exfat_bs_t *bs, service_id_t service_id, 183 183 exfat_cluster_t firstc, exfat_cluster_t count) 184 184 { 185 int rc;185 errno_t rc; 186 186 exfat_cluster_t clst; 187 187 clst = firstc; … … 196 196 } 197 197 198 int exfat_bitmap_alloc_clusters(exfat_bs_t *bs, service_id_t service_id,198 errno_t exfat_bitmap_alloc_clusters(exfat_bs_t *bs, service_id_t service_id, 199 199 exfat_cluster_t *firstc, exfat_cluster_t count) 200 200 { … … 217 217 218 218 219 int exfat_bitmap_append_clusters(exfat_bs_t *bs, exfat_node_t *nodep,219 errno_t exfat_bitmap_append_clusters(exfat_bs_t *bs, exfat_node_t *nodep, 220 220 exfat_cluster_t count) 221 221 { … … 240 240 241 241 242 int exfat_bitmap_free_clusters(exfat_bs_t *bs, exfat_node_t *nodep,242 errno_t exfat_bitmap_free_clusters(exfat_bs_t *bs, exfat_node_t *nodep, 243 243 exfat_cluster_t count) 244 244 { … … 251 251 252 252 253 int exfat_bitmap_replicate_clusters(exfat_bs_t *bs, exfat_node_t *nodep)254 { 255 int rc;253 errno_t exfat_bitmap_replicate_clusters(exfat_bs_t *bs, exfat_node_t *nodep) 254 { 255 errno_t rc; 256 256 exfat_cluster_t lastc, clst; 257 257 service_id_t service_id = nodep->idx->service_id; -
uspace/srv/fs/exfat/exfat_bitmap.h
r36f0738 rb7fd2a0 42 42 struct exfat_bs; 43 43 44 extern int exfat_bitmap_alloc_clusters(struct exfat_bs *, service_id_t,44 extern errno_t exfat_bitmap_alloc_clusters(struct exfat_bs *, service_id_t, 45 45 exfat_cluster_t *, exfat_cluster_t); 46 extern int exfat_bitmap_append_clusters(struct exfat_bs *, struct exfat_node *,46 extern errno_t exfat_bitmap_append_clusters(struct exfat_bs *, struct exfat_node *, 47 47 exfat_cluster_t); 48 extern int exfat_bitmap_free_clusters(struct exfat_bs *, struct exfat_node *,48 extern errno_t exfat_bitmap_free_clusters(struct exfat_bs *, struct exfat_node *, 49 49 exfat_cluster_t); 50 extern int exfat_bitmap_replicate_clusters(struct exfat_bs *, struct exfat_node *);50 extern errno_t exfat_bitmap_replicate_clusters(struct exfat_bs *, struct exfat_node *); 51 51 52 extern int exfat_bitmap_is_free(struct exfat_bs *, service_id_t, exfat_cluster_t);53 extern int exfat_bitmap_set_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t);54 extern int exfat_bitmap_clear_cluster(struct exfat_bs *, service_id_t,52 extern errno_t exfat_bitmap_is_free(struct exfat_bs *, service_id_t, exfat_cluster_t); 53 extern errno_t exfat_bitmap_set_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t); 54 extern errno_t exfat_bitmap_clear_cluster(struct exfat_bs *, service_id_t, 55 55 exfat_cluster_t); 56 56 57 extern int exfat_bitmap_set_clusters(struct exfat_bs *, service_id_t,57 extern errno_t exfat_bitmap_set_clusters(struct exfat_bs *, service_id_t, 58 58 exfat_cluster_t, exfat_cluster_t); 59 extern int exfat_bitmap_clear_clusters(struct exfat_bs *, service_id_t,59 extern errno_t exfat_bitmap_clear_clusters(struct exfat_bs *, service_id_t, 60 60 exfat_cluster_t, exfat_cluster_t); 61 61 -
uspace/srv/fs/exfat/exfat_directory.c
r36f0738 rb7fd2a0 60 60 } 61 61 62 int exfat_directory_open(exfat_node_t *nodep, exfat_directory_t *di)62 errno_t exfat_directory_open(exfat_node_t *nodep, exfat_directory_t *di) 63 63 { 64 64 exfat_directory_init(di); … … 76 76 } 77 77 78 int exfat_directory_open_parent(exfat_directory_t *di,78 errno_t exfat_directory_open_parent(exfat_directory_t *di, 79 79 service_id_t service_id, exfat_cluster_t firstc, bool fragmented) 80 80 { … … 88 88 } 89 89 90 int exfat_directory_close(exfat_directory_t *di)91 { 92 int rc = EOK;90 errno_t exfat_directory_close(exfat_directory_t *di) 91 { 92 errno_t rc = EOK; 93 93 94 94 if (di->b) { … … 100 100 } 101 101 102 static int exfat_directory_block_load(exfat_directory_t *di)102 static errno_t exfat_directory_block_load(exfat_directory_t *di) 103 103 { 104 104 uint32_t i; 105 int rc = EOK;105 errno_t rc = EOK; 106 106 107 107 i = (di->pos * sizeof(exfat_dentry_t)) / BPS(di->bs); … … 133 133 } 134 134 135 int exfat_directory_next(exfat_directory_t *di)136 { 137 int rc;135 errno_t exfat_directory_next(exfat_directory_t *di) 136 { 137 errno_t rc; 138 138 139 139 di->pos += 1; … … 145 145 } 146 146 147 int exfat_directory_prev(exfat_directory_t *di)148 { 149 int rc = EOK;147 errno_t exfat_directory_prev(exfat_directory_t *di) 148 { 149 errno_t rc = EOK; 150 150 151 151 if (di->pos > 0) { … … 161 161 } 162 162 163 int exfat_directory_seek(exfat_directory_t *di, aoff64_t pos)163 errno_t exfat_directory_seek(exfat_directory_t *di, aoff64_t pos) 164 164 { 165 165 aoff64_t _pos = di->pos; 166 int rc;166 errno_t rc; 167 167 168 168 di->pos = pos; … … 174 174 } 175 175 176 int exfat_directory_get(exfat_directory_t *di, exfat_dentry_t **d)177 { 178 int rc;176 errno_t exfat_directory_get(exfat_directory_t *di, exfat_dentry_t **d) 177 { 178 errno_t rc; 179 179 180 180 rc = exfat_directory_block_load(di); … … 187 187 } 188 188 189 int exfat_directory_find(exfat_directory_t *di, exfat_dentry_clsf_t type,189 errno_t exfat_directory_find(exfat_directory_t *di, exfat_dentry_clsf_t type, 190 190 exfat_dentry_t **d) 191 191 { … … 201 201 } 202 202 203 int203 errno_t 204 204 exfat_directory_find_continue(exfat_directory_t *di, exfat_dentry_clsf_t type, 205 205 exfat_dentry_t **d) 206 206 { 207 int rc;207 errno_t rc; 208 208 rc = exfat_directory_next(di); 209 209 if (rc != EOK) … … 213 213 214 214 215 int exfat_directory_read_file(exfat_directory_t *di, char *name, size_t size,215 errno_t exfat_directory_read_file(exfat_directory_t *di, char *name, size_t size, 216 216 exfat_file_dentry_t *df, exfat_stream_dentry_t *ds) 217 217 { 218 218 uint16_t wname[EXFAT_FILENAME_LEN + 1]; 219 219 exfat_dentry_t *d = NULL; 220 int rc;220 errno_t rc; 221 221 int i; 222 222 size_t offset = 0; … … 261 261 } 262 262 263 int exfat_directory_read_vollabel(exfat_directory_t *di, char *label,263 errno_t exfat_directory_read_vollabel(exfat_directory_t *di, char *label, 264 264 size_t size) 265 265 { 266 266 uint16_t wlabel[EXFAT_VOLLABEL_LEN + 1]; 267 267 exfat_dentry_t *d = NULL; 268 int rc;268 errno_t rc; 269 269 aoff64_t start_pos = 0; 270 270 … … 303 303 } 304 304 305 int exfat_directory_sync_file(exfat_directory_t *di, exfat_file_dentry_t *df,305 errno_t exfat_directory_sync_file(exfat_directory_t *di, exfat_file_dentry_t *df, 306 306 exfat_stream_dentry_t *ds) 307 307 { 308 int rc;308 errno_t rc; 309 309 int i, count; 310 310 exfat_dentry_t *array = NULL, *de; … … 367 367 } 368 368 369 int exfat_directory_write_file(exfat_directory_t *di, const char *name)369 errno_t exfat_directory_write_file(exfat_directory_t *di, const char *name) 370 370 { 371 371 fs_node_t *fn; … … 374 374 exfat_dentry_t df, ds, *de; 375 375 uint16_t wname[EXFAT_FILENAME_LEN + 1]; 376 int rc;376 errno_t rc; 377 377 int i; 378 378 size_t uctable_chars, j; … … 474 474 } 475 475 476 int exfat_directory_erase_file(exfat_directory_t *di, aoff64_t pos)477 { 478 int rc;476 errno_t exfat_directory_erase_file(exfat_directory_t *di, aoff64_t pos) 477 { 478 errno_t rc; 479 479 int count; 480 480 exfat_dentry_t *de; … … 502 502 } 503 503 504 int exfat_directory_expand(exfat_directory_t *di)505 { 506 int rc;504 errno_t exfat_directory_expand(exfat_directory_t *di) 505 { 506 errno_t rc; 507 507 508 508 if (!di->nodep) … … 521 521 } 522 522 523 int exfat_directory_lookup_free(exfat_directory_t *di, size_t count)524 { 525 int rc;523 errno_t exfat_directory_lookup_free(exfat_directory_t *di, size_t count) 524 { 525 errno_t rc; 526 526 exfat_dentry_t *d; 527 527 size_t found; -
uspace/srv/fs/exfat/exfat_directory.h
r36f0738 rb7fd2a0 55 55 56 56 extern void exfat_directory_init(exfat_directory_t *); 57 extern int exfat_directory_open(exfat_node_t *, exfat_directory_t *);58 extern int exfat_directory_open_parent(exfat_directory_t *, service_id_t,57 extern errno_t exfat_directory_open(exfat_node_t *, exfat_directory_t *); 58 extern errno_t exfat_directory_open_parent(exfat_directory_t *, service_id_t, 59 59 exfat_cluster_t, bool); 60 extern int exfat_directory_close(exfat_directory_t *);60 extern errno_t exfat_directory_close(exfat_directory_t *); 61 61 62 extern int exfat_directory_next(exfat_directory_t *);63 extern int exfat_directory_prev(exfat_directory_t *);64 extern int exfat_directory_seek(exfat_directory_t *, aoff64_t);65 extern int exfat_directory_get(exfat_directory_t *, exfat_dentry_t **);66 extern int exfat_directory_find(exfat_directory_t *, exfat_dentry_clsf_t,62 extern errno_t exfat_directory_next(exfat_directory_t *); 63 extern errno_t exfat_directory_prev(exfat_directory_t *); 64 extern errno_t exfat_directory_seek(exfat_directory_t *, aoff64_t); 65 extern errno_t exfat_directory_get(exfat_directory_t *, exfat_dentry_t **); 66 extern errno_t exfat_directory_find(exfat_directory_t *, exfat_dentry_clsf_t, 67 67 exfat_dentry_t **); 68 extern int exfat_directory_find_continue(exfat_directory_t *,68 extern errno_t exfat_directory_find_continue(exfat_directory_t *, 69 69 exfat_dentry_clsf_t, exfat_dentry_t **); 70 70 71 extern int exfat_directory_read_file(exfat_directory_t *, char *, size_t,71 extern errno_t exfat_directory_read_file(exfat_directory_t *, char *, size_t, 72 72 exfat_file_dentry_t *, exfat_stream_dentry_t *); 73 extern int exfat_directory_read_vollabel(exfat_directory_t *, char *, size_t);74 extern int exfat_directory_sync_file(exfat_directory_t *, exfat_file_dentry_t *,73 extern errno_t exfat_directory_read_vollabel(exfat_directory_t *, char *, size_t); 74 extern errno_t exfat_directory_sync_file(exfat_directory_t *, exfat_file_dentry_t *, 75 75 exfat_stream_dentry_t *); 76 extern int exfat_directory_write_file(exfat_directory_t *, const char *);77 extern int exfat_directory_erase_file(exfat_directory_t *, aoff64_t);76 extern errno_t exfat_directory_write_file(exfat_directory_t *, const char *); 77 extern errno_t exfat_directory_erase_file(exfat_directory_t *, aoff64_t); 78 78 79 79 80 extern int exfat_directory_expand(exfat_directory_t *);81 extern int exfat_directory_lookup_free(exfat_directory_t *, size_t);82 extern int exfat_directory_print(exfat_directory_t *);80 extern errno_t exfat_directory_expand(exfat_directory_t *); 81 extern errno_t exfat_directory_lookup_free(exfat_directory_t *, size_t); 82 extern errno_t exfat_directory_print(exfat_directory_t *); 83 83 84 84 -
uspace/srv/fs/exfat/exfat_fat.c
r36f0738 rb7fd2a0 73 73 * @return EOK on success or an error code. 74 74 */ 75 int75 errno_t 76 76 exfat_cluster_walk(exfat_bs_t *bs, service_id_t service_id, 77 77 exfat_cluster_t firstc, exfat_cluster_t *lastc, uint32_t *numc, … … 80 80 uint32_t clusters = 0; 81 81 exfat_cluster_t clst = firstc; 82 int rc;82 errno_t rc; 83 83 84 84 if (firstc < EXFAT_CLST_FIRST) { … … 122 122 * @return EOK on success or an error code. 123 123 */ 124 int124 errno_t 125 125 exfat_block_get(block_t **block, exfat_bs_t *bs, exfat_node_t *nodep, 126 126 aoff64_t bn, int flags) … … 129 129 exfat_cluster_t currc = 0; 130 130 aoff64_t relbn = bn; 131 int rc;131 errno_t rc; 132 132 133 133 if (!nodep->size) … … 186 186 * @return EOK on success or an error code. 187 187 */ 188 int188 errno_t 189 189 exfat_block_get_by_clst(block_t **block, exfat_bs_t *bs, 190 190 service_id_t service_id, bool fragmented, exfat_cluster_t fcl, … … 194 194 uint32_t max_clusters; 195 195 exfat_cluster_t c = EXFAT_CLST_FIRST; 196 int rc;196 errno_t rc; 197 197 198 198 if (fcl < EXFAT_CLST_FIRST || fcl > DATA_CNT(bs) + 2) … … 229 229 * @return EOK or an error code. 230 230 */ 231 int231 errno_t 232 232 exfat_get_cluster(exfat_bs_t *bs, service_id_t service_id, 233 233 exfat_cluster_t clst, exfat_cluster_t *value) … … 235 235 block_t *b; 236 236 aoff64_t offset; 237 int rc;237 errno_t rc; 238 238 239 239 offset = clst * sizeof(exfat_cluster_t); … … 259 259 * @return EOK on success or an error code. 260 260 */ 261 int261 errno_t 262 262 exfat_set_cluster(exfat_bs_t *bs, service_id_t service_id, 263 263 exfat_cluster_t clst, exfat_cluster_t value) … … 265 265 block_t *b; 266 266 aoff64_t offset; 267 int rc;267 errno_t rc; 268 268 269 269 offset = clst * sizeof(exfat_cluster_t); … … 297 297 * @return EOK on success, an error code otherwise. 298 298 */ 299 int299 errno_t 300 300 exfat_alloc_clusters(exfat_bs_t *bs, service_id_t service_id, unsigned nclsts, 301 301 exfat_cluster_t *mcl, exfat_cluster_t *lcl) … … 304 304 unsigned found = 0; /* top of the free cluster number stack */ 305 305 exfat_cluster_t clst; 306 int rc = EOK;306 errno_t rc = EOK; 307 307 308 308 lifo = (exfat_cluster_t *) malloc(nclsts * sizeof(exfat_cluster_t)); … … 363 363 * @return EOK on success or an error code. 364 364 */ 365 int365 errno_t 366 366 exfat_free_clusters(exfat_bs_t *bs, service_id_t service_id, exfat_cluster_t firstc) 367 367 { 368 368 exfat_cluster_t nextc; 369 int rc;369 errno_t rc; 370 370 371 371 /* Mark all clusters in the chain as free */ … … 396 396 * @return EOK on success or an error code. 397 397 */ 398 int398 errno_t 399 399 exfat_append_clusters(exfat_bs_t *bs, exfat_node_t *nodep, exfat_cluster_t mcl, 400 400 exfat_cluster_t lcl) … … 402 402 service_id_t service_id = nodep->idx->service_id; 403 403 exfat_cluster_t lastc = 0; 404 int rc;404 errno_t rc; 405 405 406 406 if (nodep->firstc == 0) { … … 440 440 * @return EOK on success or an error code. 441 441 */ 442 int exfat_chop_clusters(exfat_bs_t *bs, exfat_node_t *nodep, exfat_cluster_t lcl)443 { 444 int rc;442 errno_t exfat_chop_clusters(exfat_bs_t *bs, exfat_node_t *nodep, exfat_cluster_t lcl) 443 { 444 errno_t rc; 445 445 service_id_t service_id = nodep->idx->service_id; 446 446 … … 486 486 } 487 487 488 int488 errno_t 489 489 exfat_zero_cluster(exfat_bs_t *bs, service_id_t service_id, exfat_cluster_t c) 490 490 { 491 491 size_t i; 492 492 block_t *b; 493 int rc;493 errno_t rc; 494 494 495 495 for (i = 0; i < SPC(bs); i++) { … … 508 508 } 509 509 510 int510 errno_t 511 511 exfat_read_uctable(exfat_bs_t *bs, exfat_node_t *nodep, uint8_t *uctable) 512 512 { 513 513 size_t i, blocks, count; 514 514 block_t *b; 515 int rc;515 errno_t rc; 516 516 blocks = ROUND_UP(nodep->size, BPS(bs))/BPS(bs); 517 517 count = BPS(bs); … … 540 540 * does not contain a exfat file system. 541 541 */ 542 int exfat_sanity_check(exfat_bs_t *bs)542 errno_t exfat_sanity_check(exfat_bs_t *bs) 543 543 { 544 544 if (str_cmp((char const *)bs->oem_name, "EXFAT ")) -
uspace/srv/fs/exfat/exfat_fat.h
r36f0738 rb7fd2a0 61 61 exfat_cluster_walk((bs), (sid), (fc), NULL, (numc), (uint32_t) -1) 62 62 63 extern int exfat_cluster_walk(struct exfat_bs *, service_id_t,63 extern errno_t exfat_cluster_walk(struct exfat_bs *, service_id_t, 64 64 exfat_cluster_t, exfat_cluster_t *, uint32_t *, uint32_t); 65 extern int exfat_block_get(block_t **, struct exfat_bs *, struct exfat_node *,65 extern errno_t exfat_block_get(block_t **, struct exfat_bs *, struct exfat_node *, 66 66 aoff64_t, int); 67 extern int exfat_block_get_by_clst(block_t **, struct exfat_bs *, service_id_t,67 extern errno_t exfat_block_get_by_clst(block_t **, struct exfat_bs *, service_id_t, 68 68 bool, exfat_cluster_t, exfat_cluster_t *, aoff64_t, int); 69 69 70 extern int exfat_get_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t,70 extern errno_t exfat_get_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t, 71 71 exfat_cluster_t *); 72 extern int exfat_set_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t,72 extern errno_t exfat_set_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t, 73 73 exfat_cluster_t); 74 extern int exfat_sanity_check(struct exfat_bs *);74 extern errno_t exfat_sanity_check(struct exfat_bs *); 75 75 76 extern int exfat_append_clusters(struct exfat_bs *, struct exfat_node *,76 extern errno_t exfat_append_clusters(struct exfat_bs *, struct exfat_node *, 77 77 exfat_cluster_t, exfat_cluster_t); 78 extern int exfat_chop_clusters(struct exfat_bs *, struct exfat_node *,78 extern errno_t exfat_chop_clusters(struct exfat_bs *, struct exfat_node *, 79 79 exfat_cluster_t); 80 extern int exfat_alloc_clusters(struct exfat_bs *, service_id_t, unsigned,80 extern errno_t exfat_alloc_clusters(struct exfat_bs *, service_id_t, unsigned, 81 81 exfat_cluster_t *, exfat_cluster_t *); 82 extern int exfat_free_clusters(struct exfat_bs *, service_id_t, exfat_cluster_t);83 extern int exfat_zero_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t);82 extern errno_t exfat_free_clusters(struct exfat_bs *, service_id_t, exfat_cluster_t); 83 extern errno_t exfat_zero_cluster(struct exfat_bs *, service_id_t, exfat_cluster_t); 84 84 85 extern int exfat_read_uctable(struct exfat_bs *, struct exfat_node *,85 extern errno_t exfat_read_uctable(struct exfat_bs *, struct exfat_node *, 86 86 uint8_t *); 87 87 -
uspace/srv/fs/exfat/exfat_idx.c
r36f0738 rb7fd2a0 328 328 } 329 329 330 static int exfat_idx_create(exfat_idx_t **fidxp, service_id_t service_id)330 static errno_t exfat_idx_create(exfat_idx_t **fidxp, service_id_t service_id) 331 331 { 332 332 exfat_idx_t *fidx; … … 350 350 } 351 351 352 int exfat_idx_get_new(exfat_idx_t **fidxp, service_id_t service_id)352 errno_t exfat_idx_get_new(exfat_idx_t **fidxp, service_id_t service_id) 353 353 { 354 354 exfat_idx_t *fidx; 355 int rc;355 errno_t rc; 356 356 357 357 fibril_mutex_lock(&used_lock); … … 386 386 fidx = hash_table_get_inst(l, exfat_idx_t, uph_link); 387 387 } else { 388 int rc;388 errno_t rc; 389 389 390 390 rc = exfat_idx_create(&fidx, service_id); … … 468 468 } 469 469 470 int exfat_idx_init(void)470 errno_t exfat_idx_init(void) 471 471 { 472 472 if (!hash_table_create(&up_hash, 0, 0, &uph_ops)) … … 487 487 } 488 488 489 int exfat_idx_init_by_service_id(service_id_t service_id)489 errno_t exfat_idx_init_by_service_id(service_id_t service_id) 490 490 { 491 491 unused_t *u; 492 int rc = EOK;492 errno_t rc = EOK; 493 493 494 494 u = (unused_t *) malloc(sizeof(unused_t)); -
uspace/srv/fs/exfat/exfat_ops.c
r36f0738 rb7fd2a0 72 72 */ 73 73 74 static int exfat_root_get(fs_node_t **, service_id_t);75 static int exfat_match(fs_node_t **, fs_node_t *, const char *);76 static int exfat_node_get(fs_node_t **, service_id_t, fs_index_t);77 static int exfat_node_open(fs_node_t *);78 /* static int exfat_node_put(fs_node_t *); */79 static int exfat_create_node(fs_node_t **, service_id_t, int);80 static int exfat_destroy_node(fs_node_t *);81 static int exfat_link(fs_node_t *, fs_node_t *, const char *);82 static int exfat_unlink(fs_node_t *, fs_node_t *, const char *);83 static int exfat_has_children(bool *, fs_node_t *);74 static errno_t exfat_root_get(fs_node_t **, service_id_t); 75 static errno_t exfat_match(fs_node_t **, fs_node_t *, const char *); 76 static errno_t exfat_node_get(fs_node_t **, service_id_t, fs_index_t); 77 static errno_t exfat_node_open(fs_node_t *); 78 /* static errno_t exfat_node_put(fs_node_t *); */ 79 static errno_t exfat_create_node(fs_node_t **, service_id_t, int); 80 static errno_t exfat_destroy_node(fs_node_t *); 81 static errno_t exfat_link(fs_node_t *, fs_node_t *, const char *); 82 static errno_t exfat_unlink(fs_node_t *, fs_node_t *, const char *); 83 static errno_t exfat_has_children(bool *, fs_node_t *); 84 84 static fs_index_t exfat_index_get(fs_node_t *); 85 85 static aoff64_t exfat_size_get(fs_node_t *); … … 88 88 static bool exfat_is_file(fs_node_t *node); 89 89 static service_id_t exfat_service_get(fs_node_t *node); 90 static int exfat_size_block(service_id_t, uint32_t *);91 static int exfat_total_block_count(service_id_t, uint64_t *);92 static int exfat_free_block_count(service_id_t, uint64_t *);90 static errno_t exfat_size_block(service_id_t, uint32_t *); 91 static errno_t exfat_total_block_count(service_id_t, uint64_t *); 92 static errno_t exfat_free_block_count(service_id_t, uint64_t *); 93 93 94 94 /* … … 114 114 } 115 115 116 static int exfat_node_sync(exfat_node_t *node)117 { 118 int rc;116 static errno_t exfat_node_sync(exfat_node_t *node) 117 { 118 errno_t rc; 119 119 exfat_directory_t di; 120 120 exfat_file_dentry_t df; … … 155 155 } 156 156 157 static int exfat_node_fini_by_service_id(service_id_t service_id)158 { 159 int rc;157 static errno_t exfat_node_fini_by_service_id(service_id_t service_id) 158 { 159 errno_t rc; 160 160 161 161 /* … … 211 211 } 212 212 213 static int exfat_node_get_new(exfat_node_t **nodepp)213 static errno_t exfat_node_get_new(exfat_node_t **nodepp) 214 214 { 215 215 fs_node_t *fn; 216 216 exfat_node_t *nodep; 217 int rc;217 errno_t rc; 218 218 219 219 fibril_mutex_lock(&ffn_mutex); … … 269 269 } 270 270 271 static int exfat_node_get_new_by_pos(exfat_node_t **nodepp,271 static errno_t exfat_node_get_new_by_pos(exfat_node_t **nodepp, 272 272 service_id_t service_id, exfat_cluster_t pfc, unsigned pdi) 273 273 { … … 287 287 * @param idxp Locked index structure. 288 288 */ 289 static int exfat_node_get_core(exfat_node_t **nodepp, exfat_idx_t *idxp)289 static errno_t exfat_node_get_core(exfat_node_t **nodepp, exfat_idx_t *idxp) 290 290 { 291 291 exfat_dentry_t *d; 292 292 exfat_node_t *nodep = NULL; 293 293 exfat_directory_t di; 294 int rc;294 errno_t rc; 295 295 296 296 if (idxp->nodep) { … … 398 398 } 399 399 400 int exfat_node_expand(service_id_t service_id, exfat_node_t *nodep,400 errno_t exfat_node_expand(service_id_t service_id, exfat_node_t *nodep, 401 401 exfat_cluster_t clusters) 402 402 { 403 403 exfat_bs_t *bs; 404 int rc;404 errno_t rc; 405 405 bs = block_bb_get(service_id); 406 406 … … 443 443 } 444 444 445 static int exfat_node_shrink(service_id_t service_id, exfat_node_t *nodep,445 static errno_t exfat_node_shrink(service_id_t service_id, exfat_node_t *nodep, 446 446 aoff64_t size) 447 447 { 448 448 exfat_bs_t *bs; 449 int rc;449 errno_t rc; 450 450 bs = block_bb_get(service_id); 451 451 … … 491 491 */ 492 492 493 int exfat_root_get(fs_node_t **rfn, service_id_t service_id)493 errno_t exfat_root_get(fs_node_t **rfn, service_id_t service_id) 494 494 { 495 495 return exfat_node_get(rfn, service_id, EXFAT_ROOT_IDX); 496 496 } 497 497 498 int exfat_bitmap_get(fs_node_t **rfn, service_id_t service_id)498 errno_t exfat_bitmap_get(fs_node_t **rfn, service_id_t service_id) 499 499 { 500 500 return exfat_node_get(rfn, service_id, EXFAT_BITMAP_IDX); 501 501 } 502 502 503 int exfat_uctable_get(fs_node_t **rfn, service_id_t service_id)503 errno_t exfat_uctable_get(fs_node_t **rfn, service_id_t service_id) 504 504 { 505 505 return exfat_node_get(rfn, service_id, EXFAT_UCTABLE_IDX); … … 507 507 508 508 509 int exfat_match(fs_node_t **rfn, fs_node_t *pfn, const char *component)509 errno_t exfat_match(fs_node_t **rfn, fs_node_t *pfn, const char *component) 510 510 { 511 511 exfat_node_t *parentp = EXFAT_NODE(pfn); … … 514 514 exfat_stream_dentry_t ds; 515 515 service_id_t service_id; 516 int rc;516 errno_t rc; 517 517 518 518 fibril_mutex_lock(&parentp->idx->lock); … … 565 565 566 566 /** Instantiate a exFAT in-core node. */ 567 int exfat_node_get(fs_node_t **rfn, service_id_t service_id, fs_index_t index)567 errno_t exfat_node_get(fs_node_t **rfn, service_id_t service_id, fs_index_t index) 568 568 { 569 569 exfat_node_t *nodep; 570 570 exfat_idx_t *idxp; 571 int rc;571 errno_t rc; 572 572 573 573 idxp = exfat_idx_get_by_index(service_id, index); … … 584 584 } 585 585 586 int exfat_node_open(fs_node_t *fn)586 errno_t exfat_node_open(fs_node_t *fn) 587 587 { 588 588 /* … … 593 593 } 594 594 595 int exfat_node_put(fs_node_t *fn)595 errno_t exfat_node_put(fs_node_t *fn) 596 596 { 597 597 if (fn == NULL) … … 625 625 } 626 626 627 int exfat_create_node(fs_node_t **rfn, service_id_t service_id, int flags)627 errno_t exfat_create_node(fs_node_t **rfn, service_id_t service_id, int flags) 628 628 { 629 629 exfat_idx_t *idxp; 630 630 exfat_node_t *nodep; 631 631 exfat_bs_t *bs; 632 int rc;632 errno_t rc; 633 633 634 634 bs = block_bb_get(service_id); … … 677 677 } 678 678 679 int exfat_destroy_node(fs_node_t *fn)679 errno_t exfat_destroy_node(fs_node_t *fn) 680 680 { 681 681 exfat_node_t *nodep = EXFAT_NODE(fn); 682 682 exfat_bs_t *bs; 683 683 bool has_children; 684 int rc;684 errno_t rc; 685 685 686 686 /* … … 718 718 } 719 719 720 int exfat_link(fs_node_t *pfn, fs_node_t *cfn, const char *name)720 errno_t exfat_link(fs_node_t *pfn, fs_node_t *cfn, const char *name) 721 721 { 722 722 exfat_node_t *parentp = EXFAT_NODE(pfn); 723 723 exfat_node_t *childp = EXFAT_NODE(cfn); 724 724 exfat_directory_t di; 725 int rc;725 errno_t rc; 726 726 727 727 fibril_mutex_lock(&childp->lock); … … 783 783 } 784 784 785 int exfat_unlink(fs_node_t *pfn, fs_node_t *cfn, const char *nm)785 errno_t exfat_unlink(fs_node_t *pfn, fs_node_t *cfn, const char *nm) 786 786 { 787 787 exfat_node_t *parentp = EXFAT_NODE(pfn); 788 788 exfat_node_t *childp = EXFAT_NODE(cfn); 789 789 bool has_children; 790 int rc;790 errno_t rc; 791 791 792 792 if (!parentp) … … 838 838 } 839 839 840 int exfat_has_children(bool *has_children, fs_node_t *fn)840 errno_t exfat_has_children(bool *has_children, fs_node_t *fn) 841 841 { 842 842 exfat_directory_t di; 843 843 exfat_dentry_t *d; 844 844 exfat_node_t *nodep = EXFAT_NODE(fn); 845 int rc;845 errno_t rc; 846 846 847 847 *has_children = false; … … 915 915 } 916 916 917 int exfat_size_block(service_id_t service_id, uint32_t *size)917 errno_t exfat_size_block(service_id_t service_id, uint32_t *size) 918 918 { 919 919 exfat_bs_t *bs; … … 924 924 } 925 925 926 int exfat_total_block_count(service_id_t service_id, uint64_t *count)926 errno_t exfat_total_block_count(service_id_t service_id, uint64_t *count) 927 927 { 928 928 exfat_bs_t *bs; … … 933 933 } 934 934 935 int exfat_free_block_count(service_id_t service_id, uint64_t *count)935 errno_t exfat_free_block_count(service_id_t service_id, uint64_t *count) 936 936 { 937 937 fs_node_t *node = NULL; … … 941 941 uint64_t block_count; 942 942 unsigned sector; 943 int rc;943 errno_t rc; 944 944 945 945 rc = exfat_total_block_count(service_id, &block_count); … … 1015 1015 }; 1016 1016 1017 static int exfat_fs_open(service_id_t service_id, enum cache_mode cmode,1017 static errno_t exfat_fs_open(service_id_t service_id, enum cache_mode cmode, 1018 1018 fs_node_t **rrfn, exfat_idx_t **rridxp, vfs_fs_probe_info_t *info) 1019 1019 { 1020 int rc;1020 errno_t rc; 1021 1021 exfat_node_t *rootp = NULL, *bitmapp = NULL, *uctablep = NULL; 1022 1022 exfat_bs_t *bs; … … 1267 1267 */ 1268 1268 1269 static int exfat_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info)1270 { 1271 int rc;1269 static errno_t exfat_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info) 1270 { 1271 errno_t rc; 1272 1272 exfat_idx_t *ridxp; 1273 1273 fs_node_t *rfn; … … 1281 1281 } 1282 1282 1283 static int1283 static errno_t 1284 1284 exfat_mounted(service_id_t service_id, const char *opts, fs_index_t *index, 1285 1285 aoff64_t *size) 1286 1286 { 1287 int rc;1287 errno_t rc; 1288 1288 enum cache_mode cmode; 1289 1289 exfat_idx_t *ridxp; … … 1306 1306 } 1307 1307 1308 static int exfat_unmounted(service_id_t service_id)1308 static errno_t exfat_unmounted(service_id_t service_id) 1309 1309 { 1310 1310 fs_node_t *rfn; 1311 int rc;1311 errno_t rc; 1312 1312 1313 1313 rc = exfat_root_get(&rfn, service_id); … … 1319 1319 } 1320 1320 1321 static int1321 static errno_t 1322 1322 exfat_read(service_id_t service_id, fs_index_t index, aoff64_t pos, 1323 1323 size_t *rbytes) … … 1328 1328 size_t bytes = 0; 1329 1329 block_t *b; 1330 int rc;1330 errno_t rc; 1331 1331 1332 1332 rc = exfat_node_get(&fn, service_id, index); … … 1438 1438 } 1439 1439 1440 static int exfat_close(service_id_t service_id, fs_index_t index)1441 { 1442 return EOK; 1443 } 1444 1445 static int exfat_sync(service_id_t service_id, fs_index_t index)1440 static errno_t exfat_close(service_id_t service_id, fs_index_t index) 1441 { 1442 return EOK; 1443 } 1444 1445 static errno_t exfat_sync(service_id_t service_id, fs_index_t index) 1446 1446 { 1447 1447 fs_node_t *fn; 1448 int rc = exfat_node_get(&fn, service_id, index);1448 errno_t rc = exfat_node_get(&fn, service_id, index); 1449 1449 if (rc != EOK) 1450 1450 return rc; … … 1461 1461 } 1462 1462 1463 static int1463 static errno_t 1464 1464 exfat_write(service_id_t service_id, fs_index_t index, aoff64_t pos, 1465 1465 size_t *wbytes, aoff64_t *nsize) … … 1472 1472 aoff64_t boundary; 1473 1473 int flags = BLOCK_FLAGS_NONE; 1474 int rc;1474 errno_t rc; 1475 1475 1476 1476 rc = exfat_node_get(&fn, service_id, index); … … 1548 1548 } 1549 1549 1550 static int1550 static errno_t 1551 1551 exfat_truncate(service_id_t service_id, fs_index_t index, aoff64_t size) 1552 1552 { … … 1554 1554 exfat_node_t *nodep; 1555 1555 exfat_bs_t *bs; 1556 int rc;1556 errno_t rc; 1557 1557 1558 1558 rc = exfat_node_get(&fn, service_id, index); … … 1584 1584 } 1585 1585 1586 int rc2 = exfat_node_put(fn);1586 errno_t rc2 = exfat_node_put(fn); 1587 1587 if (rc == EOK && rc2 != EOK) 1588 1588 rc = rc2; … … 1591 1591 } 1592 1592 1593 static int exfat_destroy(service_id_t service_id, fs_index_t index)1593 static errno_t exfat_destroy(service_id_t service_id, fs_index_t index) 1594 1594 { 1595 1595 fs_node_t *fn; 1596 1596 exfat_node_t *nodep; 1597 int rc;1597 errno_t rc; 1598 1598 1599 1599 rc = exfat_node_get(&fn, service_id, index);
Note:
See TracChangeset
for help on using the changeset viewer.
