diff options
-rw-r--r-- | MANIFEST | 2 | ||||
-rwxr-xr-x | bin/trace | 201 | ||||
-rw-r--r-- | config/commence.in | 3 | ||||
-rw-r--r-- | config/depend.in | 7 | ||||
-rwxr-xr-x | configure | 239 | ||||
-rw-r--r-- | configure.in | 15 | ||||
-rw-r--r-- | src/H5.c | 722 | ||||
-rw-r--r-- | src/H5A.c | 38 | ||||
-rw-r--r-- | src/H5D.c | 21 | ||||
-rw-r--r-- | src/H5Distore.c | 3 | ||||
-rw-r--r-- | src/H5E.c | 13 | ||||
-rw-r--r-- | src/H5Eprivate.h | 5 | ||||
-rw-r--r-- | src/H5Epublic.h | 5 | ||||
-rw-r--r-- | src/H5F.c | 55 | ||||
-rw-r--r-- | src/H5Fistore.c | 3 | ||||
-rw-r--r-- | src/H5Flow.c | 4 | ||||
-rw-r--r-- | src/H5G.c | 24 | ||||
-rw-r--r-- | src/H5Ipublic.h | 1 | ||||
-rw-r--r-- | src/H5Oattr.c | 7 | ||||
-rw-r--r-- | src/H5Odtype.c | 13 | ||||
-rw-r--r-- | src/H5P.c | 73 | ||||
-rw-r--r-- | src/H5S.c | 28 | ||||
-rw-r--r-- | src/H5T.c | 109 | ||||
-rw-r--r-- | src/H5Tconv.c | 2 | ||||
-rw-r--r-- | src/H5Z.c | 1 | ||||
-rw-r--r-- | src/H5private.h | 70 | ||||
-rw-r--r-- | src/Makefile.in | 1 | ||||
-rw-r--r-- | test/dsets.c | 2 | ||||
-rw-r--r-- | test/dtypes.c | 4 |
29 files changed, 1406 insertions, 265 deletions
@@ -17,6 +17,7 @@ ./bin/errors ./bin/install-sh ./bin/release +./bin/trace ./bin/versinc ./config/BlankForm ./config/alpha-dec @@ -110,6 +111,7 @@ ./html/study_p1.gif ./html/study_p1.obj ./html/symtab +./html/tracing.html ./html/version.gif ./html/version.obj ./src/.distdep diff --git a/bin/trace b/bin/trace new file mode 100755 index 0000000..a124d5c --- /dev/null +++ b/bin/trace @@ -0,0 +1,201 @@ +#!/usr/bin/perl -w +require 5.003; +$Source = ""; + +############################################################################## +# A map from type name to type letter. We use this map for two reasons: +# 1. We want the debugging stuff in the source code to be as unobtrusive as +# possible, which means as compact as possible. +# 2. It's easier (faster) to parse these one and two-letter types in the C +# functions that display debugging results. +# +# All type strings are one or two characters. One-character strings +# are always lower case and should be used for common types. +# Two-character strings begin with an upper-case letter which is +# usually the same as the package name. +# +%TypeString = ("hbool_t" => "b", + "double" => "d", + "H5D_layout_t" => "Dl", + "H5D_transfer_t" => "Dt", + "herr_t" => "e", + "H5E_direction_t" => "Ed", + "H5E_error_t*" => "Ee", + "H5G_link_t" => "Gl", + "H5G_stat_t*" => "Gs", + "hsize_t" => "h", + "hssize_t" => "Hs", + "hid_t" => "i", + "int" => "Is", + "unsigned" => "Iu", + "unsigned int" => "Iu", + "MPI_Comm" => "Mc", + "MPI_Info" => "Mi", + "off_t" => "o", + "H5P_class_t" => "p", + "char*" => "s", + "H5T_cset_t", => "Tc", + "H5T_norm_t" => "Tn", + "H5T_order_t" => "To", + "H5T_pad_t" => "Tp", + "H5T_sign_t" => "Ts", + "H5T_class_t" => "Tt", + "H5T_str_t" => "Tz", + "void*" => "x", + "FILE*" => "x", + "H5A_operator_t" => "x", + "H5E_auto_t" => "x", + "H5E_walk_t" => "x", + "H5G_iterate_t" => "x", + "H5T_conv_t" => "x", + "H5Z_func_t" => "x", + "size_t" => "z", + "H5Z_method_t" => "Zm", + "ssize_t" => "Zs", + ); + +############################################################################## +# Print an error message. +# +sub errmesg ($$@) { + my ($file, $func, @mesg) = @_; + my ($mesg) = join "", @mesg; + my ($lineno) = 1; + if ($Source =~ /(.*?\n)($func)/s) { + local $_ = $1; + $lineno = tr/\n/\n/; + } + + print "$file: in function \`$func\':\n"; + print "$file:$lineno: $mesg\n"; +} + +############################################################################## +# Given a C data type return the type string that goes with it. +# +sub argstring ($$$) { + my ($file, $func, $atype) = @_; + my ($ptr, $tstr) = (0,"!"); + + # Normalize the data type by removing redundant white space, + # certain type qualifiers, and indirection. + $atype =~ s/^\bconst\b//; + $atype =~ s/\b__unused__\b//g; + $atype =~ s/\s+/ /g; + $ptr = length $1 if $atype =~ s/(\*+)//; + $atype =~ s/^\s+//; + $atype =~ s/\s+$//; + + if ($ptr>0 && exists $TypeString{"$atype*"}) { + --$ptr; + $tstr = $TypeString{"$atype*"}; + } elsif (!exists $TypeString{$atype}) { + errmesg $file, $func, "unknown type \`$atype", '*'x$ptr, "\'"; + } else { + $tstr = $TypeString{$atype}; + } + return ("*" x $ptr) . $tstr; +} + +############################################################################## +# Given information about an API function, rewrite that function with +# updated tracing information. +# +sub rewrite_func ($$$$$) { + my ($file, $type, $name, $args, $body) = @_; + my ($arg,$trace); + my (@arg_name, @arg_str); + local $_; + + # Parse return value + my $rettype = argstring $file, $name, $type; + goto error if $rettype =~ /!/; + + # Parse arguments + if ($args eq "void") { + $trace = "H5TRACE0(\"$rettype\", \"\");\n"; + } else { + my @args = split /,[\s\n]*/, $args; + for $arg (@args) { + unless ($arg=~/^(([a-z_A-Z]\w*\s+)+\**) + ([a-z_A-Z]\w*)(\[\])? + (\s*\/\*\s*(in|out|in,\s*out)\s*\*\/)?\s*$/x) { + errmesg $file, $name, "unable to parse \`$arg\'"; + goto error; + } else { + my ($atype, $aname, $array, $adir) = ($1, $3, $4, $6); + $adir ||= "in"; + next if $adir eq "out"; + $atype =~ s/\s+$//; + $atype .= "*" if $array; + push @arg_name, $aname; + push @arg_str, argstring $file, $name, $atype; + } + } + $trace = "H5TRACE" . scalar(@arg_str) . "(\"$rettype\",\""; + $trace .= join("", @arg_str) . "\""; + my $len = 4 + length $trace; + for (@arg_name) { + if ($len + length >= 78) { + $trace .= ",\n $_"; + $len = 13 + length; + } else { + $trace .= ",$_"; + $len += 1 + length; + } + } + $trace .= ");\n"; + } + goto error if grep {/!/} @arg_str; + + # The H5TRACE() statement + if ($body =~ /\/\*[ \t]*NO[ \t]*TRACE[ \t]*\*\//) { + if ($body =~ /\s*H5TRACE\d+\s*\(/) { + errmesg $file, $name, "warning: trace info was not updated"; + } else { + errmesg $file, $name, "warning: trace info was not inserted"; + } + } elsif ($body =~ s/((\n[ \t]*)H5TRACE\d+\s*\(.*?\);)\n/"$2$trace"/es) { + # Replaced an H5TRACE macro + } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\s*\([ \t]*?\);)\n/"$1$2$trace"/es) { + # Added an H5TRACE macro after a FUNC_ENTER macro. + } else { + errmesg $file, $name, "unable to insert tracing information"; + goto error; + } + + + error: + return "\n$type\n$name ($args)$body"; +} + +############################################################################## +# Process each source file, rewriting API functions with updated +# tracing information. +# +my $total_api = 0; +for $file (@ARGV) { + # Snarf up the entire file + open SOURCE, $file or die "$file: $!\n"; + $Source = join "", <SOURCE>; + close SOURCE; + + # Make modifications + my $original = $Source; + my $napi = $Source =~ s/\n([a-z]\w*(\s+[a-z]\w*)*)\s*\n #type + (H5[A-Z]{1,2}[^_A-Z]\w*) #name + \s*\((.*?)\) #args + (.*?\n\}[^\n]*) #body + /rewrite_func($file,$1,$3,$4,$5)/segx; + $total_api += $napi; + + # If the source changed then print out the new version + if ($original ne $Source) { + printf "%s: instrumented %d API function%s\n", + $file, $napi, 1==$napi?"":"s"; + rename $file, "$file~" or die "unable to make backup"; + open SOURCE, ">$file" or die "unable to modify source"; + print SOURCE $Source; + close SOURCE; + } +} diff --git a/config/commence.in b/config/commence.in index 7b41932..8b33182 100644 --- a/config/commence.in +++ b/config/commence.in @@ -12,7 +12,7 @@ # Programs SHELL=/bin/sh CC=@CC@ -CFLAGS=@CFLAGS@ +CFLAGS=-D_POSIX_SOURCE @CFLAGS@ CPPFLAGS=@CPPFLAGS@ LIBS=@LIBS@ AR=@AR@ @@ -23,6 +23,7 @@ INSTALL=@INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_DATA=@INSTALL_DATA@ RUNTEST=@RUNTEST@ +TRACE=: # Installation points ROOT=@ROOT@ diff --git a/config/depend.in b/config/depend.in index dae45ce..2bd98af 100644 --- a/config/depend.in +++ b/config/depend.in @@ -14,6 +14,12 @@ # have dependency information rebuilt, and the Makefile is not # modified. # +# This is also where tracing information is updated. The $(TRACE) +# program is run on each source file to make sure that the H5TRACE() +# macros are up to date. If they are then the file is not modified, +# otherwise the file is changed and a backup is saved by appending a +# tilde to the file name. +# .PRECIOUS: .depend .distdep dep depend: .distdep @@ -28,6 +34,7 @@ dep depend: .distdep echo Building dependencies for $$dep; \ obj=`echo $$dep | sed 's/\.c/\\\\.o/'`; \ sed "/$$obj/,/[^\\]$$/d" <$@ >$@- && mv $@- $@; \ + $(TRACE) $$dep; \ $(CC) -M -MG $(CPPFLAGS) $$dep >>$@; \ fi; \ done; @@ -27,6 +27,8 @@ ac_help="$ac_help without the leading H5 or the word no. The default is most packages." ac_help="$ac_help +--enable-tracing Cause the library to trace all API calls" +ac_help="$ac_help --enable-parallel=mpio Enable parallel support with MPIO" # Initialize some variables set by options. @@ -562,7 +564,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:566: checking host system type" >&5 +echo "configure:568: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -585,7 +587,7 @@ echo "$ac_t""$host" 1>&6 echo $ac_n "checking for cached host""... $ac_c" 1>&6 -echo "configure:589: checking for cached host" >&5 +echo "configure:591: checking for cached host" >&5 if eval "test \"`echo '$''{'hdf5_cv_host'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -604,7 +606,7 @@ fi echo $ac_n "checking for site config file""... $ac_c" 1>&6 -echo "configure:608: checking for site config file" >&5 +echo "configure:610: checking for site config file" >&5 site_config="none" for f in $host \ $host_vendor-$host_os \ @@ -627,7 +629,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:631: checking for $ac_word" >&5 +echo "configure:633: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -656,7 +658,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:660: checking for $ac_word" >&5 +echo "configure:662: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -704,7 +706,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:708: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:710: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -714,11 +716,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <<EOF -#line 718 "configure" +#line 720 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -738,12 +740,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:742: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:744: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:747: checking whether we are using GNU C" >&5 +echo "configure:749: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -752,7 +754,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:756: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:758: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -767,7 +769,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:771: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:773: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -795,7 +797,7 @@ else fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:799: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:801: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -832,7 +834,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:836: checking for a BSD compatible install" >&5 +echo "configure:838: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -884,7 +886,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:888: checking for $ac_word" >&5 +echo "configure:890: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -917,7 +919,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:921: checking for $ac_word" >&5 +echo "configure:923: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -950,7 +952,7 @@ fi echo $ac_n "checking for GNU Make""... $ac_c" 1>&6 -echo "configure:954: checking for GNU Make" >&5 +echo "configure:956: checking for GNU Make" >&5 if test "`${MAKE-make} --version -f /dev/null 2>/dev/null |\ sed -n 1p|cut -c1-8`" = "GNU Make"; then echo "$ac_t""yes" 1>&6 @@ -964,7 +966,7 @@ if test Xyes = "X$GCC"; then fi echo $ac_n "checking for production mode""... $ac_c" 1>&6 -echo "configure:968: checking for production mode" >&5 +echo "configure:970: checking for production mode" >&5 # Check whether --enable-production or --disable-production was given. if test "${enable_production+set}" = set; then enableval="$enable_production" @@ -995,7 +997,7 @@ esac echo $ac_n "checking for ceil in -lm""... $ac_c" 1>&6 -echo "configure:999: checking for ceil in -lm" >&5 +echo "configure:1001: checking for ceil in -lm" >&5 ac_lib_var=`echo m'_'ceil | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1003,7 +1005,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF -#line 1007 "configure" +#line 1009 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -1014,7 +1016,7 @@ int main() { ceil() ; return 0; } EOF -if { (eval echo configure:1018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1042,7 +1044,7 @@ else fi echo $ac_n "checking for main in -lcoug""... $ac_c" 1>&6 -echo "configure:1046: checking for main in -lcoug" >&5 +echo "configure:1048: checking for main in -lcoug" >&5 ac_lib_var=`echo coug'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1050,14 +1052,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lcoug $LIBS" cat > conftest.$ac_ext <<EOF -#line 1054 "configure" +#line 1056 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:1061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1084,7 +1086,7 @@ else echo "$ac_t""no" 1>&6 fi echo $ac_n "checking for compress2 in -lz""... $ac_c" 1>&6 -echo "configure:1088: checking for compress2 in -lz" >&5 +echo "configure:1090: checking for compress2 in -lz" >&5 ac_lib_var=`echo z'_'compress2 | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1092,7 +1094,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lz $LIBS" cat > conftest.$ac_ext <<EOF -#line 1096 "configure" +#line 1098 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -1103,7 +1105,7 @@ int main() { compress2() ; return 0; } EOF -if { (eval echo configure:1107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1132,7 +1134,7 @@ fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1136: checking how to run the C preprocessor" >&5 +echo "configure:1138: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1147,13 +1149,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 1151 "configure" +#line 1153 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1164,13 +1166,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1168 "configure" +#line 1170 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1174: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1193,12 +1195,12 @@ fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1197: checking for ANSI C header files" >&5 +echo "configure:1199: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1202 "configure" +#line 1204 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -1206,7 +1208,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1223,7 +1225,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 1227 "configure" +#line 1229 "configure" #include "confdefs.h" #include <string.h> EOF @@ -1241,7 +1243,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 1245 "configure" +#line 1247 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -1262,7 +1264,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 1266 "configure" +#line 1268 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1273,7 +1275,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then : else @@ -1300,17 +1302,17 @@ for ac_hdr in unistd.h zlib.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1304: checking for $ac_hdr" >&5 +echo "configure:1306: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1309 "configure" +#line 1311 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1316: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1339,12 +1341,12 @@ done echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:1343: checking for off_t" >&5 +echo "configure:1345: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1348 "configure" +#line 1350 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -1372,12 +1374,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:1376: checking for size_t" >&5 +echo "configure:1378: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1381 "configure" +#line 1383 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -1405,14 +1407,14 @@ EOF fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:1409: checking whether byte ordering is bigendian" >&5 +echo "configure:1411: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext <<EOF -#line 1416 "configure" +#line 1418 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -1423,11 +1425,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext <<EOF -#line 1431 "configure" +#line 1433 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -1438,7 +1440,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -1458,7 +1460,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <<EOF -#line 1462 "configure" +#line 1464 "configure" #include "confdefs.h" main () { /* Are we little or big endian? From Harbison&Steele. */ @@ -1471,7 +1473,7 @@ main () { exit (u.c[sizeof (long) - 1] == 1); } EOF -if { (eval echo configure:1475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -1495,7 +1497,7 @@ EOF fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:1499: checking size of short" >&5 +echo "configure:1501: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1503,7 +1505,7 @@ else ac_cv_sizeof_short=2 else cat > conftest.$ac_ext <<EOF -#line 1507 "configure" +#line 1509 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1514,7 +1516,7 @@ main() exit(0); } EOF -if { (eval echo configure:1518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else @@ -1534,7 +1536,7 @@ EOF echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:1538: checking size of int" >&5 +echo "configure:1540: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1542,7 +1544,7 @@ else ac_cv_sizeof_int=4 else cat > conftest.$ac_ext <<EOF -#line 1546 "configure" +#line 1548 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1553,7 +1555,7 @@ main() exit(0); } EOF -if { (eval echo configure:1557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else @@ -1573,7 +1575,7 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:1577: checking size of long" >&5 +echo "configure:1579: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1581,7 +1583,7 @@ else ac_cv_sizeof_long=4 else cat > conftest.$ac_ext <<EOF -#line 1585 "configure" +#line 1587 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1592,7 +1594,7 @@ main() exit(0); } EOF -if { (eval echo configure:1596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else @@ -1612,7 +1614,7 @@ EOF echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:1616: checking size of long long" >&5 +echo "configure:1618: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1620,7 +1622,7 @@ else ac_cv_sizeof_long_long=8 else cat > conftest.$ac_ext <<EOF -#line 1624 "configure" +#line 1626 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1631,7 +1633,7 @@ main() exit(0); } EOF -if { (eval echo configure:1635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_long=`cat conftestval` else @@ -1651,7 +1653,7 @@ EOF echo $ac_n "checking size of float""... $ac_c" 1>&6 -echo "configure:1655: checking size of float" >&5 +echo "configure:1657: checking size of float" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1659,7 +1661,7 @@ else ac_cv_sizeof_float=4 else cat > conftest.$ac_ext <<EOF -#line 1663 "configure" +#line 1665 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1670,7 +1672,7 @@ main() exit(0); } EOF -if { (eval echo configure:1674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_float=`cat conftestval` else @@ -1690,7 +1692,7 @@ EOF echo $ac_n "checking size of double""... $ac_c" 1>&6 -echo "configure:1694: checking size of double" >&5 +echo "configure:1696: checking size of double" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1698,7 +1700,7 @@ else ac_cv_sizeof_double=8 else cat > conftest.$ac_ext <<EOF -#line 1702 "configure" +#line 1704 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1709,7 +1711,7 @@ main() exit(0); } EOF -if { (eval echo configure:1713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_double=`cat conftestval` else @@ -1729,7 +1731,7 @@ EOF echo $ac_n "checking size of long double""... $ac_c" 1>&6 -echo "configure:1733: checking size of long double" >&5 +echo "configure:1735: checking size of long double" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1737,7 +1739,7 @@ else ac_cv_sizeof_long_double=8 else cat > conftest.$ac_ext <<EOF -#line 1741 "configure" +#line 1743 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1748,7 +1750,7 @@ main() exit(0); } EOF -if { (eval echo configure:1752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_double=`cat conftestval` else @@ -1768,7 +1770,7 @@ EOF echo $ac_n "checking size of size_t""... $ac_c" 1>&6 -echo "configure:1772: checking size of size_t" >&5 +echo "configure:1774: checking size of size_t" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1776,7 +1778,7 @@ else ac_cv_sizeof_size_t=4 else cat > conftest.$ac_ext <<EOF -#line 1780 "configure" +#line 1782 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1787,7 +1789,7 @@ main() exit(0); } EOF -if { (eval echo configure:1791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_size_t=`cat conftestval` else @@ -1810,7 +1812,7 @@ cat >>confdefs.h <<\EOF #include <sys/types.h> /*for off_t definition*/ EOF echo $ac_n "checking size of off_t""... $ac_c" 1>&6 -echo "configure:1814: checking size of off_t" >&5 +echo "configure:1816: checking size of off_t" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1818,7 +1820,7 @@ else ac_cv_sizeof_off_t=4 else cat > conftest.$ac_ext <<EOF -#line 1822 "configure" +#line 1824 "configure" #include "confdefs.h" #include <stdio.h> main() @@ -1829,7 +1831,7 @@ main() exit(0); } EOF -if { (eval echo configure:1833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_off_t=`cat conftestval` else @@ -1856,7 +1858,7 @@ if test "${enable_hsizet+set}" = set; then fi echo $ac_n "checking for sizeof hsize_t and hssize_t""... $ac_c" 1>&6 -echo "configure:1860: checking for sizeof hsize_t and hssize_t" >&5 +echo "configure:1862: checking for sizeof hsize_t and hssize_t" >&5 case $HSIZET in no|small) echo "$ac_t""small" 1>&6 @@ -1874,12 +1876,12 @@ esac for ac_func in getpwuid gethostname system getrusage do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1878: checking for $ac_func" >&5 +echo "configure:1880: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1883 "configure" +#line 1885 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1902,7 +1904,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1928,24 +1930,24 @@ done cat > conftest.$ac_ext <<EOF -#line 1932 "configure" +#line 1934 "configure" #include "confdefs.h" #include<sys/types.h> int main() { off64_t n = 0; ; return 0; } EOF -if { (eval echo configure:1939: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* for ac_func in lseek64 fseek64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1944: checking for $ac_func" >&5 +echo "configure:1946: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1949 "configure" +#line 1951 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1968,7 +1970,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2003,12 +2005,12 @@ rm -f conftest* echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2007: checking for working const" >&5 +echo "configure:2009: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2012 "configure" +#line 2014 "configure" #include "confdefs.h" int main() { @@ -2057,7 +2059,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:2061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2078,21 +2080,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2082: checking for inline" >&5 +echo "configure:2084: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <<EOF -#line 2089 "configure" +#line 2091 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:2096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2119,16 +2121,16 @@ esac echo $ac_n "checking for __attribute__ extension""... $ac_c" 1>&6 -echo "configure:2123: checking for __attribute__ extension" >&5 +echo "configure:2125: checking for __attribute__ extension" >&5 cat > conftest.$ac_ext <<EOF -#line 2125 "configure" +#line 2127 "configure" #include "confdefs.h" int main() { int __attribute__((unused)) f(void){return 1;} ; return 0; } EOF -if { (eval echo configure:2132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2134: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_ATTRIBUTE 1 @@ -2144,16 +2146,16 @@ fi rm -f conftest* echo $ac_n "checking for __FUNCTION__ extension""... $ac_c" 1>&6 -echo "configure:2148: checking for __FUNCTION__ extension" >&5 +echo "configure:2150: checking for __FUNCTION__ extension" >&5 cat > conftest.$ac_ext <<EOF -#line 2150 "configure" +#line 2152 "configure" #include "confdefs.h" int main() { int f(void){return __FUNCTION__;} ; return 0; } EOF -if { (eval echo configure:2157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_FUNCTION 1 @@ -2169,7 +2171,7 @@ fi rm -f conftest* echo $ac_n "checking how to print long long""... $ac_c" 1>&6 -echo "configure:2173: checking how to print long long" >&5; +echo "configure:2175: checking how to print long long" >&5 if eval "test \"`echo '$''{'hdf5_cv_printf_ll'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2178,7 +2180,7 @@ else { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <<EOF -#line 2182 "configure" +#line 2184 "configure" #include "confdefs.h" #include <stdio.h> @@ -2189,7 +2191,7 @@ else sprintf(s,"%${hdf5_cv_printf_ll}d",x); exit (strcmp(s,"1099511627776"));} EOF -if { (eval echo configure:2193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then break else @@ -2210,7 +2212,7 @@ EOF echo $ac_n "checking for debug flags""... $ac_c" 1>&6 -echo "configure:2214: checking for debug flags" >&5; +echo "configure:2216: checking for debug flags" >&5 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" @@ -2241,6 +2243,19 @@ if test "X" != "X$DEBUG_PKG"; then done fi +echo $ac_n "checking for API tracing""... $ac_c" 1>&6 +echo "configure:2248: checking for API tracing" >&5; +# Check whether --enable-tracing or --disable-tracing was given. +if test "${enable_tracing+set}" = set; then + enableval="$enable_tracing" + CPPFLAGS="$CPPFLAGS -DH5_DEBUG_API" + echo "$ac_t""yes" 1>&6 +else + CPPFLAGS="$CPPFLAGS -UH5_DEBUG_API" + echo "$ac_t""no" 1>&6 +fi + + # Check whether --enable-parallel or --disable-parallel was given. if test "${enable_parallel+set}" = set; then enableval="$enable_parallel" @@ -2248,7 +2263,7 @@ if test "${enable_parallel+set}" = set; then fi echo $ac_n "checking for parallel support""... $ac_c" 1>&6 -echo "configure:2252: checking for parallel support" >&5; +echo "configure:2267: checking for parallel support" >&5; case "X-$PARALLEL" in @@ -2273,7 +2288,7 @@ EOF CFLAGS="$CFLAGS $MPI_LIB" RUNTEST="$RUNTEST" echo $ac_n "checking for main in -lmpi""... $ac_c" 1>&6 -echo "configure:2277: checking for main in -lmpi" >&5 +echo "configure:2292: checking for main in -lmpi" >&5 ac_lib_var=`echo mpi'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2281,14 +2296,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lmpi $LIBS" cat > conftest.$ac_ext <<EOF -#line 2285 "configure" +#line 2300 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:2292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2315,7 +2330,7 @@ else echo "$ac_t""no" 1>&6 fi echo $ac_n "checking for main in -lmpio""... $ac_c" 1>&6 -echo "configure:2319: checking for main in -lmpio" >&5 +echo "configure:2334: checking for main in -lmpio" >&5 ac_lib_var=`echo mpio'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2323,14 +2338,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lmpio $LIBS" cat > conftest.$ac_ext <<EOF -#line 2327 "configure" +#line 2342 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:2334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else diff --git a/configure.in b/configure.in index 1a096c0..0d0a8cf 100644 --- a/configure.in +++ b/configure.in @@ -210,7 +210,7 @@ dnl Try to figure out how to print `long long'. Some machines use `%lld' dnl and others use `%qd'. There may be more! The final `l' is a dnl default in case none of the others work. dnl -AC_MSG_CHECKING(how to print long long); +AC_MSG_CHECKING(how to print long long) AC_CACHE_VAL(hdf5_cv_printf_ll, for hdf5_cv_printf_ll in ll q l; do AC_TRY_RUN([ @@ -230,7 +230,7 @@ AC_DEFINE_UNQUOTED(PRINTF_LL_WIDTH,"$hdf5_cv_printf_ll") dnl ---------------------------------------------------------------------- dnl Turn on debugging by setting compiler flags dnl -AC_MSG_CHECKING(for debug flags); +AC_MSG_CHECKING(for debug flags) AC_ARG_ENABLE(debug, [--enable-debug=all Turn on debugging in all packages. One may also specify a comma-separated list of package names @@ -262,6 +262,17 @@ if test "X" != "X$DEBUG_PKG"; then fi dnl ---------------------------------------------------------------------- +dnl Enable tracing of the API +dnl +AC_MSG_CHECKING(for API tracing); +AC_ARG_ENABLE(tracing, + --enable-tracing Cause the library to trace all API calls, + CPPFLAGS="$CPPFLAGS -DH5_DEBUG_API" + AC_MSG_RESULT(yes), + CPPFLAGS="$CPPFLAGS -UH5_DEBUG_API" + AC_MSG_RESULT(no)) + +dnl ---------------------------------------------------------------------- dnl Check for parallel support dnl AC_ARG_ENABLE(parallel, @@ -38,24 +38,27 @@ static char RcsId[] = "@(#)$Revision$"; #include <ctype.h> #include <errno.h> #include <stdarg.h> +#include <stdio.h> #include <sys/time.h> #include <sys/resource.h> /* private headers */ -#include <H5private.h> /*library */ -#include <H5ACprivate.h> /*cache */ -#include <H5Bprivate.h> /*B-link trees */ -#include <H5Eprivate.h> /*error handling */ -#include <H5MMprivate.h> /*memory management */ -#include <H5Tprivate.h> /*data types */ +#include <H5private.h> /*library */ +#include <H5ACprivate.h> /*cache */ +#include <H5Bprivate.h> /*B-link trees */ +#include <H5Eprivate.h> /*error handling */ +#include <H5Iprivate.h> /*atoms */ +#include <H5MMprivate.h> /*memory management */ +#include <H5Pprivate.h> /*property lists */ +#include <H5Tprivate.h> /*data types */ +#include <H5Zprivate.h> /*compression */ #define PABLO_MASK H5_mask -/*--------------------- Locally scoped variables -----------------------------*/ - hbool_t library_initialize_g = FALSE; hbool_t thread_initialize_g = FALSE; hbool_t install_atexit_g = TRUE; +static FILE *H5_trace_g = NULL; typedef struct H5_exit { void (*func) (void); /* Interface function to call during exit */ @@ -86,6 +89,17 @@ H5_init_library(void) { FUNC_ENTER_INIT(H5_init_library, NULL, FAIL); +#ifdef H5_DEBUG_API + { + /* Turn on tracing? */ + const char *s = getenv ("HDF5_TRACE"); + if (s && isdigit(*s)) { + int fd = HDstrtol (s, NULL, 0); + H5_trace_g = fdopen (fd, "w"); + } + } +#endif + /* Install atexit() library cleanup routine */ if (install_atexit_g == TRUE) if (HDatexit(&H5_term_library) != 0) @@ -908,3 +922,695 @@ H5_timer_end (H5_timer_t *sum/*in,out*/, H5_timer_t *timer/*in,out*/) } } + +/*------------------------------------------------------------------------- + * Function: H5_trace + * + * Purpose: This function is called whenever an API function is called + * and tracing is turned on. If RETURNING is non-zero then + * the caller is about to return. Otherwise we print the + * function name and the arguments. + * + * The TYPE argument is a string which gives the type of each of + * the following argument pairs. Each type is zero or more + * asterisks (one for each level of indirection, although some + * types have one level of indirection already implied) followed + * by either one letter (lower case) or two letters (first one + * uppercase). + * + * The variable argument list consists of pairs of values. Each + * pair is a string which is the formal argument name in the + * calling function, followed by the argument value. The type + * of the argument value is given by the TYPE string. + * + * Note: The TYPE string is meant to be terse and is generated by a + * separate perl script. + * + * Return: void + * + * Programmer: Robb Matzke + * Tuesday, June 16, 1998 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +void +H5_trace (hbool_t returning, const char *func, const char *type, ...) +{ + va_list ap; + char buf[64]; + const char *argname; + intn argno=0, ptr, n; + void *vp = NULL; + FILE *out = H5_trace_g; + + if (!out) return; /*tracing is off*/ + va_start (ap, type); + + if (returning) { + fprintf (out, " = "); + } else { + fprintf (out, "%s(", func); + } + + while (*type) { + /* Count levels of indirection */ + for (ptr=0; '*'==*type; type++) ptr++; + + /* + * The argument name. Leave off the `_id' part. If the argument + * name is the null pointer then don't print the argument or the + * following `='. This is used for return values. + */ + argname = va_arg (ap, char*); + if (argname) { + n = MAX (0, (int)strlen(argname)-3); + if (!strcmp (argname+n, "_id")) { + strncpy (buf, argname, MIN ((int)sizeof(buf)-1, n)); + buf[MIN((int)sizeof(buf)-1, n)] = '\0'; + argname = buf; + } + fprintf (out, "%s%s=", argno++?", ":"", argname); + } else { + argname = ""; + } + + /* The value */ + if (ptr) vp = va_arg (ap, void*); + switch (type[0]) { + case 'b': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + hbool_t bool = va_arg (ap, hbool_t); + if (TRUE==bool) fprintf (out, "TRUE"); + else if (!bool) fprintf (out, "FALSE"); + else fprintf (out, "TRUE(%u)", (unsigned)bool); + } + break; + + case 'd': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + double dbl = va_arg (ap, double); + fprintf (out, "%g", dbl); + } + break; + + case 'D': + switch (type[1]) { + case 'l': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5D_layout_t layout = va_arg (ap, H5D_layout_t); + switch (layout) { + case H5D_LAYOUT_ERROR: + fprintf (out, "H5D_LAYOUT_ERROR"); + break; + case H5D_COMPACT: + fprintf (out, "H5D_COMPACT"); + break; + case H5D_CONTIGUOUS: + fprintf (out, "H5D_CONTIGUOUS"); + break; + case H5D_CHUNKED: + fprintf (out, "H5D_CHUNKED"); + break; + default: + fprintf (out, "%ld", (long)layout); + break; + } + } + break; + + case 't': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5D_transfer_t transfer = va_arg (ap, H5D_transfer_t); + switch (transfer) { + case H5D_XFER_INDEPENDENT: + fprintf (out, "H5D_XFER_INDEPENDENT"); + break; + case H5D_XFER_COLLECTIVE: + fprintf (out, "H5D_XFER_COLLECTIVE"); + break; + case H5D_XFER_DFLT: + fprintf (out, "H5D_XFER_DFLT"); + break; + default: + fprintf (out, "%ld", (long)transfer); + break; + } + } + break; + + default: + fprintf (out, "BADTYPE(D%c)", type[1]); + goto error; + } + break; + + case 'e': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + herr_t status = va_arg (ap, herr_t); + if (SUCCEED==status) fprintf (out, "SUCCEED"); + else if (FAIL==status) fprintf (out, "FAIL"); + else fprintf (out, "%d", (int)status); + } + break; + + case 'E': + switch (type[1]) { + case 'd': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5E_direction_t direction = va_arg (ap, H5E_direction_t); + switch (direction) { + case H5E_WALK_UPWARD: + fprintf (out, "H5E_WALK_UPWARD"); + break; + case H5E_WALK_DOWNWARD: + fprintf (out, "H5E_WALK_DOWNWARD"); + break; + default: + fprintf (out, "%ld", (long)direction); + break; + } + } + break; + + case 'e': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5E_error_t *error = va_arg (ap, H5E_error_t*); + fprintf (out, "0x%lx", (unsigned long)error); + } + break; + + default: + fprintf (out, "BADTYPE(E%c)", type[1]); + goto error; + } + break; + + case 'G': + switch (type[1]) { + case 'l': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5G_link_t link_type = va_arg (ap, H5G_link_t); + switch (link_type) { + case H5G_LINK_ERROR: + fprintf (out, "H5G_LINK_ERROR"); + break; + case H5G_LINK_HARD: + fprintf (out, "H5G_LINK_HARD"); + break; + case H5G_LINK_SOFT: + fprintf (out, "H5G_LINK_SOFT"); + break; + default: + fprintf (out, "%ld", (long)link_type); + break; + } + } + break; + + case 's': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5G_stat_t *statbuf = va_arg (ap, H5G_stat_t*); + fprintf (out, "0x%lx", (unsigned long)statbuf); + } + break; + + default: + fprintf (out, "BADTYPE(G%c)", type[1]); + goto error; + } + break; + + case 'h': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + hsize_t hsize = va_arg (ap, hsize_t); + HDfprintf (out, "%Hu", hsize); + } + break; + + case 'H': + switch (type[1]) { + case 's': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + hssize_t hssize = va_arg (ap, hssize_t); + HDfprintf (out, "%Hd", hssize); + } + break; + + default: + fprintf (out, "BADTYPE(H%c)", type[1]); + goto error; + } + break; + + case 'i': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + hid_t obj = va_arg (ap, hid_t); + if (-2 == obj) { + fprintf (out, "H5P_DEFAULT"); + } else if (FAIL==obj) { + fprintf (out, "FAIL"); + } else { + fprintf (out, "%ld", (long)obj); + switch (H5I_group (obj)) { + case BADGROUP: + fprintf (out, " (error)"); + break; + case H5_FILE: + if (strcmp (argname, "file")) { + fprintf (out, " (file)"); + } + break; + case H5_TEMPLATE_0: + case H5_TEMPLATE_1: + case H5_TEMPLATE_2: + case H5_TEMPLATE_3: + case H5_TEMPLATE_4: + case H5_TEMPLATE_5: + case H5_TEMPLATE_6: + case H5_TEMPLATE_7: + if (strcmp (argname, "plist")) { + fprintf (out, " (plist)"); + } + break; + case H5_GROUP: + if (strcmp (argname, "group")) { + fprintf (out, " (group)"); + } + break; + case H5_DATATYPE: + if (strcmp (argname, "type")) { + fprintf (out, " (type)"); + } + break; + case H5_DATASPACE: + if (strcmp (argname, "space")) { + fprintf (out, " (space)"); + } + break; + case H5_DATASET: + if (strcmp (argname, "dset")) { + fprintf (out, " (dset)"); + } + break; + case H5_ATTR: + if (strcmp (argname, "attr")) { + fprintf (out, " (attr)"); + } + break; + default: + fprintf (out, " (unknown class)"); + break; + } + } + } + break; + + case 'I': + switch (type[1]) { + case 's': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + int is = va_arg (ap, int); + fprintf (out, "%d", is); + } + break; + + case 'u': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + unsigned iu = va_arg (ap, unsigned); + fprintf (out, "%u", iu); + } + break; + + default: + fprintf (out, "BADTYPE(I%c)", type[1]); + goto error; + } + break; + + case 'M': + switch (type[1]) { +#ifdef HAVE_PARALLEL + case 'c': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + MPI_Comm comm = va_arg (ap, MPI_Comm); + fprintf (out, "%ld", (long)comm); + } + break; + case 'i': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + MPI_Info info = va_arg (ap, MPI_Info); + fprintf (out, "%ld", (long)info); + } + break; +#endif + default: + goto error; + } + break; + + case 'o': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + off_t offset = va_arg (ap, off_t); + fprintf (out, "%ld", (long)offset); + } + break; + + case 'p': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5P_class_t plist_class = va_arg (ap, H5P_class_t); + switch (plist_class) { + case H5P_NO_CLASS: + fprintf (out, "H5P_NO_CLASS"); + break; + case H5P_FILE_CREATE: + fprintf (out, "H5P_FILE_CREATE"); + break; + case H5P_FILE_ACCESS: + fprintf (out, "H5P_FILE_ACCESS"); + break; + case H5P_DATASET_CREATE: + fprintf (out, "H5P_DATASET_CREATE"); + break; + case H5P_DATASET_XFER: + fprintf (out, "H5P_DATASET_XFER"); + break; + default: + fprintf (out, "%ld", (long)plist_class); + break; + } + } + break; + + case 's': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + const char *str = va_arg (ap, const char*); + fprintf (out, "\"%s\"", str); + } + break; + + case 'T': + switch (type[1]) { + case 'c': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_cset_t cset = va_arg (ap, H5T_cset_t); + switch (cset) { + case H5T_CSET_ERROR: + fprintf (out, "H5T_CSET_ERROR"); + break; + case H5T_CSET_ASCII: + fprintf (out, "H5T_CSET_ASCII"); + break; + default: + fprintf (out, "%ld", (long)cset); + break; + } + } + break; + + case 'n': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_norm_t norm = va_arg (ap, H5T_norm_t); + switch (norm) { + case H5T_NORM_ERROR: + fprintf (out, "H5T_NORM_ERROR"); + break; + case H5T_NORM_IMPLIED: + fprintf (out, "H5T_NORM_IMPLIED"); + break; + case H5T_NORM_MSBSET: + fprintf (out, "H5T_NORM_MSBSET"); + break; + case H5T_NORM_NONE: + fprintf (out, "H5T_NORM_NONE"); + break; + default: + fprintf (out, "%ld", (long)norm); + break; + } + } + break; + + case 'o': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_order_t order = va_arg (ap, H5T_order_t); + switch (order) { + case H5T_ORDER_ERROR: + fprintf (out, "H5T_ORDER_ERROR"); + break; + case H5T_ORDER_LE: + fprintf (out, "H5T_ORDER_LE"); + break; + case H5T_ORDER_BE: + fprintf (out, "H5T_ORDER_BE"); + break; + case H5T_ORDER_VAX: + fprintf (out, "H5T_ORDER_VAX"); + break; + case H5T_ORDER_NONE: + fprintf (out, "H5T_ORDER_NONE"); + break; + default: + fprintf (out, "%ld", (long)order); + break; + } + } + break; + + case 'p': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_pad_t pad = va_arg (ap, H5T_pad_t); + switch (pad) { + case H5T_PAD_ERROR: + fprintf (out, "H5T_PAD_ERROR"); + break; + case H5T_PAD_ZERO: + fprintf (out, "H5T_PAD_ZERO"); + break; + case H5T_PAD_ONE: + fprintf (out, "H5T_PAD_ONE"); + break; + case H5T_PAD_BACKGROUND: + fprintf (out, "H5T_PAD_BACKGROUND"); + break; + default: + fprintf (out, "%ld", (long)pad); + break; + } + } + break; + + case 's': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_sign_t sign = va_arg (ap, H5T_sign_t); + switch (sign) { + case H5T_SGN_ERROR: + fprintf (out, "H5T_SGN_ERROR"); + break; + case H5T_SGN_NONE: + fprintf (out, "H5T_SGN_NONE"); + break; + case H5T_SGN_2: + fprintf (out, "H5T_SGN_2"); + break; + default: + fprintf (out, "%ld", (long)sign); + break; + } + } + break; + + case 't': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_class_t type_class = va_arg (ap, H5T_class_t); + switch (type_class) { + case H5T_NO_CLASS: + fprintf (out, "H5T_NO_CLASS"); + break; + case H5T_INTEGER: + fprintf (out, "H5T_INTEGER"); + break; + case H5T_FLOAT: + fprintf (out, "H5T_FLOAT"); + break; + case H5T_TIME: + fprintf (out, "H5T_TIME"); + break; + case H5T_STRING: + fprintf (out, "H5T_STRING"); + break; + case H5T_BITFIELD: + fprintf (out, "H5T_BITFIELD"); + break; + case H5T_OPAQUE: + fprintf (out, "H5T_OPAQUE"); + break; + case H5T_COMPOUND: + fprintf (out, "H5T_COMPOUND"); + break; + default: + fprintf (out, "%ld", (long)type_class); + break; + } + } + break; + + case 'z': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5T_str_t str = va_arg (ap, H5T_str_t); + switch (str) { + case H5T_STR_ERROR: + fprintf (out, "H5T_STR_ERROR"); + break; + case H5T_STR_NULL: + fprintf (out, "H5T_STR_NULL"); + break; + case H5T_STR_SPACE: + fprintf (out, "H5T_STR_SPACE"); + break; + default: + fprintf (out, "%ld", (long)str); + break; + } + } + break; + + default: + fprintf (out, "BADTYPE(T%c)", type[1]); + goto error; + } + break; + + case 'x': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + vp = va_arg (ap, void*); + fprintf (out, "0x%lx", (unsigned long)vp); + } + break; + + case 'z': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + size_t size = va_arg (ap, size_t); + HDfprintf (out, "%Zu", size); + } + break; + + case 'Z': + switch (type[1]) { + case 'm': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + H5Z_method_t zmeth = va_arg (ap, H5Z_method_t); + if (zmeth<0) { + fprintf (out, "%d (range)", (int)zmeth); + } else if (H5Z_NONE==zmeth) { + fprintf (out, "H5Z_NONE"); + } else if (H5Z_DEFLATE==zmeth) { + fprintf (out, "H5Z_DEFLATE"); + } else if (zmeth<H5Z_USERDEF_MIN) { + fprintf (out, "H5Z_RES_%d", (int)zmeth); + } else if (zmeth<=H5Z_USERDEF_MAX) { + fprintf (out, "%d", (int)zmeth); + } else { + fprintf (out, "%d (range)", (int)zmeth); + } + } + break; + + case 's': + if (ptr) { + fprintf (out, "0x%lx", (unsigned long)vp); + } else { + ssize_t ssize = va_arg (ap, ssize_t); + HDfprintf (out, "%Zd", ssize); + } + break; + + default: + fprintf (out, "BADTYPE(Z%c)", type[1]); + goto error; + } + break; + + default: + if (isupper (type[0])) { + fprintf (out, "BADTYPE(%c%c)", type[0], type[1]); + } else { + fprintf (out, "BADTYPE(%c)", type[0]); + } + goto error; + } + + type += isupper(*type)?2:1; + } + + error: + va_end (ap); + if (returning) { + fprintf (out, ";\n"); + } else { + fprintf (out, ")"); + } + fflush (out); + return; +} + + @@ -150,8 +150,8 @@ H5A_term_interface(void) * --------------------------------------------------------------------------*/ hid_t -H5Acreate(hid_t loc_id, const char *name, hid_t datatype, hid_t dataspace, - hid_t create_plist) +H5Acreate (hid_t loc_id, const char *name, hid_t datatype, hid_t dataspace, + hid_t create_plist) { void *obj = NULL; H5G_entry_t *ent = NULL; @@ -161,6 +161,7 @@ H5Acreate(hid_t loc_id, const char *name, hid_t datatype, hid_t dataspace, hid_t ret_value = FAIL; FUNC_ENTER(H5Acreate, FAIL); + H5TRACE5("i","isiii",loc_id,name,datatype,dataspace,create_plist); /* check arguments */ if (NULL==(obj=H5I_object (loc_id))) { @@ -399,7 +400,7 @@ H5A_get_index(H5G_entry_t *ent, const char *name) * The LOC_ID can also be a named (committed) data type. --------------------------------------------------------------------------*/ hid_t -H5Aopen_name(hid_t loc_id, const char *name) +H5Aopen_name (hid_t loc_id, const char *name) { H5G_entry_t *ent = NULL; /*Symtab entry of object to attribute*/ void *obj = NULL; @@ -407,6 +408,7 @@ H5Aopen_name(hid_t loc_id, const char *name) hid_t ret_value = FAIL; FUNC_ENTER(H5Aopen_name, FAIL); + H5TRACE2("i","is",loc_id,name); /* check arguments */ if(NULL == (obj = H5I_object(loc_id))) { @@ -475,13 +477,14 @@ H5Aopen_name(hid_t loc_id, const char *name) * --------------------------------------------------------------------------*/ hid_t -H5Aopen_idx(hid_t loc_id, unsigned idx) +H5Aopen_idx (hid_t loc_id, unsigned idx) { H5G_entry_t *ent = NULL; /*Symtab entry of object to attribute */ void *obj = NULL; hid_t ret_value = FAIL; FUNC_ENTER(H5Aopen_idx, FAIL); + H5TRACE2("i","iIu",loc_id,idx); /* check arguments */ if(NULL == (obj = H5I_object(loc_id))) { @@ -595,13 +598,14 @@ done: This function writes a complete attribute to disk. --------------------------------------------------------------------------*/ herr_t -H5Awrite(hid_t attr_id, hid_t mem_dt, void *buf) +H5Awrite (hid_t attr_id, hid_t mem_dt, void *buf) { H5A_t *attr = NULL; const H5T_t *mem_type = NULL; herr_t ret_value = FAIL; FUNC_ENTER(H5Awrite, FAIL); + H5TRACE3("e","iix",attr_id,mem_dt,buf); /* check arguments */ if (H5_ATTR != H5I_group(attr_id) || @@ -762,13 +766,14 @@ done: This function reads a complete attribute from disk. --------------------------------------------------------------------------*/ herr_t -H5Aread(hid_t attr_id, hid_t mem_dt, void *buf) +H5Aread (hid_t attr_id, hid_t mem_dt, void *buf) { H5A_t *attr = NULL; const H5T_t *mem_type = NULL; herr_t ret_value = FAIL; FUNC_ENTER(H5Aread, FAIL); + H5TRACE3("e","iix",attr_id,mem_dt,buf); /* check arguments */ if (H5_ATTR != H5I_group(attr_id) || @@ -913,13 +918,14 @@ done: or resource leaks will develop. --------------------------------------------------------------------------*/ hid_t -H5Aget_space(hid_t attr_id) +H5Aget_space (hid_t attr_id) { H5A_t *attr = NULL; H5S_t *dst = NULL; hid_t ret_value = FAIL; FUNC_ENTER(H5Aget_space, FAIL); + H5TRACE1("i","i",attr_id); /* check arguments */ if (H5_ATTR != H5I_group(attr_id) || @@ -969,13 +975,14 @@ H5Aget_space(hid_t attr_id) * then the data type is closed. --------------------------------------------------------------------------*/ hid_t -H5Aget_type(hid_t attr_id) +H5Aget_type (hid_t attr_id) { H5A_t *attr = NULL; H5T_t *dst = NULL; hid_t ret_value = FAIL; FUNC_ENTER(H5Aget_type, FAIL); + H5TRACE1("i","i",attr_id); /* check arguments */ if (H5_ATTR != H5I_group(attr_id) || @@ -1033,13 +1040,14 @@ H5Aget_type(hid_t attr_id) properly terminate the string. --------------------------------------------------------------------------*/ size_t -H5Aget_name(hid_t attr_id, char *buf, size_t buf_size) +H5Aget_name (hid_t attr_id, char *buf, size_t buf_size) { H5A_t *attr = NULL; size_t copy_len=0; size_t ret_value = FAIL; FUNC_ENTER(H5Aget_name, FAIL); + H5TRACE3("z","isz",attr_id,buf,buf_size); /* check arguments */ if (H5_ATTR != H5I_group(attr_id) || @@ -1088,13 +1096,14 @@ H5Aget_name(hid_t attr_id, char *buf, size_t buf_size) * The LOC_ID can also be a named (committed) data type. --------------------------------------------------------------------------*/ int -H5Anum_attrs(hid_t loc_id) +H5Anum_attrs (hid_t loc_id) { H5G_entry_t *ent = NULL; /*symtab ent of object to attribute */ void *obj = NULL; int ret_value = 0; FUNC_ENTER(H5Anum_attrs, FAIL); + H5TRACE1("Is","i",loc_id); /* check arguments */ if(NULL == (obj = H5I_object(loc_id))) { @@ -1172,7 +1181,7 @@ H5Anum_attrs(hid_t loc_id) * --------------------------------------------------------------------------*/ int -H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, void *op_data) +H5Aiterate (hid_t loc_id, unsigned *attr_num, H5A_operator_t op, void *op_data) { H5G_entry_t *ent = NULL; /*symtab ent of object to attribute */ void *obj = NULL; @@ -1181,6 +1190,7 @@ H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, void *op_data) intn idx; FUNC_ENTER(H5Aiterate, FAIL); + H5TRACE4("Is","i*Iuxx",loc_id,attr_num,op,op_data); /* check arguments */ if(NULL == (obj = H5I_object(loc_id))) { @@ -1259,7 +1269,7 @@ H5Aiterate(hid_t loc_id, unsigned *attr_num, H5A_operator_t op, void *op_data) * --------------------------------------------------------------------------*/ herr_t -H5Adelete(hid_t loc_id, const char *name) +H5Adelete (hid_t loc_id, const char *name) { H5A_t found_attr; H5G_entry_t *ent = NULL; /*symtab ent of object to attribute */ @@ -1268,6 +1278,7 @@ H5Adelete(hid_t loc_id, const char *name) herr_t ret_value = FAIL; FUNC_ENTER(H5Aopen_name, FAIL); + H5TRACE2("e","is",loc_id,name); /* check arguments */ if(NULL == (obj = H5I_object(loc_id))) { @@ -1342,9 +1353,10 @@ H5Adelete(hid_t loc_id, const char *name) attribute ID will result in undefined behavior. --------------------------------------------------------------------------*/ herr_t -H5Aclose(hid_t attr_id) +H5Aclose (hid_t attr_id) { FUNC_ENTER(H5Aclose, FAIL); + H5TRACE1("e","i",attr_id); /* check arguments */ if (H5_ATTR != H5I_group(attr_id) || NULL == H5I_object(attr_id)) { @@ -178,7 +178,7 @@ H5D_term_interface(void) *------------------------------------------------------------------------- */ hid_t -H5Dcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, +H5Dcreate (hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t create_parms_id) { H5G_t *loc = NULL; @@ -189,6 +189,7 @@ H5Dcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, const H5D_create_t *create_parms = NULL; FUNC_ENTER(H5Dcreate, FAIL); + H5TRACE5("i","isiii",loc_id,name,type_id,space_id,create_parms_id); /* Check arguments */ if (NULL == (loc = H5G_loc(loc_id))) { @@ -252,13 +253,14 @@ H5Dcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, *------------------------------------------------------------------------- */ hid_t -H5Dopen(hid_t loc_id, const char *name) +H5Dopen (hid_t loc_id, const char *name) { H5G_t *loc = NULL; /*location holding the dataset */ H5D_t *dataset = NULL; /*the dataset */ hid_t ret_value = FAIL; FUNC_ENTER(H5Dopen, FAIL); + H5TRACE2("i","is",loc_id,name); /* Check args */ if (NULL == (loc = H5G_loc(loc_id))) { @@ -305,11 +307,12 @@ H5Dopen(hid_t loc_id, const char *name) *------------------------------------------------------------------------- */ herr_t -H5Dclose(hid_t dataset_id) +H5Dclose (hid_t dataset_id) { H5D_t *dataset = NULL; /* dataset object to release */ FUNC_ENTER(H5Dclose, FAIL); + H5TRACE1("e","i",dataset_id); /* Check args */ if (H5_DATASET != H5I_group(dataset_id) || @@ -355,6 +358,7 @@ H5Dget_space (hid_t dataset_id) hid_t ret_value = FAIL; FUNC_ENTER (H5Dget_space, FAIL); + H5TRACE1("i","i",dataset_id); /* Check args */ if (H5_DATASET!=H5I_group (dataset_id) || @@ -411,6 +415,7 @@ H5Dget_type (hid_t dataset_id) hid_t ret_value = FAIL; FUNC_ENTER (H5Dget_type, FAIL); + H5TRACE1("i","i",dataset_id); /* Check args */ if (H5_DATASET!=H5I_group (dataset_id) || @@ -466,6 +471,7 @@ H5Dget_create_plist (hid_t dataset_id) hid_t ret_value = FAIL; FUNC_ENTER (H5Dget_create_plist, FAIL); + H5TRACE1("i","i",dataset_id); /* Check args */ if (H5_DATASET!=H5I_group (dataset_id) || @@ -534,7 +540,7 @@ H5Dget_create_plist (hid_t dataset_id) *------------------------------------------------------------------------- */ herr_t -H5Dread(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, +H5Dread (hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t xfer_parms_id, void *buf/*out*/) { H5D_t *dataset = NULL; @@ -544,6 +550,8 @@ H5Dread(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, const H5D_xfer_t *xfer_parms = NULL; FUNC_ENTER(H5Dread, FAIL); + H5TRACE5("e","iiiii",dataset_id,mem_type_id,mem_space_id,file_space_id, + xfer_parms_id); /* check arguments */ if (H5_DATASET != H5I_group(dataset_id) || @@ -623,7 +631,7 @@ H5Dread(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, *------------------------------------------------------------------------- */ herr_t -H5Dwrite(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, +H5Dwrite (hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t xfer_parms_id, const void *buf) { H5D_t *dataset = NULL; @@ -633,6 +641,8 @@ H5Dwrite(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, const H5D_xfer_t *xfer_parms = NULL; FUNC_ENTER(H5Dwrite, FAIL); + H5TRACE6("e","iiiiix",dataset_id,mem_type_id,mem_space_id,file_space_id, + xfer_parms_id,buf); /* check arguments */ if (H5_DATASET != H5I_group(dataset_id) || @@ -698,6 +708,7 @@ H5Dextend (hid_t dataset_id, const hsize_t *size) H5D_t *dataset = NULL; FUNC_ENTER (H5Dextend, FAIL); + H5TRACE2("e","i*h",dataset_id,size); /* Check args */ if (H5_DATASET!=H5I_group (dataset_id) || diff --git a/src/H5Distore.c b/src/H5Distore.c index 54b797d..9634457 100644 --- a/src/H5Distore.c +++ b/src/H5Distore.c @@ -958,7 +958,7 @@ H5F_istore_lock (H5F_t *f, const H5O_layout_t *layout, H5F_rdcc_ent_t *ent = NULL; intn i, j, found = -1; H5F_istore_ud1_t udata; /*B-tree pass-through */ - size_t chunk_size; /*size of a chunk */ + size_t chunk_size=0; /*size of a chunk */ herr_t status; /*func return status */ void *chunk=NULL; /*the uncompressed chunk*/ void *temp=NULL; /*temporary chunk buffer*/ @@ -1052,6 +1052,7 @@ H5F_istore_lock (H5F_t *f, const H5O_layout_t *layout, } } + assert (chunk_size>0); if (found<0 && chunk_size<=f->shared->access_parms->rdcc_nbytes) { /* * Add the chunk to the beginning of the cache after pruning the cache @@ -157,9 +157,10 @@ void *H5E_auto_data_g = stderr; *------------------------------------------------------------------------- */ herr_t -H5Eset_auto (herr_t (*func)(void*client_data), void *client_data) +H5Eset_auto (H5E_auto_t func, void *client_data) { FUNC_ENTER (H5Eset_auto, FAIL); + H5TRACE2("e","xx",func,client_data); H5E_auto_g = func; H5E_auto_data_g = client_data; @@ -187,9 +188,10 @@ H5Eset_auto (herr_t (*func)(void*client_data), void *client_data) *------------------------------------------------------------------------- */ herr_t -H5Eget_auto (herr_t (**func)(void*), void **client_data) +H5Eget_auto (H5E_auto_t *func, void **client_data) { FUNC_ENTER (H5Eget_auto, FAIL); + H5TRACE2("e","*x*x",func,client_data); if (func) *func = H5E_auto_g; if (client_data) *client_data = H5E_auto_data_g; @@ -220,6 +222,7 @@ herr_t H5Eclear (void) { FUNC_ENTER (H5Eclear, FAIL); + H5TRACE0("e", ""); /* FUNC_ENTER() does all the work */ FUNC_LEAVE (SUCCEED); } @@ -252,6 +255,7 @@ H5Eprint (FILE *stream) herr_t status = FAIL; FUNC_ENTER (H5Eprint, FAIL); + /*NO TRACE*/ if (!stream) stream = stderr; fprintf (stream, "HDF5-DIAG: Error detected in thread 0."); @@ -288,6 +292,7 @@ H5Ewalk (H5E_direction_t direction, H5E_walk_t func, void *client_data) herr_t status = FAIL; FUNC_ENTER (H5Ewalk, FAIL); + H5TRACE3("e","Edxx",direction,func,client_data); status = H5E_walk (direction, func, client_data); FUNC_LEAVE (status); } @@ -329,13 +334,15 @@ H5Ewalk (H5E_direction_t direction, H5E_walk_t func, void *client_data) *------------------------------------------------------------------------- */ herr_t -H5Ewalk_cb(int n, H5E_error_t *err_desc, void *client_data) +H5Ewalk_cb (int n, H5E_error_t *err_desc, void *client_data) { FILE *stream = (FILE *)client_data; const char *maj_str = NULL; const char *min_str = NULL; const int indent = 2; + /*NO TRACE*/ + /* Check arguments */ assert (err_desc); if (!client_data) client_data = stderr; diff --git a/src/H5Eprivate.h b/src/H5Eprivate.h index 819a401..830b426 100644 --- a/src/H5Eprivate.h +++ b/src/H5Eprivate.h @@ -38,10 +38,11 @@ */ #define HRETURN_ERROR(maj, min, ret_val, str) { \ HERROR (maj, min, str); \ + PABLO_TRACE_OFF (PABLO_MASK, pablo_func_id); \ + H5TRACE_RETURN(ret_val); \ if (H5_IS_API(FUNC) && H5E_auto_g) { \ (H5E_auto_g)(H5E_auto_data_g); \ } \ - PABLO_TRACE_OFF (PABLO_MASK, pablo_func_id); \ return (ret_val); \ } @@ -52,6 +53,7 @@ */ #define HRETURN(ret_val) { \ PABLO_TRACE_OFF (PABLO_MASK, pablo_func_id); \ + H5TRACE_RETURN(ret_val); \ return (ret_val); \ } @@ -64,6 +66,7 @@ */ #define HGOTO_ERROR(maj, min, ret_val, str) { \ HERROR (maj, min, str); \ + H5TRACE_RETURN(ret_val); \ if (H5_IS_API(FUNC) && H5E_auto_g) { \ (H5E_auto_g)(H5E_auto_data_g); \ } \ diff --git a/src/H5Epublic.h b/src/H5Epublic.h index 9be3ed0..4096179 100644 --- a/src/H5Epublic.h +++ b/src/H5Epublic.h @@ -165,13 +165,14 @@ typedef enum H5E_direction_t { /* Error stack traversal callback function */ typedef herr_t (*H5E_walk_t)(int n, H5E_error_t *err_desc, void *client_data); +typedef herr_t (*H5E_auto_t)(void *client_data); #ifdef __cplusplus extern "C" { #endif -herr_t H5Eset_auto (herr_t (*func)(void*client_data), void *client_data); -herr_t H5Eget_auto (herr_t (**func)(void*client_data), void **client_data); +herr_t H5Eset_auto (H5E_auto_t func, void *client_data); +herr_t H5Eget_auto (H5E_auto_t *func, void **client_data); herr_t H5Eclear (void); herr_t H5Eprint (FILE *stream); herr_t H5Ewalk (H5E_direction_t direction, H5E_walk_t func, void *client_data); @@ -250,13 +250,14 @@ H5F_encode_length_unusual(const H5F_t *f, uint8 **p, uint8 *l) *------------------------------------------------------------------------- */ hid_t -H5Fget_create_template(hid_t fid) +H5Fget_create_template (hid_t fid) { H5F_t *file = NULL; hid_t ret_value = FAIL; H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Fget_create_template, FAIL); + H5TRACE1("i","i",fid); /* check args */ if (H5_FILE != H5I_group(fid) || NULL==(file=H5I_object (fid))) { @@ -307,6 +308,7 @@ H5Fget_access_template (hid_t file_id) hid_t ret_value = FAIL; FUNC_ENTER (H5Fget_access_template, FAIL); + H5TRACE1("i","i",file_id); /* Check args */ if (H5_FILE!=H5I_group (file_id) || NULL==(f=H5I_object (file_id))) { @@ -396,7 +398,7 @@ H5F_locate_signature(H5F_low_t *f_handle, const H5F_access_t *access_parms, while (H5F_addr_lt(addr, &max_addr)) { if (H5F_low_read(f_handle, access_parms, H5D_XFER_DFLT, addr, H5F_SIGNATURE_LEN, buf) < 0) { - HRETURN_ERROR(H5E_IO, H5E_READERROR, FAIL, "can't read file"); + HRETURN_ERROR(H5E_IO, H5E_READERROR, FAIL, "unable to read file"); } if (!HDmemcmp(buf, H5F_SIGNATURE, H5F_SIGNATURE_LEN)) break; @@ -431,8 +433,8 @@ H5F_locate_signature(H5F_low_t *f_handle, const H5F_access_t *access_parms, DESCRIPTION This function determines if a file is an HDF5 format file. --------------------------------------------------------------------------*/ -hbool_t -H5Fis_hdf5(const char *filename) +hbool_t +H5Fis_hdf5 (const char *filename) { H5F_low_t *f_handle = NULL; /* file handle */ haddr_t addr; /* Address of file signature & header */ @@ -440,6 +442,7 @@ H5Fis_hdf5(const char *filename) const H5F_low_class_t *type = NULL; FUNC_ENTER(H5Fis_hdf5, FAIL); + H5TRACE1("b","s",filename); /* Check args and all the boring stuff. */ if (filename == NULL) { @@ -779,13 +782,13 @@ H5F_open(const char *name, uintn flags, /* Truncate existing file */ if (0 == (flags & H5F_ACC_RDWR)) { HRETURN_ERROR(H5E_FILE, H5E_BADVALUE, NULL, - "can't truncate without write intent"); + "unable to truncate without write intent"); } fd = H5F_low_open(type, name, access_parms, H5F_ACC_RDWR | H5F_ACC_TRUNC, NULL); if (!fd) { HRETURN_ERROR(H5E_FILE, H5E_CANTCREATE, NULL, - "can't truncate file"); + "unable to truncate file"); } f = H5F_new(NULL, create_parms, access_parms); f->shared->key = search; @@ -809,7 +812,7 @@ H5F_open(const char *name, uintn flags, } else if (flags & H5F_ACC_CREAT) { if (0 == (flags & H5F_ACC_RDWR)) { HRETURN_ERROR(H5E_FILE, H5E_BADVALUE, NULL, - "can't create file without write intent"); + "unable to create file without write intent"); } #ifdef HAVE_PARALLEL /* @@ -830,7 +833,7 @@ H5F_open(const char *name, uintn flags, #endif /*HAVE_PARALLEL*/ if (!fd) { HRETURN_ERROR(H5E_FILE, H5E_CANTCREATE, NULL, - "can't create file"); + "unable to create file"); } f = H5F_new(NULL, create_parms, access_parms); f->shared->key = search; @@ -883,7 +886,7 @@ H5F_open(const char *name, uintn flags, f->shared->consist_flags = 0x03; if (H5F_flush(f, FALSE) < 0) { HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, NULL, - "can't write file boot block"); + "unable to write file boot block"); } } else if (1 == f->shared->nrefs) { @@ -891,11 +894,13 @@ H5F_open(const char *name, uintn flags, if (H5F_locate_signature(f->shared->lf, f->shared->access_parms, &(f->shared->boot_addr)) < 0) { - HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, NULL, "can't find signature"); + HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, NULL, + "unable to find signature"); } if (H5F_low_read(f->shared->lf, access_parms, H5D_XFER_DFLT, &(f->shared->boot_addr), fixed_size, buf) < 0) { - HGOTO_ERROR(H5E_IO, H5E_READERROR, NULL, "can't read boot block"); + HGOTO_ERROR(H5E_IO, H5E_READERROR, NULL, + "unable to read boot block"); } /* @@ -975,7 +980,7 @@ H5F_open(const char *name, uintn flags, if (H5F_low_read(f->shared->lf, access_parms, H5D_XFER_DFLT, &addr1, variable_size, buf) < 0) { HGOTO_ERROR(H5E_FILE, H5E_NOTHDF5, NULL, - "can't read boot block"); + "unable to read boot block"); } p = buf; H5F_addr_decode(f, &p, &(f->shared->base_addr)); @@ -983,7 +988,7 @@ H5F_open(const char *name, uintn flags, H5F_addr_decode(f, &p, &(f->shared->hdf5_eof)); if (H5G_ent_decode(f, &p, &root_ent) < 0) { HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, - "can't read root symbol entry"); + "unable to read root symbol entry"); } if (H5G_mkroot (f, &root_ent)<0) { HGOTO_ERROR (H5E_FILE, H5E_CANTOPENFILE, NULL, @@ -1094,8 +1099,8 @@ H5F_open(const char *name, uintn flags, * *------------------------------------------------------------------------- */ -hid_t -H5Fcreate(const char *filename, uintn flags, hid_t create_id, +hid_t +H5Fcreate (const char *filename, unsigned flags, hid_t create_id, hid_t access_id) { @@ -1110,6 +1115,7 @@ H5Fcreate(const char *filename, uintn flags, hid_t create_id, hid_t ret_value = FAIL; FUNC_ENTER(H5Fcreate, FAIL); + H5TRACE4("i","sIuii",filename,flags,create_id,access_id); /* Check/fix arguments */ if (!filename || !*filename) { @@ -1207,8 +1213,8 @@ H5Fcreate(const char *filename, uintn flags, hid_t create_id, * *------------------------------------------------------------------------- */ -hid_t -H5Fopen(const char *filename, uintn flags, hid_t access_id) +hid_t +H5Fopen (const char *filename, unsigned flags, hid_t access_id) { H5F_t *new_file = NULL; /* file struct for new file */ const H5F_access_t *access_parms; /* pointer to the file access @@ -1218,6 +1224,7 @@ H5Fopen(const char *filename, uintn flags, hid_t access_id) hid_t ret_value = FAIL; FUNC_ENTER(H5Fopen, FAIL); + H5TRACE3("i","sIui",filename,flags,access_id); /* Check/fix arguments. */ if (!filename || !*filename) { @@ -1237,12 +1244,13 @@ H5Fopen(const char *filename, uintn flags, hid_t access_id) /* Open the file */ if (NULL==(new_file=H5F_open(filename, flags, NULL, access_parms))) { - HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, FAIL, "cant open file"); + HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, FAIL, "unable to open file"); } /* Get an atom for the file */ if ((ret_value = H5I_register(H5_FILE, new_file)) < 0) { - HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "can't atomize file"); + HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, + "unable to atomize file handle"); } done: @@ -1339,7 +1347,7 @@ H5F_flush(H5F_t *f, hbool_t invalidate) if (H5F_low_write(f->shared->lf, f->shared->access_parms, H5D_XFER_DFLT, &(f->shared->boot_addr), (size_t)(p-buf), buf)<0) { - HRETURN_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "can't write header"); + HRETURN_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to write header"); } /* Flush file buffers to disk */ @@ -1462,19 +1470,20 @@ H5F_close(H5F_t *f) The file boot block is flushed to disk since it's contents may have changed. --------------------------------------------------------------------------*/ -herr_t -H5Fclose(hid_t fid) +herr_t +H5Fclose (hid_t fid) { herr_t ret_value = SUCCEED; FUNC_ENTER(H5Fclose, FAIL); + H5TRACE1("e","i",fid); /* Check/fix arguments. */ if (H5_FILE != H5I_group(fid)) { HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file atom"); } if (NULL == H5I_object(fid)) { - HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't unatomize file"); + HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "unable to unatomize file"); } /* diff --git a/src/H5Fistore.c b/src/H5Fistore.c index 54b797d..9634457 100644 --- a/src/H5Fistore.c +++ b/src/H5Fistore.c @@ -958,7 +958,7 @@ H5F_istore_lock (H5F_t *f, const H5O_layout_t *layout, H5F_rdcc_ent_t *ent = NULL; intn i, j, found = -1; H5F_istore_ud1_t udata; /*B-tree pass-through */ - size_t chunk_size; /*size of a chunk */ + size_t chunk_size=0; /*size of a chunk */ herr_t status; /*func return status */ void *chunk=NULL; /*the uncompressed chunk*/ void *temp=NULL; /*temporary chunk buffer*/ @@ -1052,6 +1052,7 @@ H5F_istore_lock (H5F_t *f, const H5O_layout_t *layout, } } + assert (chunk_size>0); if (found<0 && chunk_size<=f->shared->access_parms->rdcc_nbytes) { /* * Add the chunk to the beginning of the cache after pruning the cache diff --git a/src/H5Flow.c b/src/H5Flow.c index 91fb495..dc4195f 100644 --- a/src/H5Flow.c +++ b/src/H5Flow.c @@ -753,7 +753,7 @@ H5F_addr_zerop(const haddr_t *addr) void H5F_addr_encode(H5F_t *f, uint8 **pp, const haddr_t *addr) { - uint i; + uintn i; haddr_t tmp; assert(f); @@ -797,7 +797,7 @@ H5F_addr_encode(H5F_t *f, uint8 **pp, const haddr_t *addr) void H5F_addr_decode(H5F_t *f, const uint8 **pp, haddr_t *addr/*out*/) { - uint i; + uintn i; haddr_t tmp; uint8 c; hbool_t all_zero = TRUE; @@ -125,13 +125,14 @@ static void H5G_term_interface(void); *------------------------------------------------------------------------- */ hid_t -H5Gcreate(hid_t loc_id, const char *name, size_t size_hint) +H5Gcreate (hid_t loc_id, const char *name, size_t size_hint) { H5G_t *loc = NULL; H5G_t *grp = NULL; hid_t ret_value = FAIL; FUNC_ENTER(H5Gcreate, FAIL); + H5TRACE3("i","isz",loc_id,name,size_hint); /* Check arguments */ if (NULL==(loc=H5G_loc (loc_id))) { @@ -174,13 +175,14 @@ H5Gcreate(hid_t loc_id, const char *name, size_t size_hint) *------------------------------------------------------------------------- */ hid_t -H5Gopen(hid_t loc_id, const char *name) +H5Gopen (hid_t loc_id, const char *name) { hid_t ret_value = FAIL; H5G_t *grp = NULL; H5G_t *loc = NULL; FUNC_ENTER(H5Gopen, FAIL); + H5TRACE2("i","is",loc_id,name); /* Check args */ if (NULL==(loc=H5G_loc(loc_id))) { @@ -222,9 +224,10 @@ H5Gopen(hid_t loc_id, const char *name) *------------------------------------------------------------------------- */ herr_t -H5Gclose(hid_t grp_id) +H5Gclose (hid_t grp_id) { FUNC_ENTER(H5Gclose, FAIL); + H5TRACE1("e","i",grp_id); /* Check args */ if (H5_GROUP != H5I_group(grp_id) || @@ -272,12 +275,13 @@ H5Gclose(hid_t grp_id) *------------------------------------------------------------------------- */ herr_t -H5Gset(hid_t loc_id, const char *name) +H5Gset (hid_t loc_id, const char *name) { H5G_t *grp = NULL; H5G_t *loc = NULL; FUNC_ENTER(H5Gset, FAIL); + H5TRACE2("e","is",loc_id,name); /* Check/fix arguments */ if (NULL==(loc=H5G_loc(loc_id))) { @@ -332,12 +336,13 @@ H5Gset(hid_t loc_id, const char *name) *------------------------------------------------------------------------- */ herr_t -H5Gpush(hid_t loc_id, const char *name) +H5Gpush (hid_t loc_id, const char *name) { H5G_t *grp = NULL; H5G_t *loc = NULL; FUNC_ENTER(H5Gpush, FAIL); + H5TRACE2("e","is",loc_id,name); /* Check arguments */ if (NULL == (loc = H5G_loc(loc_id))) { @@ -396,11 +401,12 @@ H5Gpush(hid_t loc_id, const char *name) *------------------------------------------------------------------------- */ herr_t -H5Gpop(hid_t loc_id) +H5Gpop (hid_t loc_id) { H5G_t *loc = NULL; FUNC_ENTER(H5Gpop, FAIL); + H5TRACE1("e","i",loc_id); /* Check arguments */ if (NULL == (loc = H5G_loc(loc_id))) { @@ -452,6 +458,7 @@ H5Giterate (hid_t loc_id, const char *name, int *idx, H5G_t *loc = NULL; FUNC_ENTER (H5Giterate, FAIL); + H5TRACE5("e","is*Isxx",loc_id,name,idx,op,op_data); /* Check args */ if (NULL==(loc=H5G_loc (loc_id))) { @@ -518,6 +525,7 @@ H5Gmove (hid_t __unused__ loc_id, const char __unused__ *src, const char __unused__ *dst) { FUNC_ENTER (H5Gmove, FAIL); + H5TRACE3("e","iss",loc_id,src,dst); HRETURN_ERROR (H5E_SYM, H5E_UNSUPPORTED, FAIL, "unable to rename object (not implemented yet)"); @@ -561,6 +569,7 @@ H5Glink (hid_t loc_id, H5G_link_t type, const char *cur_name, H5G_t *loc = NULL; FUNC_ENTER (H5Glink, FAIL); + H5TRACE4("e","iGlss",loc_id,type,cur_name,new_name); /* Check arguments */ if (NULL==(loc=H5G_loc (loc_id))) { @@ -610,6 +619,7 @@ herr_t H5Gunlink (hid_t __unused__ loc_id, const char __unused__ *name) { FUNC_ENTER (H5Gunlink, FAIL); + H5TRACE2("e","is",loc_id,name); HRETURN_ERROR (H5E_SYM, H5E_UNSUPPORTED, FAIL, "unable to unlink name (not implemented yet)"); @@ -644,6 +654,7 @@ H5Gstat (hid_t loc_id, const char *name, hbool_t follow_link, H5G_t *loc = NULL; FUNC_ENTER (H5Gstat, FAIL); + H5TRACE3("e","isb",loc_id,name,follow_link); /* Check arguments */ if (NULL==(loc=H5G_loc (loc_id))) { @@ -686,6 +697,7 @@ H5Gget_linkval (hid_t loc_id, const char *name, size_t size, char *buf/*out*/) H5G_t *loc = NULL; FUNC_ENTER (H5Gget_linkval, FAIL); + H5TRACE3("e","isz",loc_id,name,size); /* Check arguments */ if (NULL==(loc=H5G_loc (loc_id))) { diff --git a/src/H5Ipublic.h b/src/H5Ipublic.h index eb8b804..96442a7 100644 --- a/src/H5Ipublic.h +++ b/src/H5Ipublic.h @@ -39,7 +39,6 @@ typedef enum { H5_DATATYPE, /*group ID for Datatype objects */ H5_DATASPACE, /*group ID for Dataspace objects */ H5_DATASET, /*group ID for Dataset objects */ - H5_DIRECTORY, /*group ID for Directory objects */ H5_ATTR, /*group ID for Attribute objects */ MAXGROUP /*highest group in group_t (Invalid as true group)*/ } H5I_group_t; diff --git a/src/H5Oattr.c b/src/H5Oattr.c index ed629fd..e252ff0 100644 --- a/src/H5Oattr.c +++ b/src/H5Oattr.c @@ -324,10 +324,10 @@ H5O_attr_reset(void *_mesg) parameter. --------------------------------------------------------------------------*/ static herr_t -H5O_attr_debug(H5F_t __unused__ *f, const void __unused__ *mesg, FILE __unused__ * stream, - intn __unused__ indent, intn __unused__ fwidth) +H5O_attr_debug(H5F_t __unused__ *f, const void __unused__ *mesg, + FILE __unused__ * stream, intn __unused__ indent, + intn __unused__ fwidth) { - const H5A_t *attr = (const H5A_t *) mesg; #ifdef LATER const char *s; char buf[256]; @@ -338,7 +338,6 @@ H5O_attr_debug(H5F_t __unused__ *f, const void __unused__ *mesg, FILE __unused__ /* check args */ assert(f); - assert(attr); assert(stream); assert(indent >= 0); assert(fwidth >= 0); diff --git a/src/H5Odtype.c b/src/H5Odtype.c index 9ea0713..c53152e 100644 --- a/src/H5Odtype.c +++ b/src/H5Odtype.c @@ -441,16 +441,15 @@ H5O_dtype_encode_helper(uint8 **pp, const H5T_t *dt) function using malloc() and is returned to the caller. --------------------------------------------------------------------------*/ static void * -H5O_dtype_decode(H5F_t *f, const uint8 *p, H5O_shared_t *sh) +H5O_dtype_decode(H5F_t __unused__ *f, const uint8 *p, + H5O_shared_t __unused__ *sh) { H5T_t *dt = NULL; FUNC_ENTER(H5O_dtype_decode, NULL); /* check args */ - assert(f); assert(p); - assert (!sh); dt = H5MM_xcalloc(1, sizeof(H5T_t)); H5F_addr_undef (&(dt->ent.header)); @@ -646,12 +645,12 @@ H5O_dtype_reset(void *_mesg) *------------------------------------------------------------------------- */ static herr_t -H5O_dtype_get_share (H5F_t *f, const void *_mesg, H5O_shared_t *sh/*out*/) +H5O_dtype_get_share (H5F_t __unused__ *f, const void *_mesg, + H5O_shared_t *sh/*out*/) { const H5T_t *dt = (const H5T_t *)_mesg; FUNC_ENTER (H5O_dtype_get_share, FAIL); - assert (f); assert (dt); assert (sh); @@ -685,12 +684,12 @@ H5O_dtype_get_share (H5F_t *f, const void *_mesg, H5O_shared_t *sh/*out*/) *------------------------------------------------------------------------- */ static herr_t -H5O_dtype_set_share (H5F_t *f, void *_mesg/*in,out*/, const H5O_shared_t *sh) +H5O_dtype_set_share (H5F_t __unused__ *f, void *_mesg/*in,out*/, + const H5O_shared_t *sh) { H5T_t *dt = (H5T_t *)_mesg; FUNC_ENTER (H5O_dtype_set_share, FAIL); - assert (f); assert (dt); assert (sh); assert (!sh->in_gh); @@ -146,12 +146,13 @@ H5P_term_interface(void) * lists. --------------------------------------------------------------------------*/ hid_t -H5Pcreate(H5P_class_t type) +H5Pcreate (H5P_class_t type) { hid_t ret_value = FAIL; void *tmpl = NULL; FUNC_ENTER(H5Pcreate, FAIL); + H5TRACE1("i","p",type); /* Allocate a new property list and initialize it with default values */ switch (type) { @@ -241,12 +242,13 @@ H5P_create(H5P_class_t type, void *tmpl) This function releases access to a property list object --------------------------------------------------------------------------*/ herr_t -H5Pclose(hid_t tid) +H5Pclose (hid_t tid) { H5P_class_t type; void *tmpl = NULL; FUNC_ENTER(H5Pclose, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if ((type=H5Pget_class (tid))<0 || @@ -413,12 +415,13 @@ H5Pget_class(hid_t tid) *------------------------------------------------------------------------- */ herr_t -H5Pget_version(hid_t tid, int *boot/*out*/, int *freelist/*out*/, +H5Pget_version (hid_t tid, int *boot/*out*/, int *freelist/*out*/, int *stab/*out*/, int *shhdr/*out*/) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pget_version, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -453,12 +456,13 @@ H5Pget_version(hid_t tid, int *boot/*out*/, int *freelist/*out*/, *------------------------------------------------------------------------- */ herr_t -H5Pset_userblock(hid_t tid, hsize_t size) +H5Pset_userblock (hid_t tid, hsize_t size) { uintn i; H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pset_userblock, FAIL); + H5TRACE2("e","ih",tid,size); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -498,11 +502,12 @@ H5Pset_userblock(hid_t tid, hsize_t size) *------------------------------------------------------------------------- */ herr_t -H5Pget_userblock(hid_t tid, hsize_t *size) +H5Pget_userblock (hid_t tid, hsize_t *size) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pget_userblock, FAIL); + H5TRACE2("e","i*h",tid,size); /* Check args */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -551,6 +556,7 @@ H5Pset_alignment (hid_t fapl_id, hsize_t threshold, hsize_t alignment) H5F_access_t *fapl = NULL; FUNC_ENTER (H5Pset_alignment, FAIL); + H5TRACE3("e","ihh",fapl_id,threshold,alignment); /* Check args */ if (H5P_FILE_ACCESS != H5Pget_class (fapl_id) || @@ -596,6 +602,7 @@ H5Pget_alignment (hid_t fapl_id, hsize_t *threshold/*out*/, H5F_access_t *fapl = NULL; FUNC_ENTER (H5Pget_alignment, FAIL); + H5TRACE1("e","i",fapl_id); /* Check args */ if (H5P_FILE_ACCESS != H5Pget_class (fapl_id) || @@ -631,11 +638,12 @@ H5Pget_alignment (hid_t fapl_id, hsize_t *threshold/*out*/, *------------------------------------------------------------------------- */ herr_t -H5Pset_sizes(hid_t tid, size_t sizeof_addr, size_t sizeof_size) +H5Pset_sizes (hid_t tid, size_t sizeof_addr, size_t sizeof_size) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pset_sizeof_addr, FAIL); + H5TRACE3("e","izz",tid,sizeof_addr,sizeof_size); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -685,12 +693,13 @@ H5Pset_sizes(hid_t tid, size_t sizeof_addr, size_t sizeof_size) *------------------------------------------------------------------------- */ herr_t -H5Pget_sizes(hid_t tid, +H5Pget_sizes (hid_t tid, size_t *sizeof_addr /*out */ , size_t *sizeof_size /*out */ ) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pget_sizes, FAIL); + H5TRACE1("e","i",tid); /* Check args */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -737,11 +746,12 @@ H5Pget_sizes(hid_t tid, *------------------------------------------------------------------------- */ herr_t -H5Pset_sym_k(hid_t tid, int ik, int lk) +H5Pset_sym_k (hid_t tid, int ik, int lk) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pset_sym_k, FAIL); + H5TRACE3("e","iIsIs",tid,ik,lk); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -779,11 +789,12 @@ H5Pset_sym_k(hid_t tid, int ik, int lk) *------------------------------------------------------------------------- */ herr_t -H5Pget_sym_k(hid_t tid, int *ik /*out */ , int *lk /*out */ ) +H5Pget_sym_k (hid_t tid, int *ik /*out */ , int *lk /*out */ ) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pget_sym_k, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -819,11 +830,12 @@ H5Pget_sym_k(hid_t tid, int *ik /*out */ , int *lk /*out */ ) *------------------------------------------------------------------------- */ herr_t -H5Pset_istore_k(hid_t tid, int ik) +H5Pset_istore_k (hid_t tid, int ik) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pset_istore_k, FAIL); + H5TRACE2("e","iIs",tid,ik); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -860,11 +872,12 @@ H5Pset_istore_k(hid_t tid, int ik) *------------------------------------------------------------------------- */ herr_t -H5Pget_istore_k(hid_t tid, int *ik /*out */ ) +H5Pget_istore_k (hid_t tid, int *ik /*out */ ) { H5F_create_t *tmpl = NULL; FUNC_ENTER(H5Pget_istore_k, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_CREATE != H5Pget_class(tid) || @@ -896,11 +909,12 @@ H5Pget_istore_k(hid_t tid, int *ik /*out */ ) *------------------------------------------------------------------------- */ herr_t -H5Pset_layout(hid_t tid, H5D_layout_t layout) +H5Pset_layout (hid_t tid, H5D_layout_t layout) { H5D_create_t *tmpl = NULL; FUNC_ENTER(H5Pset_layout, FAIL); + H5TRACE2("e","iDl",tid,layout); /* Check arguments */ if (H5P_DATASET_CREATE != H5Pget_class(tid) || @@ -972,12 +986,13 @@ H5Pget_layout(hid_t tid) *------------------------------------------------------------------------- */ herr_t -H5Pset_chunk(hid_t tid, int ndims, const hsize_t dim[]) +H5Pset_chunk (hid_t tid, int ndims, const hsize_t dim[]) { int i; H5D_create_t *tmpl = NULL; FUNC_ENTER(H5Pset_chunk, FAIL); + H5TRACE3("e","iIs*h",tid,ndims,dim); /* Check arguments */ if (H5P_DATASET_CREATE != H5Pget_class(tid) || @@ -1034,12 +1049,13 @@ H5Pset_chunk(hid_t tid, int ndims, const hsize_t dim[]) *------------------------------------------------------------------------- */ int -H5Pget_chunk(hid_t tid, int max_ndims, hsize_t dim[]/*out*/) +H5Pget_chunk (hid_t tid, int max_ndims, hsize_t dim[]/*out*/) { int i; H5D_create_t *tmpl = NULL; FUNC_ENTER(H5Pget_chunk, FAIL); + H5TRACE2("Is","iIs",tid,max_ndims); /* Check arguments */ if (H5P_DATASET_CREATE != H5Pget_class(tid) || @@ -1094,6 +1110,7 @@ H5Pset_external (hid_t plist_id, const char *name, off_t offset, hsize_t size) H5D_create_t *plist = NULL; FUNC_ENTER(H5Pset_external, FAIL); + H5TRACE4("e","isoh",plist_id,name,offset,size); /* Check arguments */ if (H5P_DATASET_CREATE != H5Pget_class(plist_id) || @@ -1168,6 +1185,7 @@ H5Pget_external_count (hid_t plist_id) H5D_create_t *plist = NULL; FUNC_ENTER (H5Pget_external_count, FAIL); + H5TRACE1("Is","i",plist_id); /* Check arguments */ if (H5P_DATASET_CREATE != H5Pget_class(plist_id) || @@ -1216,6 +1234,7 @@ H5Pget_external (hid_t plist_id, int idx, size_t name_size, char *name/*out*/, H5D_create_t *plist = NULL; FUNC_ENTER (H5Pget_external, FAIL); + H5TRACE3("e","iIsz",plist_id,idx,name_size); /* Check arguments */ if (H5P_DATASET_CREATE != H5Pget_class(plist_id) || @@ -1298,6 +1317,7 @@ H5Pset_stdio (hid_t tid) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pset_stdio, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class(tid) || @@ -1338,6 +1358,7 @@ H5Pget_stdio (hid_t tid) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pget_stdio, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class (tid) || @@ -1378,6 +1399,7 @@ H5Pset_sec2 (hid_t tid) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pset_sec2, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class(tid) || @@ -1418,6 +1440,7 @@ H5Pget_sec2 (hid_t tid) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pget_sec2, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class (tid) || @@ -1462,6 +1485,7 @@ H5Pset_core (hid_t tid, size_t increment) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pset_core, FAIL); + H5TRACE2("e","iz",tid,increment); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class(tid) || @@ -1509,6 +1533,7 @@ H5Pget_core (hid_t tid, size_t *increment/*out*/) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pget_core, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class (tid) || @@ -1556,6 +1581,7 @@ H5Pset_split (hid_t tid, const char *meta_ext, hid_t meta_tid, H5F_access_t *raw_tmpl = &H5F_access_dflt; FUNC_ENTER (H5Pset_split, FAIL); + H5TRACE5("e","isisi",tid,meta_ext,meta_tid,raw_ext,raw_tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class(tid) || @@ -1623,6 +1649,7 @@ H5Pget_split (hid_t tid, size_t meta_ext_size, char *meta_ext/*out*/, H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pget_split, FAIL); + H5TRACE3("e","izz",tid,meta_ext_size,raw_ext_size); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class (tid) || @@ -1701,6 +1728,7 @@ H5Pset_family (hid_t tid, hsize_t memb_size, hid_t memb_tid) H5F_access_t *memb_tmpl = &H5F_access_dflt; FUNC_ENTER (H5Pset_family, FAIL); + H5TRACE3("e","ihi",tid,memb_size,memb_tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class(tid) || @@ -1757,6 +1785,7 @@ H5Pget_family (hid_t tid, hsize_t *memb_size/*out*/, hid_t *memb_tid/*out*/) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pget_family, FAIL); + H5TRACE1("e","i",tid); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class (tid) || @@ -1815,6 +1844,7 @@ H5Pset_cache (hid_t tid, int mdc_nelmts, size_t rdcc_nbytes, H5F_access_t *fapl = NULL; FUNC_ENTER (H5Pset_cache, FAIL); + H5TRACE4("e","iIszd",tid,mdc_nelmts,rdcc_nbytes,rdcc_w0); /* Check arguments */ if (H5P_FILE_ACCESS!=H5Pget_class (tid) || @@ -1867,6 +1897,7 @@ H5Pget_cache (hid_t tid, int *mdc_nelmts, size_t *rdcc_nbytes, H5F_access_t *fapl = NULL; FUNC_ENTER (H5Pget_cache, FAIL); + H5TRACE4("e","i*Is*z*d",tid,mdc_nelmts,rdcc_nbytes,rdcc_w0); /* Check arguments */ if (H5P_FILE_ACCESS!=H5Pget_class (tid) || @@ -1919,6 +1950,7 @@ H5Pset_buffer (hid_t plist_id, size_t size, void *tconv, void *bkg) H5D_xfer_t *plist = NULL; FUNC_ENTER (H5Pset_buffer, FAIL); + H5TRACE4("e","izxx",plist_id,size,tconv,bkg); /* Check arguments */ if (H5P_DATASET_XFER != H5Pget_class (plist_id) || @@ -1962,6 +1994,7 @@ H5Pget_buffer (hid_t plist_id, void **tconv/*out*/, void **bkg/*out*/) H5D_xfer_t *plist = NULL; FUNC_ENTER (H5Pget_buffer, 0); + H5TRACE1("z","i",plist_id); /* Check arguments */ if (H5P_DATASET_XFER != H5Pget_class (plist_id) || @@ -2004,6 +2037,7 @@ H5Pset_preserve (hid_t plist_id, hbool_t status) H5D_xfer_t *plist = NULL; FUNC_ENTER (H5Pset_preserve, FAIL); + H5TRACE2("e","ib",plist_id,status); /* Check arguments */ if (H5P_DATASET_XFER != H5Pget_class (plist_id) || @@ -2041,6 +2075,7 @@ H5Pget_preserve (hid_t plist_id) H5D_xfer_t *plist = NULL; FUNC_ENTER (H5Pset_preserve, FAIL); + H5TRACE1("Is","i",plist_id); /* Check arguments */ if (H5P_DATASET_XFER != H5Pget_class (plist_id) || @@ -2085,6 +2120,7 @@ H5Pset_compression (hid_t plist_id, H5Z_method_t method, unsigned int flags, H5D_create_t *plist = NULL; FUNC_ENTER (H5Pset_compression, FAIL); + H5TRACE5("e","iZmIuzx",plist_id,method,flags,cd_size,client_data); /* Check arguments */ if (H5P_DATASET_CREATE!=H5Pget_class (plist_id) || @@ -2187,6 +2223,7 @@ H5Pset_deflate (hid_t plist_id, int level) H5D_create_t *plist = NULL; FUNC_ENTER (H5Pset_deflate, FAIL); + H5TRACE2("e","iIs",plist_id,level); /* Check arguments */ if (H5P_DATASET_CREATE!=H5Pget_class (plist_id) || @@ -2234,6 +2271,7 @@ H5Pget_deflate (hid_t plist_id) H5D_create_t *plist = NULL; FUNC_ENTER (H5Pget_deflate, FAIL); + H5TRACE1("Is","i",plist_id); /* Check arguments */ if (H5P_DATASET_CREATE!=H5Pget_class (plist_id) || @@ -2309,6 +2347,7 @@ H5Pset_mpi (hid_t tid, MPI_Comm comm, MPI_Info info) H5F_access_t *tmpl = NULL; FUNC_ENTER(H5Pset_mpi, FAIL); + H5TRACE3("e","iMcMi",tid,comm,info); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class(tid) || @@ -2363,6 +2402,7 @@ H5Pget_mpi (hid_t tid, MPI_Comm *comm, MPI_Info *info) H5F_access_t *tmpl = NULL; FUNC_ENTER (H5Pget_mpi, FAIL); + H5TRACE3("e","i*Mc*Mi",tid,comm,info); /* Check arguments */ if (H5P_FILE_ACCESS != H5Pget_class (tid) || @@ -2424,6 +2464,7 @@ H5Pset_xfer (hid_t tid, H5D_transfer_t data_xfer_mode) H5D_xfer_t *plist = NULL; FUNC_ENTER(H5Pset_xfer, FAIL); + H5TRACE2("e","iDt",tid,data_xfer_mode); /* Check arguments */ if (H5P_DATASET_XFER != H5Pget_class(tid) || @@ -2473,6 +2514,7 @@ H5Pget_xfer (hid_t tid, H5D_transfer_t *data_xfer_mode) H5D_xfer_t *plist = NULL; FUNC_ENTER (H5Pget_xfer, FAIL); + H5TRACE2("e","i*Dt",tid,data_xfer_mode); /* Check arguments */ if (H5P_DATASET_XFER != H5Pget_class(tid) || @@ -2512,7 +2554,7 @@ H5Pget_xfer (hid_t tid, H5D_transfer_t *data_xfer_mode) * parameter settings. --------------------------------------------------------------------------*/ hid_t -H5Pcopy(hid_t tid) +H5Pcopy (hid_t tid) { const void *tmpl = NULL; void *new_tmpl = NULL; @@ -2521,6 +2563,7 @@ H5Pcopy(hid_t tid) H5I_group_t group; FUNC_ENTER(H5Pcopy, FAIL); + H5TRACE1("i","i",tid); /* Check args */ if (NULL == (tmpl = H5I_object(tid)) || @@ -108,13 +108,14 @@ H5S_term_interface(void) *------------------------------------------------------------------------- */ hid_t -H5Screate_simple(int rank, const hsize_t *dims, const hsize_t *maxdims) +H5Screate_simple (int rank, const hsize_t *dims, const hsize_t *maxdims) { H5S_t *ds = NULL; hid_t ret_value = FAIL; int i; FUNC_ENTER(H5Screate, FAIL); + H5TRACE3("i","Is*h*h",rank,dims,maxdims); /* Check arguments */ if (rank<0) { @@ -190,9 +191,10 @@ H5Screate_simple(int rank, const hsize_t *dims, const hsize_t *maxdims) *------------------------------------------------------------------------- */ herr_t -H5Sclose(hid_t space_id) +H5Sclose (hid_t space_id) { FUNC_ENTER(H5Sclose, FAIL); + H5TRACE1("e","i",space_id); /* Check args */ if (H5_DATASPACE != H5I_group(space_id) || @@ -311,6 +313,7 @@ H5Scopy (hid_t space_id) hid_t ret_value = FAIL; FUNC_ENTER (H5Scopy, FAIL); + H5TRACE1("i","i",space_id); /* Check args */ if (H5_DATASPACE!=H5I_group (space_id) || @@ -419,12 +422,13 @@ H5S_copy(const H5S_t *src) *------------------------------------------------------------------------- */ hsize_t -H5Sget_npoints(hid_t space_id) +H5Sget_npoints (hid_t space_id) { H5S_t *ds = NULL; hsize_t ret_value = 0; FUNC_ENTER(H5Sget_npoints, 0); + H5TRACE1("h","i",space_id); /* Check args */ if (H5_DATASPACE != H5I_group(space_id) || @@ -583,12 +587,13 @@ H5S_get_npoints_max(const H5S_t *ds) *------------------------------------------------------------------------- */ int -H5Sget_ndims(hid_t space_id) +H5Sget_ndims (hid_t space_id) { H5S_t *ds = NULL; intn ret_value = 0; FUNC_ENTER(H5Sget_ndims, FAIL); + H5TRACE1("Is","i",space_id); /* Check args */ if (H5_DATASPACE != H5I_group(space_id) || @@ -668,12 +673,13 @@ H5S_get_ndims(const H5S_t *ds) *------------------------------------------------------------------------- */ int -H5Sget_dims(hid_t space_id, hsize_t dims[]/*out*/) +H5Sget_dims (hid_t space_id, hsize_t dims[]/*out*/) { H5S_t *ds = NULL; intn ret_value = 0; FUNC_ENTER(H5Sget_dims, FAIL); + H5TRACE1("Is","i",space_id); /* Check args */ if (H5_DATASPACE != H5I_group(space_id) || @@ -974,13 +980,14 @@ H5S_is_simple(const H5S_t *sdim) This function determines the if a dataspace is "simple". ie. if it has orthogonal, evenly spaced dimensions. --------------------------------------------------------------------------*/ -hbool_t -H5Sis_simple(hid_t sid) +hbool_t +H5Sis_simple (hid_t sid) { H5S_t *space = NULL; /* dataspace to modify */ hbool_t ret_value = FAIL; FUNC_ENTER(H5Sis_simple, FAIL); + H5TRACE1("b","i",sid); /* Check args and all the boring stuff. */ if ((space = H5I_object(sid)) == NULL) @@ -1019,13 +1026,14 @@ H5Sis_simple(hid_t sid) be unlimited in size. --------------------------------------------------------------------------*/ herr_t -H5Sset_space(hid_t sid, int rank, const hsize_t *dims) +H5Sset_space (hid_t sid, int rank, const hsize_t *dims) { H5S_t *space = NULL; /* dataspace to modify */ intn u; /* local counting variable */ herr_t ret_value = SUCCEED; FUNC_ENTER(H5Sset_space, FAIL); + H5TRACE3("e","iIs*h",sid,rank,dims); /* Check args */ if ((space = H5I_object(sid)) == NULL) { @@ -1117,7 +1125,7 @@ H5Sset_space(hid_t sid, int rank, const hsize_t *dims) datasets which extend in arbitrary directions. --------------------------------------------------------------------------*/ herr_t -H5Sset_hyperslab(hid_t sid, const hssize_t *start, const hsize_t *count, +H5Sset_hyperslab (hid_t sid, const hssize_t *start, const hsize_t *count, const hsize_t *stride) { H5S_t *space = NULL; /* dataspace to modify */ @@ -1126,6 +1134,7 @@ H5Sset_hyperslab(hid_t sid, const hssize_t *start, const hsize_t *count, herr_t ret_value = SUCCEED; FUNC_ENTER(H5Sset_hyperslab, FAIL); + H5TRACE4("e","i*Hs*h*h",sid,start,count,stride); /* Get the object */ if (H5_DATASPACE != H5I_group(sid) || (space = H5I_object(sid)) == NULL) { @@ -1212,6 +1221,7 @@ H5Sget_hyperslab (hid_t sid, hssize_t offset[]/*out*/, hsize_t size[]/*out*/, intn ret_value = FAIL; FUNC_ENTER (H5Sget_hyperslab, FAIL); + H5TRACE1("Is","i",sid); /* Check args */ if (H5_DATASPACE!=H5I_group (sid) || NULL==(ds=H5I_object (sid))) { @@ -657,12 +657,13 @@ H5T_term_interface(void) *------------------------------------------------------------------------- */ hid_t -H5Tcreate(H5T_class_t type, size_t size) +H5Tcreate (H5T_class_t type, size_t size) { H5T_t *dt = NULL; hid_t ret_value = FAIL; FUNC_ENTER(H5Tcreate, FAIL); + H5TRACE2("i","Ttz",type,size); /* check args */ if (size <= 0) { @@ -708,6 +709,7 @@ H5Topen (hid_t loc_id, const char *name) hid_t ret_value = FAIL; FUNC_ENTER (H5Topen, FAIL); + H5TRACE2("i","is",loc_id,name); /* Check args */ if (NULL==(loc=H5G_loc (loc_id))) { @@ -758,6 +760,7 @@ H5Tcommit (hid_t loc_id, const char *name, hid_t type_id) H5T_t *type = NULL; FUNC_ENTER (H5Tcommit, FAIL); + H5TRACE3("e","isi",loc_id,name,type_id); /* Check arguments */ if (NULL==(loc=H5G_loc (loc_id))) { @@ -803,6 +806,7 @@ H5Tcommitted (hid_t type_id) H5T_t *type = NULL; FUNC_ENTER (H5Tcommitted, FAIL); + H5TRACE1("b","i",type_id); /* Check arguments */ if (H5_DATATYPE!=H5I_group (type_id) || @@ -839,7 +843,7 @@ H5Tcommitted (hid_t type_id) *------------------------------------------------------------------------- */ hid_t -H5Tcopy(hid_t type_id) +H5Tcopy (hid_t type_id) { H5T_t *dt = NULL; H5T_t *new_dt = NULL; @@ -847,6 +851,7 @@ H5Tcopy(hid_t type_id) hid_t ret_value = FAIL; FUNC_ENTER(H5Tcopy, FAIL); + H5TRACE1("i","i",type_id); switch (H5I_group (type_id)) { case H5_DATATYPE: @@ -905,11 +910,12 @@ H5Tcopy(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tclose(hid_t type_id) +H5Tclose (hid_t type_id) { H5T_t *dt = NULL; FUNC_ENTER(H5Tclose, FAIL); + H5TRACE1("e","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -948,13 +954,14 @@ H5Tclose(hid_t type_id) *------------------------------------------------------------------------- */ hbool_t -H5Tequal(hid_t type1_id, hid_t type2_id) +H5Tequal (hid_t type1_id, hid_t type2_id) { const H5T_t *dt1 = NULL; const H5T_t *dt2 = NULL; hbool_t ret_value = FAIL; FUNC_ENTER(H5Tequal, FAIL); + H5TRACE2("b","ii",type1_id,type2_id); /* check args */ if (H5_DATATYPE != H5I_group(type1_id) || @@ -996,11 +1003,12 @@ H5Tequal(hid_t type1_id, hid_t type2_id) *------------------------------------------------------------------------- */ herr_t -H5Tlock(hid_t type_id) +H5Tlock (hid_t type_id) { H5T_t *dt = NULL; FUNC_ENTER(H5Tlock, FAIL); + H5TRACE1("e","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1073,12 +1081,13 @@ H5Tget_class(hid_t type_id) *------------------------------------------------------------------------- */ size_t -H5Tget_size(hid_t type_id) +H5Tget_size (hid_t type_id) { H5T_t *dt = NULL; size_t size; FUNC_ENTER(H5Tget_size, 0); + H5TRACE1("z","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1122,12 +1131,13 @@ H5Tget_size(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_size(hid_t type_id, size_t size) +H5Tset_size (hid_t type_id, size_t size) { H5T_t *dt = NULL; size_t prec, offset; FUNC_ENTER(H5Tset_size, FAIL); + H5TRACE2("e","iz",type_id,size); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1258,11 +1268,12 @@ H5Tget_order(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_order(hid_t type_id, H5T_order_t order) +H5Tset_order (hid_t type_id, H5T_order_t order) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_order, FAIL); + H5TRACE2("e","iTo",type_id,order); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1304,12 +1315,13 @@ H5Tset_order(hid_t type_id, H5T_order_t order) *------------------------------------------------------------------------- */ size_t -H5Tget_precision(hid_t type_id) +H5Tget_precision (hid_t type_id) { H5T_t *dt = NULL; size_t prec; FUNC_ENTER(H5Tget_precision, 0); + H5TRACE1("z","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1356,12 +1368,13 @@ H5Tget_precision(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_precision(hid_t type_id, size_t prec) +H5Tset_precision (hid_t type_id, size_t prec) { H5T_t *dt = NULL; size_t offset, size; FUNC_ENTER(H5Tset_prec, FAIL); + H5TRACE2("e","iz",type_id,prec); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1464,12 +1477,13 @@ H5Tset_precision(hid_t type_id, size_t prec) *------------------------------------------------------------------------- */ size_t -H5Tget_offset(hid_t type_id) +H5Tget_offset (hid_t type_id) { H5T_t *dt = NULL; size_t offset; FUNC_ENTER(H5Tget_offset, 0); + H5TRACE1("z","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1525,11 +1539,12 @@ H5Tget_offset(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_offset(hid_t type_id, size_t offset) +H5Tset_offset (hid_t type_id, size_t offset) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_offset, FAIL); + H5TRACE2("e","iz",type_id,offset); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1576,11 +1591,12 @@ H5Tset_offset(hid_t type_id, size_t offset) *------------------------------------------------------------------------- */ herr_t -H5Tget_pad(hid_t type_id, H5T_pad_t *lsb/*out*/, H5T_pad_t *msb/*out*/) +H5Tget_pad (hid_t type_id, H5T_pad_t *lsb/*out*/, H5T_pad_t *msb/*out*/) { H5T_t *dt = NULL; FUNC_ENTER(H5Tget_pad, FAIL); + H5TRACE1("e","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1614,11 +1630,12 @@ H5Tget_pad(hid_t type_id, H5T_pad_t *lsb/*out*/, H5T_pad_t *msb/*out*/) *------------------------------------------------------------------------- */ herr_t -H5Tset_pad(hid_t type_id, H5T_pad_t lsb, H5T_pad_t msb) +H5Tset_pad (hid_t type_id, H5T_pad_t lsb, H5T_pad_t msb) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_pad, FAIL); + H5TRACE3("e","iTpTp",type_id,lsb,msb); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1697,11 +1714,12 @@ H5Tget_sign(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_sign(hid_t type_id, H5T_sign_t sign) +H5Tset_sign (hid_t type_id, H5T_sign_t sign) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_sign, FAIL); + H5TRACE2("e","iTs",type_id,sign); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1745,13 +1763,14 @@ H5Tset_sign(hid_t type_id, H5T_sign_t sign) *------------------------------------------------------------------------- */ herr_t -H5Tget_fields(hid_t type_id, size_t *spos/*out*/, +H5Tget_fields (hid_t type_id, size_t *spos/*out*/, size_t *epos/*out*/, size_t *esize/*out*/, size_t *mpos/*out*/, size_t *msize/*out*/) { H5T_t *dt = NULL; FUNC_ENTER(H5Tget_fields, FAIL); + H5TRACE1("e","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1795,12 +1814,13 @@ H5Tget_fields(hid_t type_id, size_t *spos/*out*/, *------------------------------------------------------------------------- */ herr_t -H5Tset_fields(hid_t type_id, size_t spos, size_t epos, size_t esize, +H5Tset_fields (hid_t type_id, size_t spos, size_t epos, size_t esize, size_t mpos, size_t msize) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_fields, FAIL); + H5TRACE6("e","izzzzz",type_id,spos,epos,esize,mpos,msize); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1868,12 +1888,13 @@ H5Tset_fields(hid_t type_id, size_t spos, size_t epos, size_t esize, *------------------------------------------------------------------------- */ size_t -H5Tget_ebias(hid_t type_id) +H5Tget_ebias (hid_t type_id) { H5T_t *dt = NULL; size_t ebias; FUNC_ENTER(H5Tget_ebias, 0); + H5TRACE1("z","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1907,11 +1928,12 @@ H5Tget_ebias(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_ebias(hid_t type_id, size_t ebias) +H5Tset_ebias (hid_t type_id, size_t ebias) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_ebias, FAIL); + H5TRACE2("e","iz",type_id,ebias); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -1989,11 +2011,12 @@ H5Tget_norm(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_norm(hid_t type_id, H5T_norm_t norm) +H5Tset_norm (hid_t type_id, H5T_norm_t norm) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_norm, FAIL); + H5TRACE2("e","iTn",type_id,norm); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2077,11 +2100,12 @@ H5Tget_inpad(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_inpad(hid_t type_id, H5T_pad_t pad) +H5Tset_inpad (hid_t type_id, H5T_pad_t pad) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_inpad, FAIL); + H5TRACE2("e","iTp",type_id,pad); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2164,11 +2188,12 @@ H5Tget_cset(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_cset(hid_t type_id, H5T_cset_t cset) +H5Tset_cset (hid_t type_id, H5T_cset_t cset) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_cset, FAIL); + H5TRACE2("e","iTc",type_id,cset); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2252,11 +2277,12 @@ H5Tget_strpad(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tset_strpad(hid_t type_id, H5T_str_t strpad) +H5Tset_strpad (hid_t type_id, H5T_str_t strpad) { H5T_t *dt = NULL; FUNC_ENTER(H5Tset_strpad, FAIL); + H5TRACE2("e","iTz",type_id,strpad); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2297,12 +2323,13 @@ H5Tset_strpad(hid_t type_id, H5T_str_t strpad) *------------------------------------------------------------------------- */ int -H5Tget_nmembers(hid_t type_id) +H5Tget_nmembers (hid_t type_id) { H5T_t *dt = NULL; FUNC_ENTER(H5Tget_num_members, FAIL); + H5TRACE1("Is","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2380,12 +2407,13 @@ H5Tget_member_name(hid_t type_id, int membno) *------------------------------------------------------------------------- */ size_t -H5Tget_member_offset(hid_t type_id, int membno) +H5Tget_member_offset (hid_t type_id, int membno) { H5T_t *dt = NULL; size_t offset = 0; FUNC_ENTER(H5Tget_member_offset, 0); + H5TRACE2("z","iIs",type_id,membno); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2424,13 +2452,14 @@ H5Tget_member_offset(hid_t type_id, int membno) *------------------------------------------------------------------------- */ int -H5Tget_member_dims(hid_t type_id, int membno, +H5Tget_member_dims (hid_t type_id, int membno, size_t dims[]/*out*/, int perm[]/*out*/) { H5T_t *dt = NULL; intn ndims, i; FUNC_ENTER(H5Tget_member_dims, FAIL); + H5TRACE2("Is","iIs",type_id,membno); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2478,12 +2507,13 @@ H5Tget_member_dims(hid_t type_id, int membno, *------------------------------------------------------------------------- */ hid_t -H5Tget_member_type(hid_t type_id, int membno) +H5Tget_member_type (hid_t type_id, int membno) { H5T_t *dt = NULL, *memb_dt = NULL; hid_t memb_type_id; FUNC_ENTER(H5Tget_member_type, FAIL); + H5TRACE2("i","iIs",type_id,membno); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2540,12 +2570,13 @@ H5Tget_member_type(hid_t type_id, int membno) *------------------------------------------------------------------------- */ herr_t -H5Tinsert(hid_t parent_id, const char *name, size_t offset, hid_t member_id) +H5Tinsert (hid_t parent_id, const char *name, size_t offset, hid_t member_id) { H5T_t *parent = NULL; /*the compound parent data type */ H5T_t *member = NULL; /*the atomic member type */ FUNC_ENTER(H5Tinsert, FAIL); + H5TRACE4("e","iszi",parent_id,name,offset,member_id); /* Check args */ if (H5_DATATYPE != H5I_group(parent_id) || @@ -2592,11 +2623,12 @@ H5Tinsert(hid_t parent_id, const char *name, size_t offset, hid_t member_id) *------------------------------------------------------------------------- */ herr_t -H5Tpack(hid_t type_id) +H5Tpack (hid_t type_id) { H5T_t *dt = NULL; FUNC_ENTER(H5Tpack, FAIL); + H5TRACE1("e","i",type_id); /* Check args */ if (H5_DATATYPE != H5I_group(type_id) || @@ -2644,7 +2676,7 @@ H5Tpack(hid_t type_id) *------------------------------------------------------------------------- */ herr_t -H5Tregister_hard(const char *name, hid_t src_id, hid_t dst_id, H5T_conv_t func) +H5Tregister_hard (const char *name, hid_t src_id, hid_t dst_id, H5T_conv_t func) { H5T_t *src = NULL; H5T_t *dst = NULL; @@ -2652,6 +2684,7 @@ H5Tregister_hard(const char *name, hid_t src_id, hid_t dst_id, H5T_conv_t func) intn i; FUNC_ENTER(H5Tregister_hard, FAIL); + H5TRACE4("e","siix",name,src_id,dst_id,func); /* Check args */ if (!name || !*name) { @@ -2706,7 +2739,7 @@ H5Tregister_hard(const char *name, hid_t src_id, hid_t dst_id, H5T_conv_t func) *------------------------------------------------------------------------- */ herr_t -H5Tregister_soft(const char *name, H5T_class_t src_cls, H5T_class_t dst_cls, +H5Tregister_soft (const char *name, H5T_class_t src_cls, H5T_class_t dst_cls, H5T_conv_t func) { intn i; @@ -2714,6 +2747,7 @@ H5Tregister_soft(const char *name, H5T_class_t src_cls, H5T_class_t dst_cls, H5T_cdata_t cdata; FUNC_ENTER(H5Tregister_soft, FAIL); + H5TRACE4("e","sTtTtx",name,src_cls,dst_cls,func); /* Check args */ if (!name || !*name) { @@ -2822,13 +2856,14 @@ H5Tregister_soft(const char *name, H5T_class_t src_cls, H5T_class_t dst_cls, *------------------------------------------------------------------------- */ herr_t -H5Tunregister(H5T_conv_t func) +H5Tunregister (H5T_conv_t func) { intn i, j; H5T_path_t *path = NULL; hid_t src_id, dst_id; FUNC_ENTER(H5Tunregister, FAIL); + H5TRACE1("e","x",func); /* Check args */ if (!func) { @@ -3003,6 +3038,7 @@ H5Tconvert (hid_t src_id, hid_t dst_id, size_t nelmts, void *buf, #endif FUNC_ENTER (H5Tconvert, FAIL); + H5TRACE5("e","iizxx",src_id,dst_id,nelmts,buf,background); if (NULL==(tconv_func=H5Tfind (src_id, dst_id, &cdata))) { HRETURN_ERROR (H5E_DATATYPE, H5E_CANTINIT, FAIL, @@ -4145,11 +4181,11 @@ H5T_entof (H5T_t *dt) *------------------------------------------------------------------------- */ void -H5T_timer_begin (H5_timer_t *timer, H5T_cdata_t *cdata) +H5T_timer_begin (H5_timer_t __unused__ *timer, H5T_cdata_t __unused__ *cdata) { +#ifdef H5T_DEBUG assert (timer); assert (cdata); -#ifdef H5T_DEBUG assert (cdata->stats); H5_timer_begin (timer); #endif @@ -4171,11 +4207,12 @@ H5T_timer_begin (H5_timer_t *timer, H5T_cdata_t *cdata) *------------------------------------------------------------------------- */ void -H5T_timer_end (H5_timer_t *timer, H5T_cdata_t *cdata, size_t nelmts) +H5T_timer_end (H5_timer_t __unused__ *timer, H5T_cdata_t __unused__ *cdata, + size_t __unused__ nelmts) { +#ifdef H5T_DEBUG assert (timer); assert (cdata); -#ifdef H5T_DEBUG assert (cdata->stats); H5_timer_end (&(cdata->stats->timer), timer); cdata->stats->ncalls++; diff --git a/src/H5Tconv.c b/src/H5Tconv.c index f32c310..3f393d2 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -839,8 +839,6 @@ H5T_conv_i_i (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, * should copy the value to the true destination buffer. */ if (d==dbuf) HDmemcpy (dp, d, dst->size); - - next: sp += direction * src->size; dp += direction * dst->size; } @@ -196,6 +196,7 @@ H5Zregister (H5Z_method_t method, const char *name, H5Z_func_t cfunc, H5Z_func_t ufunc) { FUNC_ENTER (H5Zregister, FAIL); + H5TRACE4("e","Zmsxx",method,name,cfunc,ufunc); /* Check args */ if (method<0 || method>H5Z_USERDEF_MAX) { diff --git a/src/H5private.h b/src/H5private.h index db7ca1e..e079682 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -461,10 +461,67 @@ int64 HDstrtoll (const char *s, const char **rest, int base); /* * And now for a couple non-Posix functions... */ -extern char *strdup(const char *s); +extern char *strdup(const char *s); #define HDstrdup(S) strdup(S) /*------------------------------------------------------------------------- + * Purpose: These macros are inserted automatically just after the + * FUNC_ENTER() macro of API functions and are used to trace + * application program execution. Unless H5_DEBUG_API has been + * defined they are no-ops. + * + * Arguments: R - Return type encoded as a string + * T - Argument types encoded as a string + * A0-An - Arguments. The number at the end of the macro name + * indicates the number of arguments. + * + * Programmer: Robb Matzke + * + * Modifications: + *------------------------------------------------------------------------- + */ +#ifdef H5_DEBUG_API +#define H5TRACE_DECL const char *RTYPE=NULL +#define H5TRACE0(R,T) RTYPE=R; \ + H5_trace(0,FUNC,T) +#define H5TRACE1(R,T,A0) RTYPE=R; \ + H5_trace(0,FUNC,T,#A0,A0) +#define H5TRACE2(R,T,A0,A1) RTYPE=R; \ + H5_trace(0,FUNC,T,#A0,A0,#A1,A1) +#define H5TRACE3(R,T,A0,A1,A2) RTYPE=R; \ + H5_trace(0,FUNC,T,#A0,A0,#A1,A1, \ + #A2,A2) +#define H5TRACE4(R,T,A0,A1,A2,A3) RTYPE=R; \ + H5_trace(0,FUNC,T,#A0,A0,#A1,A1, \ + #A2,A2,#A3,A3) +#define H5TRACE5(R,T,A0,A1,A2,A3,A4) RTYPE=R; \ + H5_trace(0,FUNC,T,#A0,A0,#A1,A1, \ + #A2,A2,#A3,A3,#A4,A4) +#define H5TRACE6(R,T,A0,A1,A2,A3,A4,A5) RTYPE=R; \ + H5_trace(0,FUNC,T,#A0,A0,#A1,A1, \ + #A2,A2,#A3,A3,#A4,A4, \ + #A5,A5) +#define H5TRACE_RETURN(V) if (RTYPE) { \ + H5_trace(1,NULL,RTYPE,NULL,V); \ + RTYPE=NULL; \ + } +#else +#define H5TRACE_DECL /*void*/ +#define H5TRACE0(R,T) /*void*/ +#define H5TRACE1(R,T,A0) /*void*/ +#define H5TRACE2(R,T,A0,A1) /*void*/ +#define H5TRACE3(R,T,A0,A1,A2) /*void*/ +#define H5TRACE4(R,T,A0,A1,A2,A3) /*void*/ +#define H5TRACE5(R,T,A0,A1,A2,A3,A4) /*void*/ +#define H5TRACE6(R,T,A0,A1,A2,A3,A4,A5) /*void*/ +#define H5TRACE_RETURN(V) /*void*/ +#endif + +extern FILE *H5_trace_g; +void H5_trace (hbool_t returning, const char *func, const char *type, ...); + + +/*------------------------------------------------------------------------- * Purpose: Register function entry for library initialization and code * profiling. * @@ -508,17 +565,13 @@ extern char *strdup(const char *s); * function comes from the `INTERFACE_INIT' constant which must be * defined in every source file. * + * Robb Matzke, 17 Jun 1998 + * Added auto variable RTYPE which is initialized by the tracing macros. *------------------------------------------------------------------------- */ extern hbool_t library_initialize_g; /*good thing C's lazy about extern! */ extern hbool_t thread_initialize_g; /*don't decl interface_initialize_g */ -/* Print S on file N followed by a newline */ -#define H5_PRINT(N,S) { \ - write ((N), (S), strlen((S))); \ - write ((N), "\n", 1); \ -} - /* Is `S' the name of an API function? */ #define H5_IS_API(S) ('_'!=S[2] && '_'!=S[3] && (!S[4] || '_'!=S[4])) @@ -526,6 +579,7 @@ extern hbool_t thread_initialize_g; /*don't decl interface_initialize_g */ #define FUNC_ENTER_INIT(func_name,interface_init_func,err) { \ CONSTR (FUNC, #func_name); \ + H5TRACE_DECL; \ PABLO_SAVE (ID_ ## func_name); \ \ PABLO_TRACE_ON (PABLO_MASK, pablo_func_id); \ @@ -560,7 +614,6 @@ extern hbool_t thread_initialize_g; /*don't decl interface_initialize_g */ \ /* Clear thread error stack entering public functions */ \ if (H5E_clearable_g && H5_IS_API (FUNC)) { \ - H5_PRINT (55, #func_name); \ H5E_clear (); \ } \ { @@ -582,6 +635,7 @@ extern hbool_t thread_initialize_g; /*don't decl interface_initialize_g */ */ #define FUNC_LEAVE(return_value) HRETURN(return_value)}} + /* * The FUNC_ENTER() and FUNC_LEAVE() macros make calls to Pablo functions * through one of these two sets of macros. diff --git a/src/Makefile.in b/src/Makefile.in index 2ac1511..eb054b4 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -5,6 +5,7 @@ # # @COMMENCE@ +TRACE=perl ../bin/trace # Add `-I.' to the C preprocessor flags. CPPFLAGS=-I. @CPPFLAGS@ diff --git a/test/dsets.c b/test/dsets.c index 576a575..cc81319 100644 --- a/test/dsets.c +++ b/test/dsets.c @@ -694,7 +694,7 @@ test_compression(hid_t file) static herr_t test_multiopen (hid_t file) { - hid_t dcpl, space, dset1, dset2; + hid_t dcpl=-1, space=-1, dset1=-1, dset2=-1; hsize_t cur_size[1] = {10}; static hsize_t max_size[1] = {H5S_UNLIMITED}; hsize_t tmp_size[1]; diff --git a/test/dtypes.c b/test/dtypes.c index a2f9a76..f60efd7 100644 --- a/test/dtypes.c +++ b/test/dtypes.c @@ -227,7 +227,7 @@ static herr_t test_transient (void) { static hsize_t ds_size[2] = {10, 20}; - hid_t file, type, space, dset, t2; + hid_t file=-1, type=-1, space=-1, dset=-1, t2=-1; printf ("%-70s", "Testing transient data types"); if ((file=H5Fcreate (FILE_NAME_1, H5F_ACC_TRUNC|H5F_ACC_DEBUG, @@ -342,7 +342,7 @@ test_transient (void) static herr_t test_named (void) { - hid_t file, type, space, dset, t2, attr1; + hid_t file=-1, type=-1, space=-1, dset=-1, t2=-1, attr1=-1; herr_t status; static hsize_t ds_size[2] = {10, 20}; |