1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006
|
# HDF 4.2 to 4.3 Migration Guide
For the past few decades, HDF4 has deployed almost all of the library's header
files, both public and private. This deployment scheme makes even trivial
refactoring and bug fixing difficult to accomplish without breaking binary
compatibility when "private" headers change.
HDF 4.3.0 will finally separate the public and private APIs in both the single-
and multi-file libraries, allowing us to begin the process of cleaning up
several decades of accumulated technical debt.
This document lists the changes to what we deploy and how that may impact
code that uses HDF4. There is also a list of removed symbols, organized by
header file in the appendices.
Note that this is not a complete guide to changes in 4.3.0. It's only intended
to help people navigate the public/private API split. Please see the release
notes for a comprehensive list of other changes, e.g., build system changes.
## Changes in HDF 4.3.0
* Private header files are no longer distributed. A complete list can be found below.
* The error-handling macros have been removed from `herr.h`.
* Most of `hbitio.h` has been moved to a private header file.
* Most of `hfile.h` has been moved to a private header file.
* `hdf.h` no longer pulls in the `hdfi.h` internal header file. See below for the implications of this.
## Migration Steps
Most users should not have to make any changes to their applications, as long
as they only use the public API as documented in the HDF4 Reference Manual.
The single- and multi-file API calls are all unchanged and we have preserved
the legacy HDF 3 API (found in `df.h`).
If you HAVE used any of the undocumented functionality packeded with the library
(e.g., `linklist.h`'s linked lists), you will either have to pull those
source files out of an older version of the library for incorporation into
your own code, or stick with HDF 4.2.16. Note that we don't plan to have
additional HDF 4.2.x maintenance releases.
An additional problem you may encounter stems from the removal of the `hdfi.h`
internal header file from `hdf.h`. That internal header brought in a lot of OS,
POSIX, and C headers which will now be missing from your application. If you
relied on the implicit inclusion of `hdfi.h` to bring in things like `sys/types`,
you will have to add these to your source code, as `hdf.h` only includes what
it needs.
## Appendix: List of Removed Header Files
The following headers are no longer installed:
* atom.h
* bitvect.h
* cdeflate.h
* cnbit.h
* cnone.h
* crle.h
* cskphuff.h
* cszip.h
* dfan.h
* dfgr.h
* dfrig.h
* dfsd.h
* dfufp2i.h
* dynarray.h
* hchunks.h
* hcompi.h
* hconv.h
* hdfi.h
* hkit.h
* linklist.h
* local\_nc.h
* mfani.h
* mfgri.h
* mstdio.h
* tbbt.h
We also no longer deploy the XDR header:
* xdr.h
## Appendix: List of Removed Functions and Function-Like Macros
### atom.h
```
HAIswap_cache
HAatom_object
HAinit_group
HAdestroy_group
HAregister_atom
HAPatom_object
HAatom_group
HAremove_atom
HAsearch_atom
HAshutdown
```
### bitvect.h
```
bv_new
bv_delete
bv_set
```
### cdeflate.h
```
HCPcdeflate_stread
HCPcdeflate_stwrite
HCPcdeflate_seek
HCPcdeflate_inquire
HCPcdeflate_read
HCPcdeflate_write
HCPcdeflate_endaccess
```
### cnbit.h
```
HCPcnbit_stread
HCPcnbit_stwrite
HCPcnbit_seek
HCPcnbit_inquire
HCPcnbit_read
HCPcnbit_write
HCPcnbit_endaccess
```
### cnone.h
```
HCPcnone_stread
HCPcnone_stwrite
HCPcnone_seek
HCPcnone_inquire
HCPcnone_read
HCPcnone_write
HCPcnone_endaccess
```
### crle.h
```
HCPcrle_stread
HCPcrle_stwrite
HCPcrle_seek
HCPcrle_inquire
HCPcrle_read
HCPcrle_write
HCPcrle_endaccess
```
### cskphuff.h
```
HCPcskphuff_stread
HCPcskphuff_stwrite
HCPcskphuff_seek
HCPcskphuff_inquire
HCPcskphuff_read
HCPcskphuff_write
HCPcskphuff_endaccess
```
### cszip.h
```
HCPcszip_stread
HCPcszip_stwrite
HCPcszip_seek
HCPcszip_inquire
HCPcszip_read
HCPcszip_write
HCPcszip_endaccess
```
### dfgr.h
```
DFGRIopen
```
### dfsd.h
```
DFSDIopen
DFSDIsdginfo
DFSDIclear
DFSDIclearNT
DFSDIgetdata
DFSDIputdata
DFSDIgetslice
DFSDIputslice
DFSDIendslice
DFSDIrefresh
DFSDIisndg
DFSDIgetrrank
DFSDIgetwrank
DFSDIsetdimstrs
DFSDIsetdatastrs
```
### dfufp2i.h
```
process
generate_scale
convert_interp
pixrep_scaled
compute_offsets
pixrep_simple
DFUfptoimage
```
### dynarray.h
```
DAcreate_array
DAdestroy_array
DAsize_array
DAget_elem
DAset_elem
DAdel_elem
```
### glist.h
```
HDGLinitialize_list
HDGLinitialize_sorted_list
HDGLdestroy_list
HDGLadd_to_beginning
HDGLadd_to_end
HDGLadd_to_list
HDGLremove_from_beginning
HDGLremove_from_end
HDGLremove_from_list
HDGLremove_current
HDGLremove_all
HDGLpeek_at_beginning
HDGLpeek_at_end
HDGLfirst_in_list
HDGLcurrent_in_list
HDGLlast_in_list
HDGLnext_in_list
HDGLprevious_in_list
HDGLreset_to_beginning
HDGLreset_to_end
HDGLnum_of_objects
HDGLis_empty
HDGLis_in_list
HDGLcopy_list
HDGLperform_on_list
HDGLfirst_that
HDGLnext_that
HDGLprevious_that
HDGLlast_that
HDGLall_such_that
HDGLremove_all_such_that
HDGSinitialize_stack
HDGSdestroy_stack
HDGSpush
HDGSpop
HDGSpop_all
HDGSpeek_at_top
HDGScopy_stack
HDGQinitialize_queue
HDGQdestroy_queue
HDGQenqueue
HDGQdequeue
HDGQdequeue_all
HDGQpeek_at_head
HDGQpeek_at_tail
HDGQcopy_queue
```
### hchunks.h
```
HMCcreate
HMCgetcompress
HMCgetcomptype
HMCgetdatainfo
HMCgetdatasize
HMCsetMaxcache
HMCwriteChunk
HMCreadChunk
HMCPcloseAID
HMCPgetnumrecs
```
### hdfi.h
```
INT16ENCODE
UINT16ENCODE
INT32ENCODE
UINT32ENCODE
NBYTEENCODE
INT16DECODE
UINT16DECODE
INT32DECODE
UINT32DECODE
NBYTEDECODE
MIN
MAX
```
### herr.h
```
HERROR
HRETURN_ERROR
HGOTO_ERROR
HGOTO_FAIL
HCLOSE_GOTO_ERROR
HGOTO_DONE
HE_REPORT
HE_REPORT_RETURN
HE_CLOSE_REPORT_RETURN
HE_REPORT_GOTO
HE_CLOSE_REPORT_GOTO
```
### hfile.h
```
BADFREC
BASETAG
SPECIALTAG
MKSPECIALTAG
HIget_access_rec
HIrelease_accrec_node
HIgetspinfo
HPcompare_filerec_path
HPcompare_accrec_tagref
HPgetdiskblock
HPfreediskblock
HPisfile_in_use
HDcheck_empty
HDget_special_info
HDset_special_info
HP_read
HPseek
HP_write
HPread_drec
tagcompare
tagdestroynode
HLPstread
HLPstwrite
HLPseek
HLPread
HLPwrite
HLPinquire
HLPendaccess
HLPcloseAID
HLPinfo
HXPstread
HXPstwrite
HXPseek
HXPread
HXPwrite
HXPinquire
HXPendaccess
HXPcloseAID
HXPinfo
HXPreset
HXPsetaccesstype
HXPshutdown
HCPstread
HCPstwrite
HCPseek
HCPinquire
HCPread
HCPwrite
HCPendaccess
HCPcloseAID
HCPinfo
get_comp_len
HBPstread
HBPstwrite
HBPseek
HBPinquire
HBPread
HBPwrite
HBPendaccess
HBPcloseAID
HBPinfo
HRPstread
HRPstwrite
HRPseek
HRPinquire
HRPread
HRPwrite
HRPendaccess
HRPcloseAID
HRPinfo
HTPstart
HTPinit
HTPsync
HTPend
HTPcreate
HTPselect
HTPendaccess
HTPdelete
HTPupdate
HTPinquire
HTPis_special
HTPdump_dds
```
### hqueue.h
```
H4_CIRCLEQ_HEAD
H4_CIRCLEQ_ENTRY
H4_CIRCLEQ_INIT
H4_CIRCLEQ_INSERT_AFTER
H4_CIRCLEQ_INSERT_BEFORE
H4_CIRCLEQ_INSERT_HEAD
H4_CIRCLEQ_INSERT_TAIL
H4_CIRCLEQ_REMOVE
```
### linklist.h
```
HULcreate_list
HULdestroy_list
HULadd_node
HULsearch_node
HULfirst_node
HULnext_node
HULremove_node
```
### mcache.h
```
HASHKEY
mcache_open
mcache_filter
mcache_new
mcache_get
mcache_put
mcache_sync
mcache_close
mcache_get_pagesize
mcache_get_maxcache
mcache_set_maxcache
mcache_get_npages
mcache_stat
```
### mfan.h
```
AN_CREATE_KEY
AN_KEY2REF
AN_KEY2TYPE
```
### mfgr.h
```
VALIDRIINDEX
GRIil_convert
GRIgrdestroynode
GRIattrdestroynode
GRIridestroynode
```
### mstdio.h
```
HCPmstdio_stread
HCPmstdio_stwrite
HCPmstdio_seek
HCPmstdio_inquire
HCPmstdio_read
HCPmstdio_write
HCPmstdio_endaccess
```
### tbbt.h
```
tbbtdfind
tbbtfind
tbbtdless
tbbtless
tbbtindx
tbbtdins
tbbtins
tbbtrem
tbbtfirst
tbbtlast
tbbtnext
tbbtprev
tbbtdfree
tbbtfree
tbbtprint
tbbtdump
tbbtcount
tbbt_shutdown
```
### vgint.h
```
VSIget_vdata_node
VSIrelease_vdata_node
VSIgetvdatas
VSIget_vsinstance_node
VSIrelease_vsinstance_node
VIget_vgroup_node
VIrelease_vgroup_node
VIget_vginstance_node
VIrelease_vginstance_node
VPparse_shutdown
Get_vfile
vsinst
vginst
vswritelist
vpackvg
vinsertpair
vpackvs
VPgetinfo
VSPgetinfo
map_from_old_types
trimendblanks
```
### error.h
```
nc_serror
NCadvise
```
### local\_nc.h (NOTE: May be prefixed with sd_)
```
IS_RECVAR
nc_serror
NCadvise
NC_computeshapes
NC_xtypelen
NC_xlen_array
NC_xlen_attr
NC_xlen_cdf
NC_xlen_dim
NC_xlen_iarray
NC_xlen_string
NC_xlen_var
NCmemset
NC_arrayfill
NC_copy_arrayvals
NC_free_array
NC_free_attr
NC_free_cdf
NC_free_dim
NC_free_iarray
NC_free_string
NC_free_var
NC_incr_array
NC_dimid
NCcktype
NC_indefine
xdr_cdf
xdr_numrecs
xdr_shorts
xdr_NC_array
xdr_NC_attr
xdr_NC_dim
xdr_NC_fill
xdr_NC_iarray
xdr_NC_string
xdr_NC_var
NC_typelen
NC_check_id
NC_dup_cdf
NC_new_cdf
NC_new_array
NC_re_array
NC_new_attr
NC_findattr
NC_new_dim
NC_new_iarray
NC_new_string
NC_re_string
NC_hlookupvar
NC_new_var
NCvario
NCcoordck
xdr_NCvshort
NC_dcpy
NCxdrfile_sync
NCxdrfile_create
hdf_fill_array
hdf_get_data
hdf_get_vp_aid
hdf_map_type
hdf_unmap_type
hdf_get_ref
hdf_create_dim_vdata
hdf_create_compat_dim_vdata
hdf_write_attr
hdf_write_dim
hdf_write_var
hdf_write_xdr_cdf
hdf_conv_scales
hdf_read_dims
hdf_read_attrs
hdf_read_vars
hdf_read_xdr_cdf
hdf_xdr_cdf
hdf_vg_clobber
hdf_cdf_clobber
hdf_close
hdf_read_sds_dims
hdf_read_sds_cdf
SDPfreebuf
NCgenio
NC_var_shape
NC_reset_maxopenfiles
NC_get_maxopenfiles
NC_get_systemlimit
NC_get_numopencdfs
cdf_unmap_type
nssdc_read_cdf
nssdc_write_cdf
nssdc_xdr_cdf
HDiscdf
HDisnetcdf
HDisnetcdf64
```
## Appendix: List of Removed Symbols, Types, etc.
### atom.h
```
group_t
atom_t
HAsearch_func_t
atom_id_cache
atom_obj_cache
```
### bitvect.h
```
bv_bool
BV_DEFAULT_BITS
BV_CHUNK_SIZE
bv_struct_tag
```
### cdeflate.h
```
comp_coder_deflate_info_t
cdeflate_funcs
```
### cnbit.h
```
NBIT_BUF_SIZE
NBIT_MASK_SIZE
nbit_mask_info_t
comp_coder_nbit_info_t
cnbit_funcs
```
### cnone.h
```
comp_coder_none_info_t
cnone_funcs
```
### crle.h
```
RLE_BUF_SIZE
RLE_NIL
RLE_MIN_RUN
RLE_MAX_RUN
RLE_MIN_MIX
comp_coder_rle_info_t
crle_funcs
```
### cskphuff.h
```
SKPHUFF_MAX_CHAR
SUCCMAX
TWICEMAX
ROOT
comp_coder_skphuff_info_t
cskphuff_funcs
```
### cszip.h
```
H4_SZ_ALLOW_K13_OPTION_MASK
H4_SZ_CHIP_OPTION_MASK
H4_SZ_EC_OPTION_MASK
H4_SZ_LSB_OPTION_MASK
H4_SZ_MSB_OPTION_MASK
H4_SZ_NN_OPTION_MASK
H4_SZ_RAW_OPTION_MASK
SZ_H4_REV_2
comp_coder_szip_info_t
cszip_funcs
```
### dfan.h
```
DFAN_LABEL
DFAN_DESC
DFAN_LAB_BLKSIZE
DFAN_DESC_BLKSIZE
DFAN_DEFENTRIES
DFANdirentry
DFANdirhead
```
### dfgr.h
```
DFGRdr
DFGRrig
```
### dfrig.h
```
DFRdr
DFRrig
R8dim
```
### dfsd.h
```
DFSsdg
DFnsdgle
DFnsdg_t_hdr
```
### dfufp2i.h
```
Input
Output
```
### dynarray.h
```
dynarr_p
```
### glist.h
```
Generic_list_element
Generic_list_info
Generic_list
Generic_stack
Generic_queue
```
### hbitio.h
```
bitrec_t
maskc
maskl
```
### hchunks.h
```
DIM_DEF
DIM_DEF_PTR
HCHUNK_DEF
HCHUNK_DEF_PTR
chunked_funcs
```
### hcompi.h
```
comp_coder_info_t
comp_stateinfo_t
comp_state_cache_t
compinfo_t
```
### hconv.h
```
UI8_IN
UI8_OUT
SI16_IN
SI16_OUT
UI16_IN
UI16_OUT
SI32_IN
SI32_OUT
UI32_IN
UI32_OUT
F32_IN
F32_OUT
F64_IN
F64_OUT
LUI8_IN
LUI8_OUT
LSI16_IN
LSI16_OUT
LUI16_IN
LUI16_OUT
LSI32_IN
LSI32_OUT
LUI32_IN
LUI32_OUT
LF32_IN
LF32_OUT
LF64_IN
LF64_OUT
NUI8_IN
NUI8_OUT
NSI16_IN
NSI16_OUT
NUI16_IN
NUI16_OUT
NSI32_IN
NSI32_OUT
NUI32_IN
NUI32_OUT
NF32_IN
NF32_OUT
NF64_IN
NF64_OUT
fpx
float_uint_uchar
```
### hdfi.h
```
DFMT_LE
DFMT_BE
DF_MT
UNIXUNBUFIO
UNIXBUFIO
FILELIB
H4_HAVE_LP64
FNAME_POST_UNDERSCORE
hdf_pint_t
JMEMSYS
FRETVAL
FCALLKEYW
FNAME
```
### hfile.h
```
MAGICLEN
HDFMAGIC
DD_SZ
NDDS_SZ
OFFSET_SZ
INVALID_OFFSET
INVALID_LENGTH
HI_OPEN
HI_CREATE
HI_READ
HI_WRITE
HI_CLOSE
HI_FLUSH
HI_SEEK
HI_SEEK_CUR
HI_SEEKEND
HI_TELL
OPENERR
hdf_file_t
dd_t
version_t
ddblock_t
tag_info
fileop_t
filerec_t
DDLIST_DIRTY
FILE_END_DIRTY
accrec_t
sp_info_block_t
funclist_t
functab_t
FIDTYPE
AIDTYPE
GROUPTYPE
SDSTYPE
DIMTYPE
CDFTYPE
VGIDTYPE
VSIDTYPE
BITTYPE
GRIDTYPE
RIIDTYPE
diskblock_header
diskblock_tail
```
### hkit.h
```
tag_descript_t
tag_descriptions
nt_descript_t
nt_descriptions
```
### linklist.h
```
HUL_UNSORTED_LIST
HUL_SORTED_LIST
HULsearch_func_t
HULfind_func_t
node_info_t
list_head_t
```
### mcache.h
```
HASHSIZE
RET_SUCCESS
RET_ERROR
DEF_PAGESIZE
DEF_MAXCACHE
BKT
MCACHE_DIRTY
MCACHE_PINNED
ELEM_READ
ELEM_WRITTEN
ELEM_SYNC
L_ELEM
MCACHE_EXTEND
MCACHE
```
### mfan.h
```
ANnode
ANentry
ANATOM_HASH_SIZE
```
### mfgr.h
```
GRATOM_HASH_SIZE
RI_TAG
ATTR_TAG
GR_ATTR_THRESHHOLD
gr_info_t
at_info_t
dim_info_t
ri_info_t
```
### mstdio.h
```
comp_model_stdio_info_t
mstdio_funcs
```
### tbbt.h
```
TBBT_FAST_UINT16_COMPARE
TBBT_FAST_INT32_COMPARE
tbbt_node_private
tbbt_tree_private
TBBT_NODE
TBBT_TREE
```
### vgint.h
```
VGROUP
VDATA
VSUBGROUP
SYMDEF
VWRITELIST
DYN_VWRITELIST
vs_attr_t
vg_attr_t
DYN_VREADLIST
vgroup_desc
vdata_desc
vginstance_t
vsinstance_t
vfile_t
```
### local\_nc.h
```
FILENAME_MAX
NC_BYTE_SIZE
NC_CHAR_SIZE
NC_SHORT_SIZE
NC_LONG_SIZE
NC_FLOAT_SIZE
NC_DOUBLE_SIZE
NC_UNSPECIFIED_SIZE
Void
ATTR_TAG
DIM_TAG
VAR_TAG
DATA_TAG
BOGUS_TAG
DIMVAL_VERSION00
DIMVAL_VERSION01
BLOCK_MULT
MAX_BLOCK_SIZE
BLOCK_COUNT
MAX_VXR_ENTRIES
vix_t
NC_array
NC_string
NC_iarray
NC_dim
NC_attr
NC
NC_var
netCDF_FILE
HDF_FILE
CDF_FILE
cdf_routine_name
MAGICOFFSET
CDFMAGIC
HDFXMAGIC
NCMAGIC
NCMAGIC64
NCLINKMAGIC
```
|