summaryrefslogtreecommitdiff
path: root/lib/sbin/create_c_stuff.pl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sbin/create_c_stuff.pl')
-rw-r--r--lib/sbin/create_c_stuff.pl14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/sbin/create_c_stuff.pl b/lib/sbin/create_c_stuff.pl
index 9c541bac..124fd560 100644
--- a/lib/sbin/create_c_stuff.pl
+++ b/lib/sbin/create_c_stuff.pl
@@ -186,8 +186,8 @@ sub CreateCStructureParameterHeader
push(@data, '');
push(@data, 'extern struct');
push(@data, '{');
+ my $delim = ' ';
- push(@use, " const void *${structure}_use = ( \\");
foreach $parameter (&order_params($rhparameters, $rhparameter_db))
{
my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
@@ -208,10 +208,9 @@ sub CreateCStructureParameterHeader
push(@data, " $type_string $realname$suffix;");
push(@definition, " $type_string$varprefix const $parameter = $structure.$realname; \\");
- push(@use, " ${structure}_use = \&$parameter, \\");
+ push(@use, " $delim dummy\_$structure\_$parameter = sizeof( $parameter ) \\");
+ $delim = ',';
}
- push(@use, " &${structure}_use \\");
- push(@use, ' );');
# Some compilers don't like an empty structure.
if((keys %$rhparameters) == 0)
@@ -229,7 +228,12 @@ sub CreateCStructureParameterHeader
push(@data, "#define DECLARE_${structure}_PARAMS \\");
push(@data, @definition);
- push(@data, @use);
+ if( @use )
+ {
+ push(@data, " enum { \\");
+ push(@data, @use);
+ push(@data, " }; \\");
+ }
push(@data, "\n"); # workaround for perl 5.004_04 to add a trailing newline