00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _H5Oprivate_H
00029 #define _H5Oprivate_H
00030
00031
00032 #include "H5Opublic.h"
00033
00034
00035 #include "H5Dpublic.h"
00036 #include "H5Lpublic.h"
00037 #include "H5Spublic.h"
00038
00039
00040 #include "H5Fprivate.h"
00041 #include "H5SLprivate.h"
00042 #include "H5Tprivate.h"
00043 #include "H5Zprivate.h"
00044
00045
00046 typedef struct H5O_msg_class_t H5O_msg_class_t;
00047 typedef struct H5O_mesg_t H5O_mesg_t;
00048 typedef struct H5O_t H5O_t;
00049
00050
00051
00052
00053
00054
00055
00056 #define H5O_FHEAP_MAN_WIDTH 4
00057 #define H5O_FHEAP_MAN_START_BLOCK_SIZE 1024
00058 #define H5O_FHEAP_MAN_MAX_DIRECT_SIZE (64 * 1024)
00059 #define H5O_FHEAP_MAN_MAX_INDEX 40
00060 #define H5O_FHEAP_MAN_START_ROOT_ROWS 1
00061 #define H5O_FHEAP_CHECKSUM_DBLOCKS TRUE
00062 #define H5O_FHEAP_MAX_MAN_SIZE (4 * 1024)
00063 #define H5O_FHEAP_ID_LEN 8
00064
00065
00066 #define H5O_MESG_MAX_SIZE 65536
00067 #define H5O_ALL (-1)
00068 #define H5O_FIRST (-2)
00069
00070
00071 #define H5O_MSG_FLAG_CONSTANT 0x01u
00072 #define H5O_MSG_FLAG_SHARED 0x02u
00073 #define H5O_MSG_FLAG_DONTSHARE 0x04u
00074 #define H5O_MSG_FLAG_FAIL_IF_UNKNOWN 0x08u
00075 #define H5O_MSG_FLAG_MARK_IF_UNKNOWN 0x10u
00076 #define H5O_MSG_FLAG_WAS_UNKNOWN 0x20u
00077 #define H5O_MSG_FLAG_SHAREABLE 0x40u
00078 #define H5O_MSG_FLAG_BITS (H5O_MSG_FLAG_CONSTANT|H5O_MSG_FLAG_SHARED|H5O_MSG_FLAG_DONTSHARE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN|H5O_MSG_FLAG_MARK_IF_UNKNOWN|H5O_MSG_FLAG_WAS_UNKNOWN|H5O_MSG_FLAG_SHAREABLE)
00079
00080
00081 #define H5O_UPDATE_TIME 0x01u
00082 #define H5O_UPDATE_FORCE 0x02u
00083
00084
00085 #define H5O_HASH_SIZE 32
00086
00087
00088 #define H5O_CRT_ATTR_MAX_COMPACT_NAME "max compact attr"
00089 #define H5O_CRT_ATTR_MIN_DENSE_NAME "min dense attr"
00090 #define H5O_CRT_OHDR_FLAGS_NAME "object header flags"
00091 #define H5O_CRT_PIPELINE_NAME "pline"
00092 #define H5O_CRT_PIPELINE_DEF {{0, NULL, H5O_NULL_ID, {{0, HADDR_UNDEF}}}, H5O_PLINE_VERSION_1, 0, 0, NULL}
00093 #ifdef H5O_ENABLE_BOGUS
00094 #define H5O_BOGUS_MSG_FLAGS_NAME "bogus msg flags"
00095 #define H5O_BOGUS_MSG_FLAGS_SIZE sizeof(uint8_t)
00096 #endif
00097 #ifdef H5O_ENABLE_BAD_MESG_COUNT
00098 #define H5O_BAD_MESG_COUNT_NAME "bad message count"
00099 #define H5O_BAD_MESG_COUNT_SIZE sizeof(hbool_t)
00100 #endif
00101
00102
00103 #define H5O_CPY_OPTION_NAME "copy object"
00104
00105
00106 #ifdef H5O_PACKAGE
00107 #define H5O_OH_GET_ADDR(O) ((O)->chunk[0].addr)
00108 #else
00109 #define H5O_OH_GET_ADDR(O) (H5O_get_oh_addr(O))
00110 #endif
00111
00112
00113 #define H5O_UPDATE_SHARED(SH_MESG, SH_TYPE, F, MSG_TYPE, CRT_IDX, OH_ADDR) \
00114 (SH_MESG)->type = (SH_TYPE); \
00115 (SH_MESG)->file = (F); \
00116 (SH_MESG)->msg_type_id = (MSG_TYPE); \
00117 (SH_MESG)->u.loc.index = (CRT_IDX); \
00118 (SH_MESG)->u.loc.oh_addr = (OH_ADDR);
00119
00120
00121
00122 typedef union {
00123 uint8_t id[H5O_FHEAP_ID_LEN];
00124 uint64_t val;
00125 } H5O_fheap_id_t;
00126
00127
00128 typedef struct H5O_loc_t {
00129 H5F_t *file;
00130 haddr_t addr;
00131 hbool_t holding_file;
00132
00133 } H5O_loc_t;
00134
00135
00136 typedef struct H5O_copy_t {
00137 hbool_t copy_shallow;
00138 hbool_t expand_soft_link;
00139 hbool_t expand_ext_link;
00140 hbool_t expand_ref;
00141 hbool_t copy_without_attr;
00142 hbool_t preserve_null;
00143 int curr_depth;
00144 int max_depth;
00145 H5SL_t *map_list;
00146 H5O_t *oh_dst;
00147 } H5O_copy_t;
00148
00149
00150 #define H5O_NULL_ID 0x0000
00151 #define H5O_SDSPACE_ID 0x0001
00152 #define H5O_LINFO_ID 0x0002
00153 #define H5O_DTYPE_ID 0x0003
00154 #define H5O_FILL_ID 0x0004
00155 #define H5O_FILL_NEW_ID 0x0005
00156 #define H5O_LINK_ID 0x0006
00157 #define H5O_EFL_ID 0x0007
00158 #define H5O_LAYOUT_ID 0x0008
00159 #define H5O_BOGUS_ID 0x0009
00160 #define H5O_GINFO_ID 0x000a
00161 #define H5O_PLINE_ID 0x000b
00162 #define H5O_ATTR_ID 0x000c
00163 #define H5O_NAME_ID 0x000d
00164 #define H5O_MTIME_ID 0x000e
00165 #define H5O_SHMESG_ID 0x000f
00166 #define H5O_CONT_ID 0x0010
00167 #define H5O_STAB_ID 0x0011
00168 #define H5O_MTIME_NEW_ID 0x0012
00169 #define H5O_BTREEK_ID 0x0013
00170 #define H5O_DRVINFO_ID 0x0014
00171 #define H5O_AINFO_ID 0x0015
00172 #define H5O_REFCOUNT_ID 0x0016
00173 #define H5O_UNKNOWN_ID 0x0017
00174
00175
00176
00177
00178
00179
00180
00181
00182 #define H5O_SHARE_TYPE_UNSHARED 0
00183 #define H5O_SHARE_TYPE_SOHM 1
00184 #define H5O_SHARE_TYPE_COMMITTED 2
00185 #define H5O_SHARE_TYPE_HERE 3
00186
00187
00188 #define H5O_IS_STORED_SHARED(T) ((((T) == H5O_SHARE_TYPE_SOHM) || ((T) == H5O_SHARE_TYPE_COMMITTED)) ? TRUE : FALSE)
00189
00190
00191 #define H5O_IS_TRACKED_SHARED(T) ((T) > 0)
00192
00193
00194
00195
00196
00197 typedef struct H5O_mesg_loc_t {
00198 H5O_msg_crt_idx_t index;
00199 haddr_t oh_addr;
00200 } H5O_mesg_loc_t;
00201
00202
00203
00204
00205
00206
00207
00208
00209 typedef struct H5O_shared_t {
00210 unsigned type;
00211 H5F_t *file;
00212 unsigned msg_type_id;
00213 union {
00214 H5O_mesg_loc_t loc;
00215 H5O_fheap_id_t heap_id;
00216 } u;
00217 } H5O_shared_t;
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232 typedef struct H5O_linfo_t {
00233
00234 hbool_t track_corder;
00235 hbool_t index_corder;
00236 int64_t max_corder;
00237 haddr_t corder_bt2_addr;
00238
00239
00240 hsize_t nlinks;
00241 haddr_t fheap_addr;
00242 haddr_t name_bt2_addr;
00243 } H5O_linfo_t;
00244
00245
00246
00247 #define H5O_FILL_VERSION_1 1
00248
00249 #define H5O_FILL_VERSION_2 2
00250
00251 #define H5O_FILL_VERSION_3 3
00252
00253
00254
00255 #define H5O_FILL_VERSION_LATEST H5O_FILL_VERSION_3
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266 typedef struct H5O_fill_t {
00267 H5O_shared_t sh_loc;
00268
00269 unsigned version;
00270 H5T_t *type;
00271 ssize_t size;
00272 void *buf;
00273 H5D_alloc_time_t alloc_time;
00274 H5D_fill_time_t fill_time;
00275 hbool_t fill_defined;
00276 } H5O_fill_t;
00277
00278
00279
00280
00281
00282 typedef struct H5O_link_hard_t {
00283 haddr_t addr;
00284 } H5O_link_hard_t;
00285
00286 typedef struct H5O_link_soft_t {
00287 char *name;
00288 } H5O_link_soft_t;
00289
00290 typedef struct H5O_link_ud_t {
00291 void *udata;
00292 size_t size;
00293 } H5O_link_ud_t;
00294
00295 typedef struct H5O_link_t {
00296 H5L_type_t type;
00297 hbool_t corder_valid;
00298 int64_t corder;
00299 H5T_cset_t cset;
00300 char *name;
00301 union {
00302 H5O_link_hard_t hard;
00303 H5O_link_soft_t soft;
00304 H5O_link_ud_t ud;
00305 } u;
00306 } H5O_link_t;
00307
00308
00309
00310
00311
00312 #define H5O_EFL_ALLOC 16
00313 #define H5O_EFL_UNLIMITED H5F_UNLIMITED
00314
00315 typedef struct H5O_efl_entry_t {
00316 size_t name_offset;
00317 char *name;
00318 off_t offset;
00319 hsize_t size;
00320 } H5O_efl_entry_t;
00321
00322 typedef struct H5O_efl_t {
00323 haddr_t heap_addr;
00324 size_t nalloc;
00325 size_t nused;
00326 H5O_efl_entry_t *slot;
00327 } H5O_efl_t;
00328
00329
00330
00331
00332
00333
00334 #define H5O_LAYOUT_NDIMS (H5S_MAX_RANK+1)
00335
00336
00337 #define H5O_LAYOUT_VERSION_1 1
00338
00339
00340 #define H5O_LAYOUT_VERSION_2 2
00341
00342
00343
00344
00345
00346
00347 #define H5O_LAYOUT_VERSION_3 3
00348
00349
00350
00351 struct H5D_layout_ops_t;
00352 struct H5D_chunk_ops_t;
00353
00354 typedef struct H5O_storage_contig_t {
00355 haddr_t addr;
00356 hsize_t size;
00357 } H5O_storage_contig_t;
00358
00359 typedef struct H5O_storage_chunk_btree_t {
00360 H5RC_t *shared;
00361 } H5O_storage_chunk_btree_t;
00362
00363 typedef struct H5O_storage_chunk_t {
00364 H5D_chunk_index_t idx_type;
00365 haddr_t idx_addr;
00366 const struct H5D_chunk_ops_t *ops;
00367 union {
00368 H5O_storage_chunk_btree_t btree;
00369 } u;
00370 } H5O_storage_chunk_t;
00371
00372 typedef struct H5O_storage_compact_t {
00373 hbool_t dirty;
00374 size_t size;
00375 void *buf;
00376 } H5O_storage_compact_t;
00377
00378 typedef struct H5O_storage_t {
00379 H5D_layout_t type;
00380 union {
00381 H5O_storage_contig_t contig;
00382 H5O_storage_chunk_t chunk;
00383 H5O_storage_compact_t compact;
00384 } u;
00385 } H5O_storage_t;
00386
00387 typedef struct H5O_layout_chunk_t {
00388 unsigned ndims;
00389 uint32_t dim[H5O_LAYOUT_NDIMS];
00390 uint32_t size;
00391 hsize_t nchunks;
00392 hsize_t chunks[H5O_LAYOUT_NDIMS];
00393 hsize_t down_chunks[H5O_LAYOUT_NDIMS];
00394 } H5O_layout_chunk_t;
00395
00396 typedef struct H5O_layout_t {
00397 H5D_layout_t type;
00398 unsigned version;
00399 const struct H5D_layout_ops_t *ops;
00400 union {
00401 H5O_layout_chunk_t chunk;
00402 } u;
00403 H5O_storage_t storage;
00404 } H5O_layout_t;
00405
00406
00407
00408
00409 #ifdef H5O_ENABLE_BOGUS
00410
00411
00412
00413
00414 #define H5O_BOGUS_VALUE 0xdeadbeef
00415 typedef struct H5O_bogus_t {
00416 unsigned u;
00417 } H5O_bogus_t;
00418 #endif
00419
00420
00421
00422
00423
00424
00425
00426
00427 typedef struct H5O_ginfo_t {
00428
00429 uint32_t lheap_size_hint;
00430
00431
00432
00433
00434 hbool_t store_link_phase_change;
00435 uint16_t max_compact;
00436 uint16_t min_dense;
00437
00438
00439 hbool_t store_est_entry_info;
00440 uint16_t est_num_entries;
00441 uint16_t est_name_len;
00442 } H5O_ginfo_t;
00443
00444
00445
00446
00447
00448
00449
00450 #define H5O_PLINE_VERSION_1 1
00451
00452
00453
00454
00455
00456 #define H5O_PLINE_VERSION_2 2
00457
00458
00459
00460 #define H5O_PLINE_VERSION_LATEST H5O_PLINE_VERSION_2
00461
00462 typedef struct H5O_pline_t {
00463 H5O_shared_t sh_loc;
00464
00465 unsigned version;
00466 size_t nalloc;
00467 size_t nused;
00468 H5Z_filter_info_t *filter;
00469 } H5O_pline_t;
00470
00471
00472
00473
00474
00475
00476 typedef struct H5O_name_t {
00477 char *s;
00478 } H5O_name_t;
00479
00480
00481
00482
00483
00484
00485
00486 typedef struct H5O_shmesg_table_t {
00487 haddr_t addr;
00488 unsigned version;
00489 unsigned nindexes;
00490 } H5O_shmesg_table_t;
00491
00492
00493
00494
00495
00496
00497 typedef struct H5O_cont_t {
00498 haddr_t addr;
00499 size_t size;
00500
00501
00502 unsigned chunkno;
00503 } H5O_cont_t;
00504
00505
00506
00507
00508
00509 typedef struct H5O_stab_t {
00510 haddr_t btree_addr;
00511 haddr_t heap_addr;
00512 } H5O_stab_t;
00513
00514
00515
00516
00517
00518
00519
00520 typedef struct H5O_btreek_t {
00521 unsigned btree_k[H5B_NUM_BTREE_ID];
00522 unsigned sym_leaf_k;
00523 } H5O_btreek_t;
00524
00525
00526
00527
00528
00529
00530 typedef struct H5O_drvinfo_t {
00531 char name[9];
00532 size_t len;
00533 uint8_t *buf;
00534 } H5O_drvinfo_t;
00535
00536
00537
00538
00539
00540
00541 typedef struct H5O_ainfo_t {
00542
00543 hbool_t track_corder;
00544 hbool_t index_corder;
00545 H5O_msg_crt_idx_t max_crt_idx;
00546 haddr_t corder_bt2_addr;
00547
00548
00549 hsize_t nattrs;
00550 haddr_t fheap_addr;
00551 haddr_t name_bt2_addr;
00552 } H5O_ainfo_t;
00553
00554
00555
00556
00557
00558 typedef uint32_t H5O_refcount_t;
00559
00560
00561
00562
00563
00564 typedef unsigned H5O_unknown_t;
00565
00566
00567
00568 typedef herr_t (*H5O_operator_t)(const void *mesg, unsigned idx,
00569 void *operator_data);
00570
00571
00572 typedef herr_t (*H5O_lib_operator_t)(H5O_t *oh, H5O_mesg_t *mesg,
00573 unsigned sequence, hbool_t *oh_modified, void *operator_data);
00574
00575
00576 typedef enum H5O_mesg_operator_type_t {
00577 H5O_MESG_OP_APP,
00578 H5O_MESG_OP_LIB
00579 } H5O_mesg_operator_type_t;
00580
00581 typedef struct {
00582 H5O_mesg_operator_type_t op_type;
00583 union {
00584 H5O_operator_t app_op;
00585 H5O_lib_operator_t lib_op;
00586 } u;
00587 } H5O_mesg_operator_t;
00588
00589
00590
00591 typedef struct {
00592 H5O_type_t obj_type;
00593 void *crt_info;
00594 void *new_obj;
00595 } H5O_obj_create_t;
00596
00597
00598 struct H5P_genplist_t;
00599
00600
00601 H5_DLL herr_t H5O_init(void);
00602 H5_DLL herr_t H5O_create(H5F_t *f, hid_t dxpl_id, size_t size_hint,
00603 hid_t ocpl_id, H5O_loc_t *loc);
00604 H5_DLL herr_t H5O_open(H5O_loc_t *loc);
00605 H5_DLL herr_t H5O_close(H5O_loc_t *loc);
00606 H5_DLL int H5O_link(const H5O_loc_t *loc, int adjust, hid_t dxpl_id);
00607 H5_DLL int H5O_link_oh(H5F_t *f, int adjust, hid_t dxpl_id, H5O_t *oh, unsigned *oh_flags);
00608 H5_DLL H5O_t *H5O_pin(H5O_loc_t *loc, hid_t dxpl_id);
00609 H5_DLL herr_t H5O_unpin(H5O_t *oh);
00610 H5_DLL herr_t H5O_touch(const H5O_loc_t *loc, hbool_t force, hid_t dxpl_id);
00611 H5_DLL herr_t H5O_touch_oh(H5F_t *f, hid_t dxpl_id, H5O_t *oh,
00612 hbool_t force);
00613 #ifdef H5O_ENABLE_BOGUS
00614 H5_DLL herr_t H5O_bogus_oh(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned mesg_flags);
00615 #endif
00616 H5_DLL herr_t H5O_delete(H5F_t *f, hid_t dxpl_id, haddr_t addr);
00617 H5_DLL herr_t H5O_get_hdr_info(const H5O_loc_t *oloc, hid_t dxpl_id, H5O_hdr_info_t *hdr);
00618 H5_DLL herr_t H5O_get_info(const H5O_loc_t *oloc, hid_t dxpl_id, hbool_t want_ih_info,
00619 H5O_info_t *oinfo);
00620 H5_DLL herr_t H5O_obj_type(const H5O_loc_t *loc, H5O_type_t *obj_type, hid_t dxpl_id);
00621 H5_DLL herr_t H5O_get_create_plist(const H5O_loc_t *loc, hid_t dxpl_id, struct H5P_genplist_t *oc_plist);
00622 H5_DLL hid_t H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref);
00623 H5_DLL herr_t H5O_get_nlinks(const H5O_loc_t *loc, hid_t dxpl_id, hsize_t *nlinks);
00624 H5_DLL void *H5O_obj_create(H5F_t *f, H5O_type_t obj_type, void *crt_info, H5G_loc_t *obj_loc, hid_t dxpl_id);
00625 H5_DLL haddr_t H5O_get_oh_addr(const H5O_t *oh);
00626 H5_DLL herr_t H5O_get_rc_and_type(const H5O_loc_t *oloc, hid_t dxpl_id, unsigned *rc, H5O_type_t *otype);
00627
00628
00629 H5_DLL herr_t H5O_msg_create(const H5O_loc_t *loc, unsigned type_id, unsigned mesg_flags,
00630 unsigned update_flags, void *mesg, hid_t dxpl_id);
00631 H5_DLL herr_t H5O_msg_append_oh(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned type_id,
00632 unsigned mesg_flags, unsigned update_flags, void *mesg);
00633 H5_DLL herr_t H5O_msg_write(const H5O_loc_t *loc, unsigned type_id,
00634 unsigned mesg_flags, unsigned update_flags, void *mesg, hid_t dxpl_id);
00635 H5_DLL herr_t H5O_msg_write_oh(H5F_t *f, hid_t dxpl_id, H5O_t *oh,
00636 unsigned type_id, unsigned mesg_flags, unsigned update_flags, void *mesg);
00637 H5_DLL void *H5O_msg_read(const H5O_loc_t *loc, unsigned type_id, void *mesg,
00638 hid_t dxpl_id);
00639 H5_DLL void *H5O_msg_read_oh(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned type_id,
00640 void *mesg);
00641 H5_DLL herr_t H5O_msg_reset(unsigned type_id, void *native);
00642 H5_DLL void *H5O_msg_free(unsigned type_id, void *mesg);
00643 H5_DLL void *H5O_msg_copy(unsigned type_id, const void *mesg, void *dst);
00644 H5_DLL int H5O_msg_count(const H5O_loc_t *loc, unsigned type_id, hid_t dxpl_id);
00645 H5_DLL htri_t H5O_msg_exists(const H5O_loc_t *loc, unsigned type_id, hid_t dxpl_id);
00646 H5_DLL htri_t H5O_msg_exists_oh(const H5O_t *oh, unsigned type_id);
00647 H5_DLL herr_t H5O_msg_remove(const H5O_loc_t *loc, unsigned type_id, int sequence,
00648 hbool_t adj_link, hid_t dxpl_id);
00649 H5_DLL herr_t H5O_msg_remove_op(const H5O_loc_t *loc, unsigned type_id, int sequence,
00650 H5O_operator_t op, void *op_data, hbool_t adj_link, hid_t dxpl_id);
00651 H5_DLL herr_t H5O_msg_iterate(const H5O_loc_t *loc, unsigned type_id,
00652 const H5O_mesg_operator_t *op, void *op_data, hid_t dxpl_id);
00653 H5_DLL size_t H5O_msg_raw_size(const H5F_t *f, unsigned type_id,
00654 hbool_t disable_shared, const void *mesg);
00655 H5_DLL size_t H5O_msg_size_f(const H5F_t *f, hid_t ocpl_id, unsigned type_id,
00656 const void *mesg, size_t extra_raw);
00657 H5_DLL size_t H5O_msg_size_oh(const H5F_t *f, const H5O_t *oh, unsigned type_id,
00658 const void *mesg, size_t extra_raw);
00659 H5_DLL htri_t H5O_msg_is_shared(unsigned type_id, const void *mesg);
00660 H5_DLL htri_t H5O_msg_can_share(unsigned type_id, const void *mesg);
00661 H5_DLL htri_t H5O_msg_can_share_in_ohdr(unsigned type_id);
00662 H5_DLL herr_t H5O_msg_set_share(unsigned type_id, const H5O_shared_t *share,
00663 void *mesg);
00664 H5_DLL herr_t H5O_msg_reset_share(unsigned type_id, void *mesg);
00665 H5_DLL herr_t H5O_msg_get_crt_index(unsigned type_id, const void *mesg,
00666 H5O_msg_crt_idx_t *crt_idx);
00667 H5_DLL herr_t H5O_msg_encode(H5F_t *f, unsigned type_id, hbool_t disable_shared,
00668 unsigned char *buf, const void *obj);
00669 H5_DLL void* H5O_msg_decode(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh,
00670 unsigned type_id, const unsigned char *buf);
00671 H5_DLL herr_t H5O_msg_delete(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh,
00672 unsigned type_id, void *mesg);
00673
00674
00675 H5_DLL herr_t H5O_copy_header_map(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst ,
00676 hid_t dxpl_id, H5O_copy_t *cpy_info, hbool_t inc_depth);
00677 H5_DLL herr_t H5O_copy_expand_ref(H5F_t *file_src, void *_src_ref, hid_t dxpl_id,
00678 H5F_t *file_dst, void *_dst_ref, size_t ref_count, H5R_type_t ref_type,
00679 H5O_copy_t *cpy_info);
00680
00681
00682 H5_DLL herr_t H5O_debug_id(unsigned type_id, H5F_t *f, hid_t dxpl_id, const void *mesg, FILE *stream, int indent, int fwidth);
00683 H5_DLL herr_t H5O_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent,
00684 int fwidth);
00685
00686
00687 H5_DLL herr_t H5O_loc_reset(H5O_loc_t *loc);
00688 H5_DLL herr_t H5O_loc_copy(H5O_loc_t *dst, const H5O_loc_t *src, H5_copy_depth_t depth);
00689 H5_DLL herr_t H5O_loc_hold_file(H5O_loc_t *loc);
00690 H5_DLL herr_t H5O_loc_free(H5O_loc_t *loc);
00691
00692
00693 H5_DLL hsize_t H5O_efl_total_size(H5O_efl_t *efl);
00694
00695
00696 H5_DLL herr_t H5O_fill_reset_dyn(H5O_fill_t *fill);
00697 H5_DLL herr_t H5O_fill_convert(H5O_fill_t *fill, H5T_t *type, hbool_t *fill_changed, hid_t dxpl_id);
00698 H5_DLL herr_t H5O_fill_set_latest_version(H5O_fill_t *fill);
00699
00700
00701 H5_DLL herr_t H5O_link_delete(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh,
00702 void *_mesg);
00703
00704
00705 H5_DLL herr_t H5O_pline_set_latest_version(H5O_pline_t *pline);
00706
00707
00708 H5_DLL herr_t H5O_set_shared(H5O_shared_t *dst, const H5O_shared_t *src);
00709
00710 #endif
00711