1 #ifndef LPC_FUNCTIONLIST_H
2 #define LPC_FUNCTIONLIST_H
3 
4 #ifndef __DRIVER_SOURCE__
5 #include "lpctypes.h"
6 
7 #define NAME_INHERITED      0x80000000 /* Defined by inheritance         */
8 #define TYPE_MOD_STATIC     0x40000000 /* Static function or variable    */
9 #define TYPE_MOD_NO_MASK    0x20000000 /* The nomask => not redefineable */
10 #define TYPE_MOD_PRIVATE    0x10000000 /* Can't be inherited             */
11 #define TYPE_MOD_PUBLIC     0x08000000 /* Force inherit through private  */
12 #define TYPE_MOD_VARARGS    0x04000000 /* Used for type checking         */
13 #define TYPE_MOD_VIRTUAL    0x02000000  /* can be re- and cross- defined */
14 #define TYPE_MOD_PROTECTED  0x01000000 /* cannot be called externally    */
15 #define TYPE_MOD_XVARARGS   0x00800000  /* accepts optional arguments    */
16 #define TYPE_MOD_NOSAVE     TYPE_MOD_STATIC  /* vars: can't be saved     */
17   /* Internally TYPE_MOD_NOSAVE is 0x00400000, but that never leaves
18    * the compiler.
19    */
20 #define NAME_CROSS_DEFINED  0x00080000 /* function defined from other program */
21 #if defined(__LPC_STRUCTS__) || defined(USE_STRUCTS)
22 #define NAME_HIDDEN         0x00020000 /* Not visible for inheritance    */
23 #define NAME_PROTOTYPE      0x00010000 /* Defined by a prototype only    */
24 #define NAME_UNDEFINED      0x00008000 /* Not defined yet                */
25 #define NAME_TYPES_LOST     0x00004000 /* inherited, no save_types       */
26 #else /* !USE_STRUCTS */
27 #define NAME_HIDDEN         0x00000800 /* Not visible for inheritance    */
28 #define NAME_PROTOTYPE      0x00000400 /* Defined by a prototype only    */
29 #define NAME_UNDEFINED      0x00000200 /* Not defined yet                */
30 #define NAME_TYPES_LOST     0x00000100 /* inherited, no save_types       */
31 #endif /* USE_STRUCTS */
32 
33 #endif /* !__DRIVER_SOURCE__ */
34 
35 
36 /* Return value flag types for functionlist() and variable_list() */
37 
38 #define RETURN_FUNCTION_NAME	0x01
39 #define RETURN_FUNCTION_FLAGS	0x02
40 #define RETURN_FUNCTION_TYPE	0x04
41 
42 
43 /* Additional return value flag types for functionlist() */
44 
45 #define RETURN_FUNCTION_NUMARG	0x08
46 #define RETURN_FUNCTION_ARGTYPE 0x10 /* not implemented */
47 
48 
49 /* Additional return value flag types for variable_list() */
50 
51 #define RETURN_VARIABLE_VALUE	0x08
52 
53 
54 /* Masks of the flag unions allowed for various efuns: */
55 #define RETURN_FUNCTION_MASK    0x0f  /* functionlist() */
56 #define RETURN_VARIABLE_MASK    0x0f  /* variable_list() */
57 
58 /* Return value flag types for function_exists() */
59 
60 #define FEXISTS_PROGNAME  (0)
61 #define FEXISTS_FILENAME  (1)
62 #define FEXISTS_LINENO    (2)
63 #define FEXISTS_NUMARG    (3)
64 #define FEXISTS_TYPE      (4)
65 #define FEXISTS_FLAGS     (5)
66 
67 #define FEXISTS_ALL       (3)
68 
69 #endif /* LPC_FUNCTIONLIST_H */
70