summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pablo/HDFentries.txt798
-rw-r--r--pablo/HDFmpioProtos.h86
-rw-r--r--pablo/HDFrecord_RT.h176
-rw-r--r--pablo/Makefile.in63
4 files changed, 312 insertions, 811 deletions
diff --git a/pablo/HDFentries.txt b/pablo/HDFentries.txt
deleted file mode 100644
index 9892628..0000000
--- a/pablo/HDFentries.txt
+++ /dev/null
@@ -1,798 +0,0 @@
-H5I_debug
-H5F_flush_all
-H5F_close_all
-H5S_none_select_serialize
-H5S_none_select_deserialize
-H5T_conv_enum_init
-H5T_conv_enum
-H5T_conv_schar_uchar
-H5T_conv_uchar_schar
-H5T_conv_schar_short
-H5T_conv_schar_ushort
-H5T_conv_uchar_short
-H5T_conv_uchar_ushort
-H5T_conv_schar_int
-H5T_conv_schar_uint
-H5T_conv_uchar_int
-H5T_conv_uchar_uint
-H5T_conv_schar_long
-H5T_conv_schar_ulong
-H5T_conv_uchar_long
-H5T_conv_uchar_ulong
-H5T_conv_schar_llong
-H5T_conv_schar_ullong
-H5T_conv_uchar_llong
-H5T_conv_uchar_ullong
-H5T_conv_short_schar
-H5T_conv_short_uchar
-H5T_conv_ushort_schar
-H5T_conv_ushort_uchar
-H5T_conv_short_ushort
-H5T_conv_ushort_short
-H5T_conv_short_int
-H5T_conv_short_uint
-H5T_conv_ushort_int
-H5T_conv_ushort_uint
-H5T_conv_short_long
-H5T_conv_short_ulong
-H5T_conv_ushort_long
-H5T_conv_ushort_ulong
-H5T_conv_short_llong
-H5T_conv_short_ullong
-H5T_conv_ushort_llong
-H5T_conv_ushort_ullong
-H5T_conv_int_schar
-H5T_conv_int_uchar
-H5T_conv_uint_schar
-H5T_conv_uint_uchar
-H5T_conv_int_short
-H5T_conv_int_ushort
-H5T_conv_uint_short
-H5T_conv_uint_ushort
-H5T_conv_int_uint
-H5T_conv_uint_int
-H5T_conv_int_long
-H5T_conv_int_ulong
-H5T_conv_uint_long
-H5T_conv_uint_ulong
-H5T_conv_int_llong
-H5T_conv_int_ullong
-H5T_conv_uint_llong
-H5T_conv_uint_ullong
-H5T_conv_long_schar
-H5T_conv_long_uchar
-H5T_conv_ulong_schar
-H5T_conv_ulong_uchar
-H5T_conv_long_short
-H5T_conv_long_ushort
-H5T_conv_ulong_short
-H5T_conv_ulong_ushort
-H5T_conv_long_int
-H5T_conv_long_uint
-H5T_conv_ulong_int
-H5T_conv_ulong_uint
-H5T_conv_long_ulong
-H5T_conv_ulong_long
-H5T_conv_long_llong
-H5T_conv_long_ullong
-H5T_conv_ulong_llong
-H5T_conv_ulong_ullong
-H5T_conv_llong_schar
-H5T_conv_llong_uchar
-H5T_conv_ullong_schar
-H5T_conv_ullong_uchar
-H5T_conv_llong_short
-H5T_conv_llong_ushort
-H5T_conv_ullong_short
-H5T_conv_ullong_ushort
-H5T_conv_llong_int
-H5T_conv_llong_uint
-H5T_conv_ullong_int
-H5T_conv_ullong_uint
-H5T_conv_llong_long
-H5T_conv_llong_ulong
-H5T_conv_ullong_long
-H5T_conv_ullong_ulong
-H5T_conv_llong_ullong
-H5T_conv_ullong_llong
-H5Tset_precision
-H5Tenum_create
-H5Tenum_insert
-H5Tget_super
-H5Tget_member_value
-H5Tenum_nameof
-H5Tenum_valueof
-H5Tregister
-H5T_isa
-H5T_set_size
-H5T_set_precision
-H5T_set_offset
-H5T_struct_insert
-H5T_sort_value
-H5T_sort_name
-H5T_enum_insert
-H5T_enum_nameof
-H5T_enum_valueof
-H5T_convert
-H5T_print_stats
-H5S_select_elements
-H5S_select_all
-H5S_select_none
-H5S_select_serial_size
-H5S_select_serialize
-H5S_select_deserialize
-H5S_point_select_serial_size
-H5S_point_select_serialize
-H5S_point_select_deserialize
-H5S_hyper_node_release
-H5S_hyper_select_serial_size
-H5S_hyper_select_serialize
-H5S_hyper_select_deserialize
-H5S_all_select_deserialize
-H5S_all_select_serialize
-H5RA_isa
-H5Pset_gc_references
-H5AC_debug
-H5AC_dest
-H5AC_find
-H5AC_flush
-H5AC_protect
-H5AC_rename
-H5AC_set
-H5AC_create
-H5AC_unprotect
-H5A_close
-H5A_copy
-H5A_create
-H5A_entof
-H5A_get_index
-H5A_init_interface
-H5A_open
-H5A_read
-H5A_write
-H5Aclose
-H5Acreate
-H5Aget_name
-H5Aget_num_attrs
-H5Aget_space
-H5Aget_type
-H5Aiterate
-H5Aopen_idx
-H5Aopen_name
-H5Aread
-H5Awrite
-H5B_assert
-H5B_create
-H5B_debug
-H5B_decode_key
-H5B_decode_keys
-H5B_find
-H5B_flush
-H5B_insert
-H5B_insert_child
-H5B_insert_helper
-H5B_iterate
-H5B_load
-H5B_nodesize
-H5B_remove
-H5B_remove_helper
-H5B_split
-H5D_allocate
-H5D_close
-H5D_create
-H5D_extend
-H5D_get_file
-H5D_get_space
-H5D_init_interface
-H5D_init_storage
-H5D_new
-H5D_open
-H5D_open_oid
-H5D_read
-H5D_typeof
-H5D_write
-H5Dclose
-H5Dcreate
-H5Dextend
-H5Dget_create_plist
-H5Dget_space
-H5Dget_type
-H5Dopen
-H5Dread
-H5Dwrite
-H5E_clear
-H5E_walk
-H5Eclear
-H5Eget_auto
-H5Eprint
-H5Eset_auto
-H5Ewalk
-H5F_addr_cmp
-H5F_addr_defined
-H5F_addr_zerop
-H5F_arr_create
-H5F_arr_read
-H5F_arr_write
-H5F_block_read
-H5F_block_write
-H5F_close
-H5F_compare_files
-H5F_core_access
-H5F_core_close
-H5F_core_open
-H5F_core_read
-H5F_core_write
-H5F_debug
-H5F_dest
-H5F_fam_access
-H5F_fam_close
-H5F_fam_flush
-H5F_fam_open
-H5F_fam_read
-H5F_fam_write
-H5F_flush
-H5F_init_interface
-H5F_istore_allocate
-H5F_istore_cmp2
-H5F_istore_cmp3
-H5F_istore_create
-H5F_istore_debug
-H5F_istore_debug_key
-H5F_istore_decode_key
-H5F_istore_dest
-H5F_istore_encode_key
-H5F_istore_flush
-H5F_istore_flush_entry
-H5F_istore_found
-H5F_istore_get_addr
-H5F_istore_init
-H5F_istore_insert
-H5F_istore_lock
-H5F_istore_new_node
-H5F_istore_preempt
-H5F_istore_prune
-H5F_istore_read
-H5F_istore_stats
-H5F_istore_unlock
-H5F_istore_write
-H5F_locate_signature
-H5F_low_alloc
-H5F_low_class
-H5F_low_close
-H5F_low_flush
-H5F_low_open
-H5F_low_read
-H5F_low_seteof
-H5F_low_size
-H5F_low_write
-H5F_mount
-H5F_mountpoint
-H5F_mpio_access
-H5F_mpio_close
-H5F_mpio_flush
-H5F_mpio_open
-H5F_mpio_read
-H5F_mpio_tas_allsame
-H5F_mpio_write
-H5F_new
-H5F_open
-H5F_sec2_close
-H5F_sec2_open
-H5F_sec2_read
-H5F_sec2_write
-H5F_split_access
-H5F_split_alloc
-H5F_split_close
-H5F_split_extend
-H5F_split_flush
-H5F_split_open
-H5F_split_read
-H5F_split_write
-H5F_stdio_close
-H5F_stdio_flush
-H5F_stdio_open
-H5F_stdio_read
-H5F_stdio_write
-H5F_unmount
-H5Fclose
-H5Fcreate
-H5Fflush
-H5Fget_access_plist
-H5Fget_create_plist
-H5Fis_hdf5
-H5Fmount
-H5Fopen
-H5Freopen
-H5Funmount
-H5G_basename
-H5G_close
-H5G_create
-H5G_ent_cache
-H5G_ent_debug
-H5G_ent_decode
-H5G_ent_decode_vec
-H5G_ent_encode
-H5G_ent_encode_vec
-H5G_ent_modified
-H5G_find
-H5G_get_comment
-H5G_get_objinfo
-H5G_getcwg
-H5G_init_interface
-H5G_insert
-H5G_insertion_file
-H5G_link
-H5G_linkval
-H5G_loc
-H5G_mkroot
-H5G_move
-H5G_namei
-H5G_node_cmp2
-H5G_node_cmp3
-H5G_node_create
-H5G_node_debug
-H5G_node_decode_key
-H5G_node_encode_key
-H5G_node_flush
-H5G_node_found
-H5G_node_insert
-H5G_node_iterate
-H5G_node_load
-H5G_node_remove
-H5G_open
-H5G_pop
-H5G_push
-H5G_reopen
-H5G_rootof
-H5G_set
-H5G_set_comment
-H5G_stab_create
-H5G_stab_find
-H5G_stab_insert
-H5G_stab_remove
-H5G_traverse_slink
-H5G_unlink
-H5Gclose
-H5Gcreate
-H5Gget_comment
-H5Gget_linkval
-H5Gget_objinfo
-H5Giterate
-H5Glink
-H5Gmove
-H5Gopen
-H5Gpop
-H5Gpush
-H5Gset
-H5Gset_comment
-H5Gunlink
-H5HG_alloc
-H5HG_create
-H5HG_debug
-H5HG_flush
-H5HG_insert
-H5HG_link
-H5HG_load
-H5HG_peek
-H5HG_read
-H5HG_remove
-H5HL_create
-H5HL_debug
-H5HL_flush
-H5HL_insert
-H5HL_load
-H5HL_peek
-H5HL_read
-H5HL_remove
-H5HL_write
-H5I_dec_ref
-H5I_destroy_group
-H5I_find_id
-H5I_get_id_node
-H5I_get_type
-H5I_group
-H5I_inc_ref
-H5I_init_group
-H5I_init_interface
-H5I_object
-H5I_register
-H5I_release_id_node
-H5I_remove
-H5I_search
-H5Iget_type
-H5MF_acceptable
-H5MF_alloc
-H5MF_realloc
-H5MF_xfree
-H5MM_strdup
-H5O_alloc
-H5O_alloc_extend_chunk
-H5O_alloc_new_chunk
-H5O_attr_copy
-H5O_attr_debug
-H5O_attr_decode
-H5O_attr_encode
-H5O_attr_reset
-H5O_attr_size
-H5O_close
-H5O_cont_debug
-H5O_cont_decode
-H5O_cont_encode
-H5O_copy
-H5O_count
-H5O_create
-H5O_debug
-H5O_dtype_copy
-H5O_dtype_debug
-H5O_dtype_decode
-H5O_dtype_decode_helper
-H5O_dtype_encode
-H5O_dtype_encode_helper
-H5O_dtype_get_share
-H5O_dtype_reset
-H5O_dtype_set_share
-H5O_dtype_size
-H5O_efl_copy
-H5O_efl_debug
-H5O_efl_decode
-H5O_efl_encode
-H5O_efl_read
-H5O_efl_reset
-H5O_efl_size
-H5O_efl_total_size
-H5O_efl_write
-H5O_find_in_ohdr
-H5O_fill_decode
-H5O_fill_encode
-H5O_fill_copy
-H5O_fill_size
-H5O_fill_reset
-H5O_fill_debug
-H5O_fill_convert
-H5O_flush
-H5O_free
-H5O_init_interface
-H5O_layout_copy
-H5O_layout_debug
-H5O_layout_decode
-H5O_layout_encode
-H5O_layout_size
-H5O_link
-H5O_load
-H5O_modify
-H5O_mtime_copy
-H5O_mtime_debug
-H5O_mtime_decode
-H5O_mtime_encode
-H5O_mtime_size
-H5O_name_copy
-H5O_name_debug
-H5O_name_decode
-H5O_name_encode
-H5O_name_reset
-H5O_name_size
-H5O_open
-H5O_pline_copy
-H5O_pline_debug
-H5O_pline_decode
-H5O_pline_encode
-H5O_pline_reset
-H5O_pline_size
-H5O_read
-H5O_remove
-H5O_reset
-H5O_sdspace_copy
-H5O_sdspace_debug
-H5O_sdspace_decode
-H5O_sdspace_encode
-H5O_sdspace_reset
-H5O_sdspace_size
-H5O_share
-H5O_shared_debug
-H5O_shared_decode
-H5O_shared_encode
-H5O_shared_size
-H5O_stab_copy
-H5O_stab_debug
-H5O_stab_decode
-H5O_stab_encode
-H5O_stab_fast
-H5O_stab_size
-H5O_touch
-H5O_touch_oh
-H5P_close
-H5P_copy
-H5P_create
-H5P_get_class
-H5P_init_interface
-H5PC_Signal_right_neighbor
-H5PC_Wait_for_left_neighbor
-H5PC_Wait_for_right_neighbor
-H5Pclose
-H5Pcopy
-H5Pcreate
-H5Pget_alignment
-H5Pget_btree_ratios
-H5Pget_buffer
-H5Pget_cache
-H5Pget_chunk
-H5Pget_class
-H5Pget_core
-H5Pget_driver
-H5Pget_external
-H5Pget_external_count
-H5Pget_family
-H5Pget_fill_value
-H5Pget_filter
-H5Pget_hyper_cache
-H5Pget_istore_k
-H5Pget_layout
-H5Pget_mpi
-H5Pget_nfilters
-H5Pget_sec2
-H5Pget_sizes
-H5Pget_split
-H5Pget_stdio
-H5Pget_sym_k
-H5Pget_userblock
-H5Pget_version
-H5Pget_xfer
-H5Pset_alignment
-H5Pset_buffer
-H5Pset_cache
-H5Pset_chunk
-H5Pset_core
-H5Pset_deflate
-H5Pset_external
-H5Pset_family
-H5Pset_fill_value
-H5Pset_filter
-H5Pset_hyper_cache
-H5Pset_istore_k
-H5Pset_layout
-H5Pset_mpi
-H5Pset_preserve
-H5Pset_sec2
-H5Pset_sizeof_addr
-H5Pset_split
-H5Pset_stdio
-H5Pset_sym_k
-H5Pset_userblock
-H5Pset_xfer
-H5R_close
-H5R_create
-H5R_dereference
-H5R_fix_overflow
-H5R_get_region
-H5R_init_interface
-H5R_open
-H5R_read
-H5R_write
-H5Rclose
-H5Rcreate
-H5Rdereference
-H5Rget_region
-H5Ropen
-H5Rread
-H5Rwrite
-H5RAcreate
-H5RA_create
-H5RAopen
-H5RA_open
-H5RAclose
-H5RA_close
-H5RA_init_interface
-H5RAwrite
-H5RA_write
-H5RA_fix_overflow
-H5RAread
-H5RA_read
-H5S_all_favail
-H5S_all_fgath
-H5S_all_fscat
-H5S_all_init
-H5S_all_mgath
-H5S_all_mscat
-H5S_all_npoints
-H5S_all_release
-H5S_close
-H5S_cmp
-H5S_copy
-H5S_create
-H5S_debug
-H5S_extend
-H5S_extent_copy
-H5S_extent_release
-H5S_find
-H5S_get_npoints_max
-H5S_get_select_npoints
-H5S_get_simple_extent_dims
-H5S_get_simple_extent_ndims
-H5S_get_simple_extent_npoints
-H5S_hyper_add
-H5S_hyper_block_cache
-H5S_hyper_block_read
-H5S_hyper_block_write
-H5S_hyper_bsearch
-H5S_hyper_clip
-H5S_hyper_copy
-H5S_hyper_favail
-H5S_hyper_fgath
-H5S_hyper_fread
-H5S_hyper_fscat
-H5S_hyper_fwrite
-H5S_hyper_get_regions
-H5S_hyper_init
-H5S_hyper_mgath
-H5S_hyper_mread
-H5S_hyper_mscat
-H5S_hyper_mwrite
-H5S_hyper_node_add
-H5S_hyper_node_prepend
-H5S_hyper_npoints
-H5S_hyper_release
-H5S_hyper_sel_iter_release
-H5S_hyper_select_valid
-H5S_init_interface
-H5S_is_simple
-H5S_modify
-H5S_mpio_all_type
-H5S_mpio_hyper_type
-H5S_mpio_space_type
-H5S_mpio_spaces_read
-H5S_mpio_spaces_write
-H5S_mpio_spaces_xfer
-H5S_point_add
-H5S_point_copy
-H5S_point_favail
-H5S_point_fgath
-H5S_point_fscat
-H5S_point_init
-H5S_point_mgath
-H5S_point_mscat
-H5S_point_npoints
-H5S_point_release
-H5S_point_select_valid
-H5S_read
-H5S_register
-H5S_release_simple
-H5S_sel_iter_release
-H5S_select_copy
-H5S_select_hyperslab
-H5S_select_init
-H5S_select_release
-H5S_select_valid
-H5S_set_extent_simple
-H5Sclose
-H5Scopy
-H5Screate
-H5Screate_simple
-H5Sget_select_npoints
-H5Sget_simple_extent_dims
-H5Sget_simple_extent_ndims
-H5Sget_simple_extent_npoints
-H5Sget_simple_extent_type
-H5Sis_simple
-H5Soffset_simple
-H5Sselect_all
-H5Sselect_elements
-H5Sselect_hyperslab
-H5Sselect_none
-H5Sselect_valid
-H5Sset_extent_none
-H5Sset_extent_simple
-H5TB_buf_ptr
-H5TB_close
-H5TB_garbage_coll
-H5TB_get_buf
-H5TB_init_interface
-H5TB_release_buf
-H5TB_resize_buf
-H5T_bit_get_d
-H5T_close
-H5T_cmp
-H5T_commit
-H5T_conv_double_float
-H5T_conv_f_f
-H5T_conv_float_double
-H5T_conv_i32le_f64le
-H5T_conv_i_i
-H5T_conv_noop
-H5T_conv_order
-H5T_conv_s_s
-H5T_conv_struct
-H5T_conv_struct_init
-H5T_copy
-H5T_create
-H5T_debug
-H5T_entof
-H5T_equal
-H5T_find
-H5T_get_size
-H5T_init
-H5T_init_interface
-H5T_insert
-H5T_is_atomic
-H5T_lock
-H5T_open
-H5T_pack
-H5T_path_find
-H5T_sort_by_offset
-H5T_unlock_cb
-H5Tclose
-H5Tcommit
-H5Tcommitted
-H5Tconvert
-H5Tcopy
-H5Tcreate
-H5Tequal
-H5Tfind
-H5Tget_class
-H5Tget_cset
-H5Tget_ebias
-H5Tget_fields
-H5Tget_inpad
-H5Tget_member_dims
-H5Tget_member_name
-H5Tget_member_offset
-H5Tget_member_type
-H5Tget_norm
-H5Tget_num_members
-H5Tget_offset
-H5Tget_order
-H5Tget_overflow
-H5Tget_pad
-H5Tget_precision
-H5Tget_sign
-H5Tget_size
-H5Tget_strpad
-H5Tinsert
-H5Tinsert_array
-H5Tlock
-H5Topen
-H5Tpack
-H5Tregister_hard
-H5Tregister_soft
-H5Tset_cset
-H5Tset_ebias
-H5Tset_fields
-H5Tset_inpad
-H5Tset_norm
-H5Tset_offset
-H5Tset_order
-H5Tset_overflow
-H5Tset_pad
-H5Tset_prec
-H5Tset_sign
-H5Tset_size
-H5Tset_strpad
-H5Tunregister
-H5V_array_fill
-H5V_hyper_copy
-H5V_hyper_fill
-H5V_hyper_stride
-H5V_stride_copy
-H5V_stride_copy2
-H5V_stride_fill
-H5V_stride_optimize1
-H5V_stride_optimize2
-H5Z_append
-H5Z_filter_deflate
-H5Z_find
-H5Z_init_interface
-H5Z_pipeline
-H5Z_register
-H5Zregister
-H5_add_exit
-H5_init_interface
-H5_init_library
-H5_init_thread
-H5dont_atexit
-H5get_libversion
-H5open
-H5D_isa
-H5F_init
-H5G_register_type
-H5G_isa
-H5G_get_type
-H5O_exists
diff --git a/pablo/HDFmpioProtos.h b/pablo/HDFmpioProtos.h
new file mode 100644
index 0000000..e5d33ef
--- /dev/null
+++ b/pablo/HDFmpioProtos.h
@@ -0,0 +1,86 @@
+#define MPI_File_open HDF_MPI_File_open
+#define MPI_File_close HDF_MPI_File_close
+#define MPI_File_delete HDF_MPI_File_delete
+#define MPI_File_set_size HDF_MPI_File_set_size
+#define MPI_File_preallocate HDF_MPI_File_preallocate
+#define MPI_File_get_size HDF_MPI_File_get_size
+#define MPI_File_get_group HDF_MPI_File_get_group
+#define MPI_File_get_amode HDF_MPI_File_get_amode
+#define MPI_File_set_view HDF_MPI_File_set_view
+#define MPI_File_get_view HDF_MPI_File_get_view
+#define MPI_File_read_at HDF_MPI_File_read_at
+#define MPI_File_read_at_all HDF_MPI_File_read_at_all
+#define MPI_File_write_at HDF_MPI_File_write_at
+#define MPI_File_write_at_all HDF_MPI_File_write_at_all
+#define MPI_File_iread_at HDF_MPI_File_iread_at
+#define MPI_File_iwrite_at HDF_MPI_File_iwrite_at
+#define MPI_File_read HDF_MPI_File_read
+#define MPI_File_read_all HDF_MPI_File_read_all
+#define MPI_File_write HDF_MPI_File_write
+#define MPI_File_write_all HDF_MPI_File_write_all
+#define MPI_File_iread HDF_MPI_File_iread
+#define MPI_File_iwrite HDF_MPI_File_iwrite
+#define MPI_File_seek HDF_MPI_File_seek
+#define MPI_File_get_position HDF_MPI_File_get_position
+#define MPI_File_get_byte_offset HDF_MPI_File_get_byte_offset
+#define MPI_File_get_type_extent HDF_MPI_File_get_type_extent
+#define MPI_File_set_atomicity HDF_MPI_File_set_atomicity
+#define MPI_File_get_atomicity HDF_MPI_File_get_atomicity
+#define MPI_File_sync HDF_MPI_File_sync
+
+int HDF_MPI_File_open( MPI_Comm comm, char *filename, int amode,
+ MPI_Info info, MPI_File *fh );
+int HDF_MPI_File_close( MPI_File *fh );
+int HDF_MPI_File_delete( char *filename, MPI_Info info );
+int HDF_MPI_File_set_size( MPI_File fh, MPI_Offset size );
+int HDF_MPI_File_preallocate( MPI_File fh, MPI_Offset size);
+int HDF_MPI_File_get_size( MPI_File fh, MPI_Offset *size );
+int HDF_MPI_File_get_group( MPI_File fh, MPI_Group *group );
+int HDF_MPI_File_get_amode( MPI_File fh, int *amode );
+int HDF_MPI_File_set_view( MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
+ MPI_Datatype filetype, char *datarep,
+ MPI_Info info );
+int HDF_MPI_File_get_view( MPI_File fh, MPI_Offset *disp,
+ MPI_Datatype *etype, MPI_Datatype *filetype,
+ char *datarep );
+int HDF_MPI_File_read_at( MPI_File fh, MPI_Offset offset, void *buf,
+ int count, MPI_Datatype datatype,
+ MPI_Status *status );
+int HDF_MPI_File_read_at_all( MPI_File fh, MPI_Offset offset, void *buf,
+ int count, MPI_Datatype datatype,
+ MPI_Status *status );
+int HDF_MPI_File_write_at( MPI_File fh, MPI_Offset offset, void *buf,
+ int count, MPI_Datatype datatype,
+ MPI_Status *status );
+int HDF_MPI_File_write_at_all( MPI_File fh, MPI_Offset offset, void *buf,
+ int count, MPI_Datatype datatype,
+ MPI_Status *status );
+
+int HDF_MPI_File_iread_at( MPI_File fh, MPI_Offset offset, void *buf,
+ int count, MPI_Datatype datatype,
+ MPIO_Request *request );
+int HDF_MPI_File_iwrite_at( MPI_File fh, MPI_Offset offset, void *buf,
+ int count, MPI_Datatype datatype,
+ MPIO_Request *request );
+int HDF_MPI_File_read( MPI_File fh, void *buf, int count,
+ MPI_Datatype datatype, MPI_Status *status );
+int HDF_MPI_File_read_all( MPI_File fh, void *buf, int count,
+ MPI_Datatype datatype, MPI_Status *status );
+int HDF_MPI_File_write( MPI_File fh, void *buf, int count,
+ MPI_Datatype datatype, MPI_Status *status );
+int HDF_MPI_File_write_all( MPI_File fh, void *buf, int count,
+ MPI_Datatype datatype, MPI_Status *status );
+int HDF_MPI_File_iread( MPI_File fh, void *buf, int count,
+ MPI_Datatype datatype, MPIO_Request *request );
+int HDF_MPI_File_iwrite( MPI_File fh, void *buf, int count,
+ MPI_Datatype datatype, MPIO_Request *request );
+int HDF_MPI_File_seek( MPI_File fh,
+ MPI_Offset offset, int whence ) ;
+int HDF_MPI_File_get_position( MPI_File fh, MPI_Offset *offset );
+int HDF_MPI_File_get_byte_offset( MPI_File fh, MPI_Offset offset,
+ MPI_Offset *disp) ;
+int HDF_MPI_File_get_type_extent( MPI_File fh, MPI_Datatype datatype,
+ MPI_Aint *extent );
+int HDF_MPI_File_set_atomicity( MPI_File fh, int flag );
+int HDF_MPI_File_get_atomicity( MPI_File fh, int *flag );
+int HDF_MPI_File_sync( MPI_File fh );
diff --git a/pablo/HDFrecord_RT.h b/pablo/HDFrecord_RT.h
new file mode 100644
index 0000000..808eaef
--- /dev/null
+++ b/pablo/HDFrecord_RT.h
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the Pablo Performance Analysis Environment
+ *
+ * (R)
+ * The Pablo Performance Analysis Environment software is NOT in
+ * the public domain. However, it is freely available without fee for
+ * education, research, and non-profit purposes. By obtaining copies
+ * of this and other files that comprise the Pablo Performance Analysis
+ * Environment, you, the Licensee, agree to abide by the following
+ * conditions and understandings with respect to the copyrighted software:
+ *
+ * 1. The software is copyrighted in the name of the Board of Trustees
+ * of the University of Illinois (UI), and ownership of the software
+ * remains with the UI.
+ *
+ * 2. Permission to use, copy, and modify this software and its documentation
+ * for education, research, and non-profit purposes is hereby granted
+ * to Licensee, provided that the copyright notice, the original author's
+ * names and unit identification, and this permission notice appear on
+ * all such copies, and that no charge be made for such copies. Any
+ * entity desiring permission to incorporate this software into commercial
+ * products should contact:
+ *
+ * Professor Daniel A. Reed reed@cs.uiuc.edu
+ * University of Illinois
+ * Department of Computer Science
+ * 2413 Digital Computer Laboratory
+ * 1304 West Springfield Avenue
+ * Urbana, Illinois 61801
+ * USA
+ *
+ * 3. Licensee may not use the name, logo, or any other symbol of the UI
+ * nor the names of any of its employees nor any adaptation thereof in
+ * advertizing or publicity pertaining to the software without specific
+ * prior written approval of the UI.
+ *
+ * 4. THE UI MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE
+ * SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS
+ * OR IMPLIED WARRANTY.
+ *
+ * 5. The UI shall not be liable for any damages suffered by Licensee from
+ * the use of this software.
+ *
+ * 6. The software was developed under agreements between the UI and the
+ * Federal Government which entitle the Government to certain rights.
+ *
+ **************************************************************************
+ *
+ * Developed by: The Pablo Research Group
+ * University of Illinois at Urbana-Champaign
+ * Department of Computer Science
+ * 1304 W. Springfield Avenue
+ * Urbana, IL 61801
+ *
+ * http://www-pablo.cs.uiuc.edu
+ *
+ * Send comments to: pablo-feedback@guitar.cs.uiuc.edu
+ *
+ * Copyright (c) 1987-1996
+ * The University of Illinois Board of Trustees.
+ * All Rights Reserved.
+ *
+ * PABLO is a registered trademark of
+ * The Board of Trustees of the University of Illinois
+ * registered in the U.S. Patent and Trademark Office.
+ *
+ * Author: Dan Wells (dwells@cs.uiuc.edu)
+ *
+ * Project Manager and Principal Investigator:
+ * Daniel A. Reed (reed@cs.uiuc.edu)
+ *
+ * Funded in part by National Science Foundation grants NSF CCR87-06653
+ * and NSF CDA87-22836 (Tapestry), DARPA contracts DABT63-91-K-0004,
+ * DABT63-93-C-0040, DABT63-94-C-0049 (SIO), and F30602-96-C-0161, NASA
+ * contracts NAG-1-613 (ICLASS), USRA 5555-22, and NGT-51023, and a
+ * collaborative research agreement with the Intel Supercomputer
+ * Systems Division
+ */
+/*
+ * HDFrecord.h: Class to represent HDF records.
+ *
+ * $Header$
+ */
+
+#ifndef HDFRECORD_RT_H
+#define HDFRECORD_RT_H
+#ifndef NULL
+#define NULL 0
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+#include <limits.h>
+#include "ProcIDs.h"
+
+#ifndef min
+#define min( x , y ) ( x <= y ? x : y )
+#endif
+#ifndef max
+#define max( x , y ) ( x >= y ? x : y )
+#endif
+/*======================================================================*
+// Enumeration of time fields in an HDFrec_t below *
+//======================================================================*/
+enum TimeFields { HDF_, MPI, Malloc, AllIO, Open, Close, Read, Write, ARead,
+ AWrite, Seek, Wait, Misc, nTallyFields };
+/*======================================================================*
+// Enumeration of byte fields in an HDFrec_t below *
+//======================================================================*/
+enum ByteFields{ MallocBytes, ReadBytes, WriteBytes, AReadBytes, AWriteBytes,
+ nByteFields };
+/*======================================================================*
+// Definition of first and last IO event. *
+//======================================================================*/
+#define FirstIO Open
+#define LastIO Misc
+#define nBkts 4
+#define ONEK 1024
+int BktLim[] = { 1, 4*ONEK, 64*ONEK, 256*ONEK, INT_MAX } ;
+/*======================================================================*
+// Definition of structure used to account activity in an HDF call *
+//======================================================================*/
+typedef struct {
+ int nCalls; /* number of proc calls */
+ CLOCK lastCall; /* time of last call */
+ CLOCK incDur; /* inclusive duration */
+ CLOCK excDur; /* exclusive duration */
+ CLOCK times[nTallyFields]; /* Tally op/calls times */
+ int counts[nTallyFields]; /* Tally op/calls counts */
+ int bytes[nByteFields]; /* Tally bytes transferred */
+ int Hists[nByteFields][nBkts]; /* Historgrams */
+ long hdfID; /* data set ID */
+ long xRef; /* data set cross reference */
+} HDFrec_t;
+/*======================================================================*
+// Node used to maintain linked lists of HDF procedure activity. *
+//======================================================================*/
+typedef struct HDFnode {
+ CLOCK lastIOtime; /* last IO time stamp */
+ HDFrec_t record; /* data */
+ struct HDFnode *ptr; /* link pointer */
+ int eventID; /* event ID */
+} HDFnode_t;
+/*======================================================================*
+// Structure used to produce SDDF packets for Named identifiers. *
+//======================================================================*/
+typedef struct {
+ int packetLength; /* bytes in packet */
+ int packetType; /* == PKT_DATA */
+ int packetTag; /* == FAMILY_<name> */
+ int fileType; /* Type of data set */
+ int fileID; /* File ID */
+ int nameLen; /* length of file */
+} HDFNamePacket_t;
+/*======================================================================*
+// Node used to form linked lists to track named identifiers. *
+//======================================================================*/
+typedef struct fileRec {
+ struct fileRec *ptr;
+ long hdfID;
+ long PabloID;
+ char *fileName;
+} fileRec_t;
+/*=======================================================================
+// Utility programs to determine field index for a given eventID *
+//=====================================================================*/
+int getHDFFieldIndex( int eventID );
+int getHDFByteFieldIndex( int eventID );
+
+/*
+ * Define flags to distinguish misc i/o begin from misc i/o end
+ */
+#define MISC_BEGIN 0
+#define MISC_END 1
+
+#endif /* HDFRECORD_RT_H */
diff --git a/pablo/Makefile.in b/pablo/Makefile.in
index 9a2a458..b5fb367 100644
--- a/pablo/Makefile.in
+++ b/pablo/Makefile.in
@@ -31,14 +31,18 @@ LIB_SRC=H5.c H5A.c H5AC.c H5B.c H5D.c H5E.c H5F.c H5Farray.c H5Fcore.c \
H5Olayout.c H5Omtime.c H5Oname.c H5Onull.c H5Osdspace.c H5Oshared.c \
H5Ostab.c H5P.c H5R.c H5RA.c H5S.c H5Sall.c H5Shyper.c H5Smpio.c \
H5Snone.c H5Spoint.c H5Sselect.c H5T.c H5Tbit.c H5Tconv.c H5Tinit.c \
- H5TB.c H5V.c H5Z.c PabloHDF5.c PabloHDF_RT.c PabloHDF_SDDF.c
+ H5TB.c H5V.c H5Z.c PabloHDF.c PabloHDF_RT.c PabloHDF_SDDF.c
LIB_OBJ=$(LIB_SRC:.c=.o)
# Temporary files
MOSTLYCLEAN=H5detect.o H5detect H5Tinit.o H5Tinit.c
-# Public header files (to be installed)...
+# Pablo header files (to be installed)...
+PABLO_HDR = HDFentryNames.h HDFidList.h ProcIDs.h HDFTrace.h ProcTrace.h \
+ ProcTrace.inc
+
+# Public header files ...
PUB_HDR=H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5Dpublic.h \
H5Epublic.h H5Fpublic.h H5Gpublic.h H5HGpublic.h H5HLpublic.h \
H5Ipublic.h H5MFpublic.h H5MMpublic.h H5Opublic.h H5Ppublic.h \
@@ -93,6 +97,12 @@ install: $(LIB)
(set -x; $(INSTALL_DATA) $$f $(libdir)/. || exit 1); \
fi; \
done
+ @test -d $(includedir) || mkdir $(includedir)
+ @for f in X $(PABLO_HDR); do \
+ if test $$f != X; then \
+ (set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \
+ fi \
+ done
# Removes those things that `make install' (would have) installed.
uninstall:
@@ -110,7 +120,7 @@ mostlyclean:
# is part of the HDF5 distribution.
#
clean: mostlyclean
- $(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN)
+ $(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN) $(PABLO_CLEAN)
# Like `clean' except it also removes files that were created by running
# configure. If you've unpacked the source and built HDF5 without creating
@@ -138,10 +148,44 @@ maintainer-clean: distclean
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c ../src/$*.c
-PABLO_INCLUDES = HDFentryNames.h HDFidList.h HDF5record_RT.h ProcIDs.h \
- ProcTrace.h
+PABLO_INCLUDES = HDFentryNames.h HDFidList.h ProcIDs.h HDFTrace.h ProcTrace.h \
+ ProcTrace.inc
+
+PABLO_CLEAN = HDFentryNames.h HDFidList.h ProcMasks.h HDFentries.txt
+
+HDFentries.txt: ../src/*.c
+ grep "FUNC_ENTER.*(H5" ../src/*.c | \
+ sed "s/.*(H5/H5/;s/[,)].*//" | sort -u > $@
+
+HDFentryNames.h: HDFentries.txt
+ sed "s/.*/\"&\",/" $? > $@
+
+HDFidList.h: HDFentries.txt
+ sed "s/.*/ID_&,/" $? > $@
+ echo ID_ALLHDF, >> $@
+ grep "#define[ ]*PABLO_MASK" ../src/*.c | \
+ sed "s/.*H5/ID_H5/;s/mask.*/c,/" | sort -u >> $@
+
+ProcMasks.h: ../src/*.c
+ grep "#define[ ]*PABLO_MASK" ../src/*.c | \
+ sed "s/.*[ ]H5/H5/;s/_mask.*//;s/.*/#define &_mask ID_&_c/" >$@
+
+ProcIDs.h: HDFidList.h ProcMasks.h
-PabloHDF5.o: PabloHDF5.c $(PABLO_INCLUDES)
+ProcTrace.inc: HDFidList.h
+ sed "=" $? | sed -f PabloSedscr > $@
+ echo " integer RuntimeTrace" >> $@
+ echo " integer SummaryTrace" >> $@
+ echo " integer MPIRuntimeTrace" >> $@
+ echo " integer MPISummaryTrace" >> $@
+ echo " integer NoTrace" >> $@
+ echo " parameter (RuntimeTrace = 0)" >> $@
+ echo " parameter (SummaryTrace = 1)" >> $@
+ echo " parameter (MPIRuntimeTrace = 2)" >> $@
+ echo " parameter (MPISummaryTrace = 3)" >> $@
+ echo " parameter (NoTrace = 4)" >> $@
+
+PabloHDF.o: PabloHDF.c $(PABLO_INCLUDES)
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
PabloHDF_RT.o: PabloHDF_RT.c $(PABLO_INCLUDES)
@@ -149,13 +193,6 @@ PabloHDF_RT.o: PabloHDF_RT.c $(PABLO_INCLUDES)
PabloHDF_SDDF.o: PabloHDF_SDDF.c $(PABLO_INCLUDES)
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
-
-HDFentryNames.h: HDFentries.txt
- sort $? | sed "s/.*/\"&\",/" > $@
-
-HDFidList.h: HDFentries.txt
- sort $? | sed "s/.*/ID_&,/" > $@
-
#------------------------------------------------------------------------------
# The following section of this makefile contains dependencies between the
# source files and the header files. If GNU make and GCC are being used then