Changeset 5a6cc679 in mainline for uspace/srv/fs/udf
- Timestamp:
- 2018-01-31T02:21:24Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a0a9cc2
- Parents:
- 132ab5d1
- Location:
- uspace/srv/fs/udf
- Files:
-
- 8 edited
-
udf.c (modified) (1 diff)
-
udf_file.c (modified) (12 diffs)
-
udf_file.h (modified) (1 diff)
-
udf_idx.c (modified) (5 diffs)
-
udf_idx.h (modified) (1 diff)
-
udf_ops.c (modified) (17 diffs)
-
udf_volume.c (modified) (10 diffs)
-
udf_volume.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/udf/udf.c
r132ab5d1 r5a6cc679 80 80 } 81 81 82 int rc = fs_register(vfs_sess, &udf_vfs_info, &udf_ops,82 errno_t rc = fs_register(vfs_sess, &udf_vfs_info, &udf_ops, 83 83 &udf_libfs_ops); 84 84 if (rc != EOK) -
uspace/srv/fs/udf/udf_file.c
r132ab5d1 r5a6cc679 57 57 * 58 58 */ 59 static int udf_read_extended_allocator(udf_node_t *node, uint16_t icb_flag,59 static errno_t udf_read_extended_allocator(udf_node_t *node, uint16_t icb_flag, 60 60 uint32_t pos) 61 61 { 62 62 block_t *block = NULL; 63 int rc = block_get(&block, node->instance->service_id, pos,63 errno_t rc = block_get(&block, node->instance->service_id, pos, 64 64 BLOCK_FLAGS_NONE); 65 65 if (rc != EOK) … … 93 93 * 94 94 */ 95 int udf_read_allocation_sequence(udf_node_t *node, uint8_t *af,95 errno_t udf_read_allocation_sequence(udf_node_t *node, uint8_t *af, 96 96 uint16_t icb_flag, uint32_t start_alloc, uint32_t len) 97 97 { … … 233 233 * @return EOK on success or an error code. 234 234 */ 235 int udf_read_icb(udf_node_t *node)235 errno_t udf_read_icb(udf_node_t *node) 236 236 { 237 237 while (true) { … … 239 239 240 240 block_t *block = NULL; 241 int rc = block_get(&block, node->instance->service_id, pos,241 errno_t rc = block_get(&block, node->instance->service_id, pos, 242 242 BLOCK_FLAGS_NONE); 243 243 if (rc != EOK) … … 303 303 * 304 304 */ 305 int udf_node_get_core(udf_node_t *node)305 errno_t udf_node_get_core(udf_node_t *node) 306 306 { 307 307 node->link_cnt = 1; … … 318 318 * 319 319 */ 320 static int udf_get_fid_in_data(udf_file_identifier_descriptor_t **fid,320 static errno_t udf_get_fid_in_data(udf_file_identifier_descriptor_t **fid, 321 321 udf_node_t *node, aoff64_t pos) 322 322 { … … 369 369 * 370 370 */ 371 int udf_get_fid(udf_file_identifier_descriptor_t **fid, block_t **block,371 errno_t udf_get_fid(udf_file_identifier_descriptor_t **fid, block_t **block, 372 372 udf_node_t *node, aoff64_t pos) 373 373 { … … 388 388 * 389 389 */ 390 int udf_get_fid_in_allocator(udf_file_identifier_descriptor_t **fid,390 errno_t udf_get_fid_in_allocator(udf_file_identifier_descriptor_t **fid, 391 391 block_t **block, udf_node_t *node, aoff64_t pos) 392 392 { … … 402 402 size_t i = 0; 403 403 while (i * node->instance->sector_size < node->allocators[j].length) { 404 int rc = block_get(block, node->instance->service_id,404 errno_t rc = block_get(block, node->instance->service_id, 405 405 node->allocators[j].position + i, BLOCK_FLAGS_NONE); 406 406 if (rc != EOK) { … … 469 469 * 470 470 */ 471 int udf_get_fid_in_sector(udf_file_identifier_descriptor_t **fid,471 errno_t udf_get_fid_in_sector(udf_file_identifier_descriptor_t **fid, 472 472 block_t **block, udf_node_t *node, aoff64_t pos, size_t *n, void **buf, 473 473 size_t *len) … … 576 576 * 577 577 */ 578 int udf_read_file(size_t *read_len, ipc_callid_t callid, udf_node_t *node,578 errno_t udf_read_file(size_t *read_len, ipc_callid_t callid, udf_node_t *node, 579 579 aoff64_t pos, size_t len) 580 580 { … … 594 594 595 595 block_t *block = NULL; 596 int rc = block_get(&block, node->instance->service_id,596 errno_t rc = block_get(&block, node->instance->service_id, 597 597 node->allocators[i].position + (sector_num - sector_cnt), 598 598 BLOCK_FLAGS_NONE); -
uspace/srv/fs/udf/udf_file.h
r132ab5d1 r5a6cc679 194 194 }__attribute__((packed)) udf_space_bitmap_descriptor_t; 195 195 196 extern int udf_node_get_core(udf_node_t *);197 extern int udf_read_icb(udf_node_t *);198 extern int udf_read_allocation_sequence(udf_node_t *, uint8_t *, uint16_t,196 extern errno_t udf_node_get_core(udf_node_t *); 197 extern errno_t udf_read_icb(udf_node_t *); 198 extern errno_t udf_read_allocation_sequence(udf_node_t *, uint8_t *, uint16_t, 199 199 uint32_t, uint32_t); 200 extern int udf_read_file(size_t *, ipc_callid_t, udf_node_t *, aoff64_t,200 extern errno_t udf_read_file(size_t *, ipc_callid_t, udf_node_t *, aoff64_t, 201 201 size_t); 202 extern int udf_get_fid(udf_file_identifier_descriptor_t **, block_t **,202 extern errno_t udf_get_fid(udf_file_identifier_descriptor_t **, block_t **, 203 203 udf_node_t *, aoff64_t); 204 extern int udf_get_fid_in_allocator(udf_file_identifier_descriptor_t **,204 extern errno_t udf_get_fid_in_allocator(udf_file_identifier_descriptor_t **, 205 205 block_t **, udf_node_t *, aoff64_t); 206 extern int udf_get_fid_in_sector(udf_file_identifier_descriptor_t **,206 extern errno_t udf_get_fid_in_sector(udf_file_identifier_descriptor_t **, 207 207 block_t **, udf_node_t *, aoff64_t, size_t *, void **, size_t *); 208 208 -
uspace/srv/fs/udf/udf_idx.c
r132ab5d1 r5a6cc679 91 91 * 92 92 */ 93 int udf_idx_init(void)93 errno_t udf_idx_init(void) 94 94 { 95 95 if (!hash_table_create(&udf_idx, 0, 0, &udf_idx_ops)) … … 104 104 * 105 105 */ 106 int udf_idx_fini(void)106 errno_t udf_idx_fini(void) 107 107 { 108 108 hash_table_destroy(&udf_idx); … … 119 119 * 120 120 */ 121 int udf_idx_get(udf_node_t **udfn, udf_instance_t *instance, fs_index_t index)121 errno_t udf_idx_get(udf_node_t **udfn, udf_instance_t *instance, fs_index_t index) 122 122 { 123 123 fibril_mutex_lock(&udf_idx_lock); … … 153 153 * 154 154 */ 155 int udf_idx_add(udf_node_t **udfn, udf_instance_t *instance, fs_index_t index)155 errno_t udf_idx_add(udf_node_t **udfn, udf_instance_t *instance, fs_index_t index) 156 156 { 157 157 fibril_mutex_lock(&udf_idx_lock); … … 199 199 * 200 200 */ 201 int udf_idx_del(udf_node_t *node)201 errno_t udf_idx_del(udf_node_t *node) 202 202 { 203 203 assert(node->ref_cnt == 0); -
uspace/srv/fs/udf/udf_idx.h
r132ab5d1 r5a6cc679 36 36 #include "udf.h" 37 37 38 extern int udf_idx_init(void);39 extern int udf_idx_fini(void);40 extern int udf_idx_get(udf_node_t **, udf_instance_t *, fs_index_t);41 extern int udf_idx_add(udf_node_t **, udf_instance_t *, fs_index_t);42 extern int udf_idx_del(udf_node_t *);38 extern errno_t udf_idx_init(void); 39 extern errno_t udf_idx_fini(void); 40 extern errno_t udf_idx_get(udf_node_t **, udf_instance_t *, fs_index_t); 41 extern errno_t udf_idx_add(udf_node_t **, udf_instance_t *, fs_index_t); 42 extern errno_t udf_idx_del(udf_node_t *); 43 43 44 44 #endif /* UDF_IDX_H_ */ -
uspace/srv/fs/udf/udf_ops.c
r132ab5d1 r5a6cc679 68 68 static LIST_INITIALIZE(ffn_list); 69 69 70 static int udf_node_get(fs_node_t **rfn, service_id_t service_id,70 static errno_t udf_node_get(fs_node_t **rfn, service_id_t service_id, 71 71 fs_index_t index) 72 72 { 73 73 udf_instance_t *instance; 74 int rc = fs_instance_get(service_id, (void **) &instance);74 errno_t rc = fs_instance_get(service_id, (void **) &instance); 75 75 if (rc != EOK) 76 76 return rc; … … 94 94 } 95 95 96 static int udf_root_get(fs_node_t **rfn, service_id_t service_id)96 static errno_t udf_root_get(fs_node_t **rfn, service_id_t service_id) 97 97 { 98 98 udf_instance_t *instance; 99 int rc = fs_instance_get(service_id, (void **) &instance);99 errno_t rc = fs_instance_get(service_id, (void **) &instance); 100 100 if (rc != EOK) 101 101 return rc; … … 114 114 } 115 115 116 static int udf_match(fs_node_t **rfn, fs_node_t *pfn, const char *component)116 static errno_t udf_match(fs_node_t **rfn, fs_node_t *pfn, const char *component) 117 117 { 118 118 char *name = malloc(MAX_FILE_NAME_LEN + 1); … … 132 132 133 133 if (str_casecmp(name, component) == 0) { 134 int rc = udf_node_get(rfn, udf_service_get(pfn),134 errno_t rc = udf_node_get(rfn, udf_service_get(pfn), 135 135 udf_long_ad_to_pos(UDF_NODE(pfn)->instance, &long_ad)); 136 136 … … 143 143 144 144 if (block != NULL) { 145 int rc = block_put(block);145 errno_t rc = block_put(block); 146 146 if (rc != EOK) 147 147 return rc; … … 155 155 } 156 156 157 static int udf_node_open(fs_node_t *fn)158 { 159 return EOK; 160 } 161 162 static int udf_node_put(fs_node_t *fn)157 static errno_t udf_node_open(fs_node_t *fn) 158 { 159 return EOK; 160 } 161 162 static errno_t udf_node_put(fs_node_t *fn) 163 163 { 164 164 udf_node_t *node = UDF_NODE(fn); … … 177 177 } 178 178 179 static int udf_create_node(fs_node_t **rfn, service_id_t service_id, int flags)180 { 181 return ENOTSUP; 182 } 183 184 static int udf_destroy_node(fs_node_t *fn)185 { 186 return ENOTSUP; 187 } 188 189 static int udf_link(fs_node_t *pfn, fs_node_t *cfn, const char *name)190 { 191 return ENOTSUP; 192 } 193 194 static int udf_unlink(fs_node_t *pfn, fs_node_t *cfn, const char *nm)195 { 196 return ENOTSUP; 197 } 198 199 static int udf_has_children(bool *has_children, fs_node_t *fn)179 static errno_t udf_create_node(fs_node_t **rfn, service_id_t service_id, int flags) 180 { 181 return ENOTSUP; 182 } 183 184 static errno_t udf_destroy_node(fs_node_t *fn) 185 { 186 return ENOTSUP; 187 } 188 189 static errno_t udf_link(fs_node_t *pfn, fs_node_t *cfn, const char *name) 190 { 191 return ENOTSUP; 192 } 193 194 static errno_t udf_unlink(fs_node_t *pfn, fs_node_t *cfn, const char *nm) 195 { 196 return ENOTSUP; 197 } 198 199 static errno_t udf_has_children(bool *has_children, fs_node_t *fn) 200 200 { 201 201 *has_children = true; … … 248 248 } 249 249 250 static int udf_size_block(service_id_t service_id, uint32_t *size)250 static errno_t udf_size_block(service_id_t service_id, uint32_t *size) 251 251 { 252 252 udf_instance_t *instance; 253 int rc = fs_instance_get(service_id, (void **) &instance);253 errno_t rc = fs_instance_get(service_id, (void **) &instance); 254 254 if (rc != EOK) 255 255 return rc; … … 263 263 } 264 264 265 static int udf_total_block_count(service_id_t service_id, uint64_t *count)265 static errno_t udf_total_block_count(service_id_t service_id, uint64_t *count) 266 266 { 267 267 *count = 0; … … 270 270 } 271 271 272 static int udf_free_block_count(service_id_t service_id, uint64_t *count)272 static errno_t udf_free_block_count(service_id_t service_id, uint64_t *count) 273 273 { 274 274 *count = 0; … … 299 299 }; 300 300 301 static int udf_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info)302 { 303 return ENOTSUP; 304 } 305 306 static int udf_mounted(service_id_t service_id, const char *opts,301 static errno_t udf_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info) 302 { 303 return ENOTSUP; 304 } 305 306 static errno_t udf_mounted(service_id_t service_id, const char *opts, 307 307 fs_index_t *index, aoff64_t *size) 308 308 { … … 330 330 331 331 /* initialize block cache */ 332 int rc = block_init(service_id, MAX_SIZE);332 errno_t rc = block_init(service_id, MAX_SIZE); 333 333 if (rc != EOK) 334 334 return rc; … … 415 415 } 416 416 417 static int udf_unmounted(service_id_t service_id)417 static errno_t udf_unmounted(service_id_t service_id) 418 418 { 419 419 fs_node_t *fn; 420 int rc = udf_root_get(&fn, service_id);420 errno_t rc = udf_root_get(&fn, service_id); 421 421 if (rc != EOK) 422 422 return rc; … … 449 449 } 450 450 451 static int udf_read(service_id_t service_id, fs_index_t index, aoff64_t pos,451 static errno_t udf_read(service_id_t service_id, fs_index_t index, aoff64_t pos, 452 452 size_t *rbytes) 453 453 { 454 454 udf_instance_t *instance; 455 int rc = fs_instance_get(service_id, (void **) &instance);455 errno_t rc = fs_instance_get(service_id, (void **) &instance); 456 456 if (rc != EOK) 457 457 return rc; … … 523 523 } 524 524 525 static int udf_close(service_id_t service_id, fs_index_t index)526 { 527 return EOK; 528 } 529 530 static int udf_sync(service_id_t service_id, fs_index_t index)531 { 532 return ENOTSUP; 533 } 534 535 static int udf_write(service_id_t service_id, fs_index_t index, aoff64_t pos,525 static errno_t udf_close(service_id_t service_id, fs_index_t index) 526 { 527 return EOK; 528 } 529 530 static errno_t udf_sync(service_id_t service_id, fs_index_t index) 531 { 532 return ENOTSUP; 533 } 534 535 static errno_t udf_write(service_id_t service_id, fs_index_t index, aoff64_t pos, 536 536 size_t *wbytes, aoff64_t *nsize) 537 537 { … … 539 539 } 540 540 541 static int udf_truncate(service_id_t service_id, fs_index_t index,541 static errno_t udf_truncate(service_id_t service_id, fs_index_t index, 542 542 aoff64_t size) 543 543 { … … 545 545 } 546 546 547 static int udf_destroy(service_id_t service_id, fs_index_t index)547 static errno_t udf_destroy(service_id_t service_id, fs_index_t index) 548 548 { 549 549 return ENOTSUP; -
uspace/srv/fs/udf/udf_volume.c
r132ab5d1 r5a6cc679 84 84 * 85 85 */ 86 static int udf_volume_recongnition_structure_test(service_id_t service_id,86 static errno_t udf_volume_recongnition_structure_test(service_id_t service_id, 87 87 aoff64_t addr, udf_vrs_descriptor_t *vd) 88 88 { … … 100 100 * @return EOK on success or an error code. 101 101 */ 102 int udf_volume_recongnition(service_id_t service_id)102 errno_t udf_volume_recongnition(service_id_t service_id) 103 103 { 104 104 aoff64_t addr = VRS_ADDR; … … 109 109 return ENOMEM; 110 110 111 int rc = udf_volume_recongnition_structure_test(service_id, addr, vd);111 errno_t rc = udf_volume_recongnition_structure_test(service_id, addr, vd); 112 112 if (rc != EOK) { 113 113 free(vd); … … 170 170 * 171 171 */ 172 static int udf_get_anchor_volume_descriptor_by_ssize(service_id_t service_id,172 static errno_t udf_get_anchor_volume_descriptor_by_ssize(service_id_t service_id, 173 173 udf_anchor_volume_descriptor_t *avd, uint32_t sector_size) 174 174 { 175 int rc = block_read_bytes_direct(service_id,175 errno_t rc = block_read_bytes_direct(service_id, 176 176 UDF_AVDP_SECTOR * sector_size, 177 177 sizeof(udf_anchor_volume_descriptor_t), avd); … … 207 207 * 208 208 */ 209 int udf_get_anchor_volume_descriptor(service_id_t service_id,209 errno_t udf_get_anchor_volume_descriptor(service_id_t service_id, 210 210 udf_anchor_volume_descriptor_t *avd) 211 211 { … … 213 213 214 214 udf_instance_t *instance; 215 int rc = fs_instance_get(service_id, (void **) &instance);215 errno_t rc = fs_instance_get(service_id, (void **) &instance); 216 216 if (rc != EOK) 217 217 return rc; … … 360 360 * 361 361 */ 362 static int udf_read_virtual_partition(udf_instance_t *instance, uint32_t pos,362 static errno_t udf_read_virtual_partition(udf_instance_t *instance, uint32_t pos, 363 363 uint32_t id) 364 364 { 365 365 block_t *block = NULL; 366 int rc = block_get(&block, instance->service_id, pos,366 errno_t rc = block_get(&block, instance->service_id, pos, 367 367 BLOCK_FLAGS_NONE); 368 368 if (rc != EOK) … … 441 441 * 442 442 */ 443 static int udf_fill_volume_info(udf_logical_volume_descriptor_t *lvd,443 static errno_t udf_fill_volume_info(udf_logical_volume_descriptor_t *lvd, 444 444 size_t lvd_cnt, udf_partition_descriptor_t *pd, size_t pd_cnt, 445 445 udf_instance_t *instance) … … 553 553 instance->partitions[j].number = 554 554 FLE16(metadata->partition_number); 555 int rc = udf_read_virtual_partition(instance,555 errno_t rc = udf_read_virtual_partition(instance, 556 556 FLE32(metadata->metadata_fileloc) + 557 557 FLE32(pd[pd_num].starting_location), j); … … 601 601 * 602 602 */ 603 int udf_read_volume_descriptor_sequence(service_id_t service_id,603 errno_t udf_read_volume_descriptor_sequence(service_id_t service_id, 604 604 udf_extent_t addr) 605 605 { 606 606 udf_instance_t *instance; 607 int rc = fs_instance_get(service_id, (void **) &instance);607 errno_t rc = fs_instance_get(service_id, (void **) &instance); 608 608 if (rc != EOK) 609 609 return rc; -
uspace/srv/fs/udf/udf_volume.h
r132ab5d1 r5a6cc679 212 212 } __attribute__((packed)) udf_partition_header_descriptor_t; 213 213 214 extern int udf_volume_recongnition(service_id_t);215 extern int udf_get_anchor_volume_descriptor(service_id_t,214 extern errno_t udf_volume_recongnition(service_id_t); 215 extern errno_t udf_get_anchor_volume_descriptor(service_id_t, 216 216 udf_anchor_volume_descriptor_t *); 217 extern int udf_read_volume_descriptor_sequence(service_id_t, udf_extent_t);217 extern errno_t udf_read_volume_descriptor_sequence(service_id_t, udf_extent_t); 218 218 extern fs_index_t udf_long_ad_to_pos(udf_instance_t *, udf_long_ad_t *); 219 219
Note:
See TracChangeset
for help on using the changeset viewer.
