e576bb | 2002-10-11 | Martin Nilsson | | |
48a624 | 2003-05-31 | Martin Stjernholm | | || $Id: constants.h,v 1.31 2003/05/31 01:14:27 mast Exp $
|
e576bb | 2002-10-11 | Martin Nilsson | | */
|
24ddc7 | 1998-03-28 | Henrik Grubbström (Grubba) | |
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #ifndef ADD_EFUN_H
#define ADD_EFUN_H
#include "svalue.h"
#include "hashtable.h"
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | #include "las.h" /* For OPT_SIDE_EFFECT etc. */
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | | #include "block_alloc_h.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
7bd0ea | 1996-02-19 | Fredrik Hübinette (Hubbe) | | typedef int (*docode_fun)(node *n);
|
693018 | 1996-02-25 | Fredrik Hübinette (Hubbe) | | typedef node *(*optimize_fun)(node *n);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
c39e43 | 2001-08-02 | Fredrik Hübinette (Hubbe) | | #define CALLABLE_DYNAMIC 1
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct callable
{
|
45637c | 2001-04-07 | Fredrik Hübinette (Hubbe) | | PIKE_MEMORY_OBJECT_MEMBERS;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | c_fun function;
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | | struct pike_type *type;
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | struct pike_string *name;
|
48a624 | 2003-05-31 | Martin Stjernholm | | struct program *prog;
|
c39e43 | 2001-08-02 | Fredrik Hübinette (Hubbe) | | INT16 flags;
INT16 internal_flags;
|
044c62 | 1999-04-14 | Fredrik Hübinette (Hubbe) | | #ifdef PIKE_DEBUG
INT8 may_return_void;
|
d9a93b | 2001-07-01 | Fredrik Hübinette (Hubbe) | | long compiles;
long runs;
|
044c62 | 1999-04-14 | Fredrik Hübinette (Hubbe) | | #endif
|
7bd0ea | 1996-02-19 | Fredrik Hübinette (Hubbe) | | optimize_fun optimize;
docode_fun docode;
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | | struct callable *next;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | };
|
4ee922 | 2000-12-13 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT struct mapping *get_builtin_constants(void);
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | void low_add_efun(struct pike_string *name, struct svalue *fun);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | void low_add_constant(const char *name, struct svalue *fun);
PMOD_EXPORT void add_global_program(const char *name, struct program *p);
|
3aab37 | 2002-11-24 | Martin Stjernholm | | BLOCK_ALLOC_FILL_PAGES(callable,2)
|
4ee922 | 2000-12-13 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT struct callable *low_make_callable(c_fun fun,
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | | struct pike_string *name,
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | | struct pike_type *type,
|
7e877a | 2003-04-02 | Martin Stjernholm | | int flags,
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | | optimize_fun optimize,
docode_fun docode);
|
4ee922 | 2000-12-13 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT struct callable *make_callable(c_fun fun,
|
0929a0 | 2002-09-12 | Marcus Comstedt | | const char *name,
const char *type,
|
7e877a | 2003-04-02 | Martin Stjernholm | | int flags,
|
7bd0ea | 1996-02-19 | Fredrik Hübinette (Hubbe) | | optimize_fun optimize,
docode_fun docode);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT struct callable *add_efun2(const char *name,
|
4d7b18 | 1999-12-07 | Fredrik Hübinette (Hubbe) | | c_fun fun,
|
0929a0 | 2002-09-12 | Marcus Comstedt | | const char *type,
|
7e877a | 2003-04-02 | Martin Stjernholm | | int flags,
|
4d7b18 | 1999-12-07 | Fredrik Hübinette (Hubbe) | | optimize_fun optimize,
docode_fun docode);
|
7e877a | 2003-04-02 | Martin Stjernholm | | PMOD_EXPORT struct callable *add_efun(const char *name, c_fun fun, const char *type, int flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT struct callable *quick_add_efun(const char *name, ptrdiff_t name_length,
|
4ee922 | 2000-12-13 | Fredrik Hübinette (Hubbe) | | c_fun fun,
|
0929a0 | 2002-09-12 | Marcus Comstedt | | const char *type, ptrdiff_t type_length,
|
7e877a | 2003-04-02 | Martin Stjernholm | | int flags,
|
4ee922 | 2000-12-13 | Fredrik Hübinette (Hubbe) | | optimize_fun optimize,
docode_fun docode);
|
d8073b | 2002-01-27 | Martin Stjernholm | | void init_builtin_constants(void);
|
1c5b34 | 2003-03-26 | Martin Nilsson | | void exit_builtin_constants(void);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | |
#include "pike_macros.h"
|
d17c99 | 2002-09-30 | Henrik Grubbström (Grubba) | | #define ADD_EFUN2(NAME,FUN,TYPE,OPT_FLAGS,OPTIMIZE,DOCODE) \
|
41be1a | 2002-09-30 | Henrik Grubbström (Grubba) | | quick_add_efun(NAME,CONSTANT_STRLEN(NAME),FUN, \
|
d17c99 | 2002-09-30 | Henrik Grubbström (Grubba) | | TYPE,CONSTANT_STRLEN(TYPE),OPT_FLAGS,OPTIMIZE,DOCODE)
|
41be1a | 2002-09-30 | Henrik Grubbström (Grubba) | |
|
d17c99 | 2002-09-30 | Henrik Grubbström (Grubba) | | #define ADD_EFUN(NAME,FUN,TYPE,OPT_FLAGS) \
ADD_EFUN2(NAME,FUN,TYPE,OPT_FLAGS,0,0)
|
91aab4 | 1999-12-13 | Martin Stjernholm | |
#define ADD_EFUN_DTYPE(NAME,FUN,DTYPE,FLAGS) do { \
DTYPE_START; \
{DTYPE} \
{ \
struct pike_string *_t; \
DTYPE_END(_t); \
quick_add_efun(NAME,CONSTANT_STRLEN(NAME),FUN,_t->str,_t->len,FLAGS,0,0); \
free_string(_t); \
} \
} while (0)
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|