summaryrefslogtreecommitdiff
path: root/lib/lib.pl
diff options
context:
space:
mode:
authorMartin Baulig <martin@home-of-linux.org>1999-12-12 14:20:17 +0000
committerMartin Baulig <martin@src.gnome.org>1999-12-12 14:20:17 +0000
commit881c2a208669f096339d755d21c1a8d2d267ca40 (patch)
treefdddae7b8b8f870bef30a771ad06614f8f3cd40b /lib/lib.pl
parenta33f4df47e398aaf62043ed98229977e42ac2241 (diff)
downloadlibgtop-881c2a208669f096339d755d21c1a8d2d267ca40.tar.gz
All functions which return an array now take a `glibtop_array *array'
1999-12-12 Martin Baulig <martin@home-of-linux.org> All functions which return an array now take a `glibtop_array *array' parameter instead of a `glibtop_<feature> *buf' one. For compatibility, we typedef the corresponding `glibtop_<feature>'s to `glibtop_array' in <glibtop/compat_10.h>. This has the advantage that scripting languages like Guile with an array implementation which stores the length of an array in the array don't need the `glibtop_array' parameter at all any longer. We'll also add convenient functions which return GPtrArray's here. * include/glibtop/proclist.h (glibtop_proclist): Removed. (glibtop_get_proclist_*): This now takes a `glibtop_array' parameter instead of a `glibtop_proclist' one. * include/glibtop/procmap.h (glibtop_proc_map): Removed. (glibtop_get_proc_map_*): This now takes a `glibtop_array' parameter instead of a `glibtop_proc_map' one. * include/glibtop/mountlist.h (glibtop_mountlist): Removed. (glibtop_get_mountlist_*): This now takes a `glibtop_array' parameter instead of a `glibtop_mountlist' one. * include/glibtop/interfaces.h (glibtop_interface_names): Removed. (glibtop_get_interface_names_*): This now takes a `glibtop_array' parameter instead of a `glibtop_interface_name' one. * include/glibtop/compat_10.h: New file. Contains some typedefs and #defines to keep compatibility until the big restructurement is completely done.
Diffstat (limited to 'lib/lib.pl')
-rwxr-xr-xlib/lib.pl17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/lib.pl b/lib/lib.pl
index 83a32320..320bf5c8 100755
--- a/lib/lib.pl
+++ b/lib/lib.pl
@@ -211,6 +211,12 @@ sub output {
if ($line_fields[3] eq '') {
$sysdeps_code .= sprintf ("\t%sglibtop_get_%s_s (server%s);\n",
$prefix, $feature, $call_param);
+ } elsif ($line_fields[3] eq 'array') {
+ $sysdeps_code .= sprintf ("\t%sglibtop_get_%s_s (server, array%s);\n",
+ $prefix, $feature, $call_param);
+ } elsif ($line_fields[3] =~ /^array/) {
+ $sysdeps_code .= sprintf ("\t%sglibtop_get_%s_s (server, array, buf%s);\n",
+ $prefix, $feature, $call_param);
} else {
$sysdeps_code .= sprintf ("\t%sglibtop_get_%s_s (server, buf%s);\n",
$prefix, $feature, $call_param);
@@ -243,6 +249,9 @@ sub output {
"_LIBGTOP_SEND_len", "_LIBGTOP_SEND_ptr");
if ($line_fields[3] eq '') {
$call_code .= sprintf ("\t\t\t%s0, NULL,\n", $call_prefix_space);
+ } elsif ($line_fields[3] eq 'array') {
+ $call_code .= sprintf ("\t\t\t%ssizeof (glibtop_array), array,\n",
+ $call_prefix_space);
} else {
$call_code .= sprintf ("\t\t\t%ssizeof (glibtop_%s), buf,\n",
$call_prefix_space, $feature);
@@ -263,7 +272,7 @@ sub output {
$check_code = "check_missing:\n";
$check_code .= "\t/* Make sure that all required fields are present. */\n";
- if (!($line_fields[3] eq '')) {
+ if (!(($line_fields[3] eq '') or ($line_fields[3] eq 'array'))) {
$check_code .= "\tif (buf->flags & server->required." . $feature . ")\n";
$check_code .= "\t\t_glibtop_missing_feature (server, \"" . $feature .
"\", buf->flags,\n\t\t\t\t\t &server->required." . $feature . ");\n";
@@ -284,6 +293,12 @@ sub output {
if ($line_fields[3] eq '') {
$func_decl .= sprintf ("glibtop_get_%s_l (glibtop *server%s)\n",
$feature, $param_decl);
+ } elsif ($line_fields[3] eq 'array') {
+ $func_decl .= sprintf ("glibtop_get_%s_l (glibtop *server, glibtop_array *array%s)\n",
+ $feature, $param_decl);
+ } elsif ($line_fields[3] =~ /^array/) {
+ $func_decl .= sprintf ("glibtop_get_%s_l (glibtop *server, glibtop_array *array, %s *buf%s)\n",
+ $feature, 'glibtop_'.$feature, $param_decl);
} else {
$func_decl .= sprintf ("glibtop_get_%s_l (glibtop *server, %s *buf%s)\n",
$feature, 'glibtop_'.$feature, $param_decl);