00001 00002 /* functions.h - declarations for functions & function processing */ 00003 00004 /* $Id: functions.h,v 1.3 2005/06/23 02:59:58 murrayma Exp $ */ 00005 00006 #include "copyright.h" 00007 00008 #ifndef __FUNCTIONS_H 00009 #define __FUNCTIONS_H 00010 00011 typedef struct fun { 00012 const char *name; /* function name */ 00013 void (*fun) (); /* handler */ 00014 int nargs; /* Number of args needed or expected */ 00015 int flags; /* Function flags */ 00016 int perms; /* Access to function */ 00017 } FUN; 00018 00019 typedef struct ufun { 00020 const char *name; /* function name */ 00021 dbref obj; /* Object ID */ 00022 int atr; /* Attribute ID */ 00023 int flags; /* Function flags */ 00024 int perms; /* Access to function */ 00025 struct ufun *next; /* Next ufun in chain */ 00026 } UFUN; 00027 00028 #define FN_VARARGS 1 /* Function allows a variable # of args */ 00029 #define FN_NO_EVAL 2 /* Don't evaluate args to function */ 00030 #define FN_PRIV 4 /* Perform user-def function as holding obj */ 00031 #define FN_PRES 8 /* Preseve r-regs before user-def functions */ 00032 00033 extern void init_functab(void); 00034 extern void list_functable(dbref); 00035 extern dbref match_thing(dbref, char *); 00036 00037 #endif