cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | |
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | ||| This file a part of Pike, and is copyright by Fredrik Hubinette
||| Pike is distributed as GPL (General Public License)
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | ||| See the files COPYING and DISCLAIMER for more information.
\*/
|
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. */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
struct efun
{
struct svalue function;
struct hash_entry link;
};
typedef void (*c_fun)(INT32);
|
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) | |
struct callable
{
INT32 refs;
c_fun function;
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | struct pike_string *type;
struct pike_string *name;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | INT16 flags;
|
7bd0ea | 1996-02-19 | Fredrik Hübinette (Hubbe) | | optimize_fun optimize;
docode_fun docode;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | };
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | struct efun *lookup_efun(struct pike_string *name);
void low_add_efun(struct pike_string *name, struct svalue *fun);
|
7bd0ea | 1996-02-19 | Fredrik Hübinette (Hubbe) | | struct callable *make_callable(c_fun fun,
char *name,
char *type,
INT16 flags,
optimize_fun optimize,
docode_fun docode);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | void really_free_callable(struct callable *fun);
|
7bd0ea | 1996-02-19 | Fredrik Hübinette (Hubbe) | | void add_efun2(char *name,
c_fun fun,
char *type,
INT16 flags,
optimize_fun optimize,
docode_fun docode);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | void add_efun(char *name, c_fun fun, char *type, INT16 flags);
void push_all_efuns_on_stack();
void cleanup_added_efuns();
#endif
|