Declare DO_DUMP_FUNC() before calling it and call normally so that
perl can check its prototype.

diff --git a/tools/make_requests b/tools/make_requests
index dd7f359..de7c68c 100755
--- a/tools/make_requests
+++ b/tools/make_requests
@@ -49,6 +49,48 @@
 
 
 
+### Generate a dumping function
+
+sub DO_DUMP_FUNC($$@)
+{
+    my $name = shift;
+    my $req = shift;
+    push @trace_lines, "static void dump_${name}_$req( const struct ${name}_$req *req )\n{\n";
+    while ($#_ >= 0)
+    {
+	my $type = shift;
+	my $var = shift;
+	if (defined($formats{$type}))
+	{
+            if ($formats{$type} =~ /^&(.*)/)
+            {
+                my $func = $1;
+                push @trace_lines, "    fprintf( stderr, \" $var=\" );\n";
+                push @trace_lines, "    $func( &req->$var );\n";
+                push @trace_lines, "    fprintf( stderr, \",\" );\n" if ($#_ > 0);
+            }
+            else
+            {
+                push @trace_lines, "    fprintf( stderr, \" $var=$formats{$type}";
+                push @trace_lines, "," if ($#_ > 0);
+                push @trace_lines, "\", ";
+                # In the case of time_t we need to cast the parameter to
+                # long to match the associated "%ld" printf modifier.
+                push @trace_lines, "(long)" if( $type eq "time_t" );
+                push @trace_lines, "req->$var );\n";
+            }
+	}
+	else  # must be some varargs format
+	{
+            my $func = $type;
+            push @trace_lines, "    fprintf( stderr, \" $var=\" );\n";
+            push @trace_lines, "    $func;\n";
+            push @trace_lines, "    fputc( ',', stderr );\n" if ($#_ > 0);
+        }
+    }
+    push @trace_lines, "}\n\n";
+}
+
 ### Parse the request definitions
 
 sub PARSE_REQUESTS()
@@ -116,11 +158,11 @@
 
             # got a complete request
             push @requests, $name;
-            &DO_DUMP_FUNC( $name, "request", @in_struct);
+            DO_DUMP_FUNC( $name, "request", @in_struct);
             if ($#out_struct >= 0)
             {
                 $replies{$name} = 1;
-                &DO_DUMP_FUNC( $name, "reply", @out_struct);
+                DO_DUMP_FUNC( $name, "reply", @out_struct);
             }
             $state = 1;
             next;
@@ -167,48 +209,6 @@
     close PROTOCOL;
 }
 
-### Generate a dumping function
-
-sub DO_DUMP_FUNC($$@)
-{
-    my $name = shift;
-    my $req = shift;
-    push @trace_lines, "static void dump_${name}_$req( const struct ${name}_$req *req )\n{\n";
-    while ($#_ >= 0)
-    {
-	my $type = shift;
-	my $var = shift;
-	if (defined($formats{$type}))
-	{
-            if ($formats{$type} =~ /^&(.*)/)
-            {
-                my $func = $1;
-                push @trace_lines, "    fprintf( stderr, \" $var=\" );\n";
-                push @trace_lines, "    $func( &req->$var );\n";
-                push @trace_lines, "    fprintf( stderr, \",\" );\n" if ($#_ > 0);
-            }
-            else
-            {
-                push @trace_lines, "    fprintf( stderr, \" $var=$formats{$type}";
-                push @trace_lines, "," if ($#_ > 0);
-                push @trace_lines, "\", ";
-                # In the case of time_t we need to cast the parameter to
-                # long to match the associated "%ld" printf modifier.
-                push @trace_lines, "(long)" if( $type eq "time_t" );
-                push @trace_lines, "req->$var );\n";
-            }
-	}
-	else  # must be some varargs format
-	{
-            my $func = $type;
-            push @trace_lines, "    fprintf( stderr, \" $var=\" );\n";
-            push @trace_lines, "    $func;\n";
-            push @trace_lines, "    fputc( ',', stderr );\n" if ($#_ > 0);
-        }
-    }
-    push @trace_lines, "}\n\n";
-}
-
 ### Retrieve the server protocol version from the existing server_protocol.h file
 
 sub GET_PROTOCOL_VERSION()