summaryrefslogtreecommitdiff
path: root/lib/sbin/create_c_stuff.pl
diff options
context:
space:
mode:
authorgoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>2002-05-20 14:07:36 +0000
committergoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>2002-05-20 14:07:36 +0000
commit3f6c7a77eee5addaa3eca660ad0baedc5e04e5f8 (patch)
tree430aa9cd3d431ace3827a0786bba5e6ac2ba8b36 /lib/sbin/create_c_stuff.pl
parent23c746c442dc67e290609679071f2462e4515741 (diff)
Added array parameters.
Added accumulator parameters - needs a bit more error checking. Preliminary support for aliasing parameters - disabled until it works properly. Tom git-svn-id: http://svn.cactuscode.org/flesh/trunk@2829 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/create_c_stuff.pl')
-rw-r--r--lib/sbin/create_c_stuff.pl43
1 files changed, 35 insertions, 8 deletions
diff --git a/lib/sbin/create_c_stuff.pl b/lib/sbin/create_c_stuff.pl
index 9618fcae..99bb78c3 100644
--- a/lib/sbin/create_c_stuff.pl
+++ b/lib/sbin/create_c_stuff.pl
@@ -37,10 +37,19 @@ sub CreateParameterBindingFile
foreach $parameter (&order_params($rhparameters,$rhparameter_db))
{
- $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
- $type_string = &get_c_type_string($type);
+ my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
+ my $type_string = &get_c_type_string($type);
+
+ my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"};
+
+ my $suffix = '';
+
+ if($array_size)
+ {
+ $suffix = "[$array_size]";
+ }
- push(@data, " $type_string$parameter;");
+ push(@data, " $type_string$parameter$suffix;");
}
# Some compilers don't like an empty structure.
@@ -171,12 +180,30 @@ sub CreateCStructureParameterHeader
foreach $parameter (&order_params($rhparameters, $rhparameter_db))
{
- $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
- $type_string = &get_c_type_string($type);
+ my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
+ my $type_string = &get_c_type_string($type);
+
+ my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"};
+
+ my $suffix = '';
+ my $prefix = '';
+
+ if($array_size)
+ {
+ $prefix = '*';
+ $suffix = "[$array_size]";
+ }
+
+ my $name = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E alias"};
+
+ if(! $name)
+ {
+ $name = "$parameter";
+ }
- push(@data, " $type_string $parameter;");
- push(@definition, " const $type_string $parameter = $structure.$parameter; \\");
- push(@use, " (void) ($parameter + 0); \\");
+ push(@data, " $type_string $parameter$suffix;");
+ push(@definition, " const $type_string $prefix$name = $structure.$parameter; \\");
+ push(@use, " (void) ($name + 0); \\");
}
# Some compilers don't like an empty structure.