From 92cc3fe39fcf1862cb87a3e417167124730ee27e Mon Sep 17 00:00:00 2001 From: Dan Wells Date: Wed, 14 Apr 1999 16:17:56 -0500 Subject: [PATCH] [svn-r1180] Changes to allow automatic building of tables of event IDs and to make HDF 4 and HDF 5 output compatible. --- pablo/HDFentries.txt | 798 ------------------------------------------ pablo/HDFmpioProtos.h | 86 +++++ pablo/HDFrecord_RT.h | 176 ++++++++++ pablo/Makefile.in | 63 +++- 4 files changed, 312 insertions(+), 811 deletions(-) delete mode 100644 pablo/HDFentries.txt create mode 100644 pablo/HDFmpioProtos.h create mode 100644 pablo/HDFrecord_RT.h diff --git a/pablo/HDFentries.txt b/pablo/HDFentries.txt deleted file mode 100644 index 9892628fb3..0000000000 --- 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 0000000000..e5d33ef9e8 --- /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 0000000000..808eaefe4c --- /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 +#include +#include +#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_ */ + 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 9a2a45857c..b5fb367da8 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 -PabloHDF5.o: PabloHDF5.c $(PABLO_INCLUDES) +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 + +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