/usr/include/pike8.0/pike/constants.h is in pike8.0-dev 8.0.164-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | /*
|| This file is part of Pike. For copyright information see COPYRIGHT.
|| Pike is distributed under GPL, LGPL and MPL. See the file COPYING
|| for more information.
*/
#ifndef ADD_EFUN_H
#define ADD_EFUN_H
#include "svalue.h"
#include "hashtable.h"
#include "las.h" /* For OPT_SIDE_EFFECT etc. */
typedef int (*docode_fun)(node *n);
typedef node *(*optimize_fun)(node *n);
#define CALLABLE_DYNAMIC 1
struct callable
{
PIKE_MEMORY_OBJECT_MEMBERS;
c_fun function;
struct pike_type *type;
struct pike_string *name;
struct program *prog;
INT16 flags; /* OPT_* */
INT16 internal_flags;
#ifdef PIKE_DEBUG
INT8 may_return_void;
long runs;
struct callable *prev;
#endif
optimize_fun optimize;
docode_fun docode;
struct callable *next;
};
#ifdef PIKE_DEBUG
/* We have a double-linked list in debug mode for identification
* purposes. */
extern struct callable *first_callable;
#endif
/* Prototypes begin here */
PMOD_EXPORT struct mapping *get_builtin_constants(void);
void low_add_efun(struct pike_string *name, struct svalue *fun);
void low_add_constant(const char *name, struct svalue *fun);
void add_pike_string_constant(const char *name, const char *str, int len);
PMOD_EXPORT void add_global_program(const char *name, struct program *p);
void really_free_callable(struct callable * c);
void count_memory_in_callables(size_t * num, size_t * size);
void free_all_callable_blocks(void);
PMOD_EXPORT struct callable *low_make_callable(c_fun fun,
struct pike_string *name,
struct pike_type *type,
int flags,
optimize_fun optimize,
docode_fun docode);
PMOD_EXPORT struct callable *make_callable(c_fun fun,
const char *name,
const char *type,
int flags,
optimize_fun optimize,
docode_fun docode);
PMOD_EXPORT void add_efun2(const char *name,
c_fun fun,
const char *type,
int flags,
optimize_fun optimize,
docode_fun docode);
PMOD_EXPORT void add_efun(const char *name, c_fun fun, const char *type, int flags);
PMOD_EXPORT void quick_add_efun(const char *name, ptrdiff_t name_length,
c_fun fun,
const char *type, ptrdiff_t type_length,
int flags,
optimize_fun optimize,
docode_fun docode);
PMOD_EXPORT void visit_callable (struct callable *c, int action, void *extra);
void init_builtin_constants(void);
void exit_builtin_constants(void);
/* Prototypes end here */
#define visit_callable_ref(C, REF_TYPE, EXTRA) \
visit_ref (pass_callable (C), (REF_TYPE), \
(visit_thing_fn *) &visit_callable, (EXTRA))
#include "pike_macros.h"
#define ADD_EFUN2(NAME,FUN,TYPE,OPT_FLAGS,OPTIMIZE,DOCODE) \
quick_add_efun(NAME,CONSTANT_STRLEN(NAME),FUN, \
TYPE,CONSTANT_STRLEN(TYPE),OPT_FLAGS,OPTIMIZE,DOCODE)
#define ADD_EFUN(NAME,FUN,TYPE,OPT_FLAGS) \
ADD_EFUN2(NAME,FUN,TYPE,OPT_FLAGS,0,0)
#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)
#endif
|