diff options
author | Søren Sandmann Pedersen <sandmann@redhat.com> | 2008-09-06 08:28:56 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <sandmann@redhat.com> | 2008-09-06 08:28:56 -0400 |
commit | 482b47dd7f47433da1d22c542131734635f7aa2e (patch) | |
tree | f91441e24c17b828f1715d76c8acf643e950613a /libnul.h |
Initial checkin
Diffstat (limited to 'libnul.h')
-rw-r--r-- | libnul.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/libnul.h b/libnul.h new file mode 100644 index 0000000..a78f0c9 --- /dev/null +++ b/libnul.h @@ -0,0 +1,67 @@ +#ifndef INVOKE_H +#define INVOKE_H + +#include <stdint.h> + +typedef union +{ + uint32_t v_uint32; + int32_t v_int32; + uint16_t v_uint16; + int16_t v_int16; + uint8_t v_uint8; + int8_t v_int8; + + unsigned int v_uint; + int v_int; + unsigned short v_ushort; + short v_short; + unsigned char v_uchar; + signed char v_schar; + char v_char; + + void * v_pointer; + + float v_float; + double v_double; +} Arg; + +typedef enum +{ + TYPE_UINT32, + TYPE_INT32, + TYPE_UINT16, + TYPE_INT16, + TYPE_UINT8, + TYPE_INT8, + + TYPE_UINT, + TYPE_INT, + TYPE_USHORT, + TYPE_SHORT, + + TYPE_UCHAR, + TYPE_SCHAR, + TYPE_CHAR, + + TYPE_POINTER, + + TYPE_DOUBLE, + TYPE_FLOAT, + + TYPE_VOID +} Type; + +typedef void (* Function)(); + +typedef struct FunDef FunDef; + +FunDef *fun_def_new (Type ret_type, + int n_args, + const Type *arg_types); +Arg fun_def_invoke (FunDef *fun, + Function f, + Arg *args); +void fun_def_free (FunDef *fun); + +#endif |