New file. This is included in `$(top_srcdir)/lib/lib.pl'.
1999-11-28 Martin Baulig <martin@home-of-linux.org> * c_types.pl: New file. This is included in `$(top_srcdir)/lib/lib.pl'.
This commit is contained in:
committed by
Martin Baulig
parent
f918792bb6
commit
b60b7fd201
2
scripts/.cvsignore
Normal file
2
scripts/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile.in
|
||||
Makefile
|
5
scripts/ChangeLog
Normal file
5
scripts/ChangeLog
Normal file
@@ -0,0 +1,5 @@
|
||||
1999-11-28 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* c_types.pl: New file.
|
||||
This is included in `$(top_srcdir)/lib/lib.pl'.
|
||||
|
1
scripts/Makefile.am
Normal file
1
scripts/Makefile.am
Normal file
@@ -0,0 +1 @@
|
||||
EXTRA_DIST = c_types.pl
|
49
scripts/c_types.pl
Normal file
49
scripts/c_types.pl
Normal file
@@ -0,0 +1,49 @@
|
||||
# Internal functions
|
||||
|
||||
my $c_strlen_func = sub {
|
||||
local ($_) = @_;
|
||||
|
||||
return "strlen ($_) + sizeof (unsigned) + 1";
|
||||
};
|
||||
|
||||
my $c_marshal_func = sub {
|
||||
my ($type, $param, $indent) = @_;
|
||||
|
||||
my $code = '';
|
||||
$code .= sprintf ("%s_LIBGTOP_SEND_temp_len = strlen (%s)+1;\n",
|
||||
$indent, $param);
|
||||
$code .= sprintf ("%smemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n",
|
||||
$indent, "&_LIBGTOP_SEND_temp_len", "sizeof (unsigned)");
|
||||
$code .= sprintf ("%s_LIBGTOP_SEND_ptr += sizeof (unsigned);\n", $indent);
|
||||
$code .= sprintf ("%smemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n",
|
||||
$indent, $param, "strlen ($param)+1");
|
||||
|
||||
$need_temp_len = 1;
|
||||
|
||||
return $code;
|
||||
};
|
||||
|
||||
|
||||
# Typeinfo array fields:
|
||||
# ---------------------
|
||||
# * C type name
|
||||
# * Flag specifying whether we need to copy the parameter into temp storage
|
||||
#
|
||||
|
||||
$typeinfo = {'long' => ['int64_t', 0],
|
||||
'ulong' => ['u_int64_t', 0],
|
||||
'pid_t' => ['pid_t', 0],
|
||||
'int' => ['int', 0],
|
||||
'retval' => ['int', 0],
|
||||
'ushort' => ['unsigned short', 0],
|
||||
'unsigned' => ['unsigned', 0],
|
||||
'string' => ['const char *', 1],
|
||||
};
|
||||
|
||||
$sizeof_funcs = {'string' => $c_strlen_func,
|
||||
};
|
||||
|
||||
$marshal_funcs = {'string' => $c_marshal_func,
|
||||
};
|
||||
|
||||
1;
|
Reference in New Issue
Block a user