e576bb2002-10-11Martin Nilsson /* || 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.
762f1f2006-03-11Henrik Grubbström (Grubba) || $Id: builtin_functions.h,v 1.33 2006/03/11 17:21:34 grubba Exp $
e576bb2002-10-11Martin Nilsson */
24ddc71998-03-28Henrik Grubbström (Grubba) 
5267b71995-08-09Fredrik Hübinette (Hubbe) #ifndef BUILTIN_EFUNS_H #define BUILTIN_EFUNS_H
d6896c2000-12-16Marcus Comstedt #define TYPEP(ID,NAME,TYPE) PMOD_EXPORT void ID(INT32 args);
5267b71995-08-09Fredrik Hübinette (Hubbe) 
3beb891996-06-21Fredrik Hübinette (Hubbe) #include "callback.h"
db628a2004-09-10Henrik Grubbström (Grubba) #include "block_alloc_h.h"
5267b71995-08-09Fredrik Hübinette (Hubbe) 
9da7f42001-06-05Martin Stjernholm /* Weak flags for arrays, multisets and mappings. 1 is avoided for * compatibility reasons. */ #define PIKE_WEAK_INDICES 2 #define PIKE_WEAK_VALUES 4 #define PIKE_WEAK_BOTH 6
5267b71995-08-09Fredrik Hübinette (Hubbe) /* Prototypes begin here */
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void debug_f_aggregate(INT32 args);
c1073a1999-05-11Mirar (Pontus Hagland) #ifdef DEBUG_MALLOC
089b082000-04-30Henrik Grubbström (Grubba) #define f_aggregate(X) do { debug_f_aggregate(X); debug_malloc_touch(Pike_sp[-1].u.refs); } while (0)
c1073a1999-05-11Mirar (Pontus Hagland) #else
089b082000-04-30Henrik Grubbström (Grubba) #define f_aggregate(X) debug_f_aggregate(X)
c1073a1999-05-11Mirar (Pontus Hagland) #endif
762f1f2006-03-11Henrik Grubbström (Grubba) struct replace_many_tupel { int prefix; int is_prefix; struct pike_string *ind; struct pike_string *val; }; struct replace_many_context { struct replace_many_tupel *v; struct pike_string *empty_repl; int set_start[256]; int set_end[256]; int other_start; int num; int flags; };
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_equal(INT32 args); PMOD_EXPORT void f_hash(INT32 args); PMOD_EXPORT void f_copy_value(INT32 args); PMOD_EXPORT void f_lower_case(INT32 args); PMOD_EXPORT void f_upper_case(INT32 args);
6017c02003-06-12Martin Stjernholm PMOD_EXPORT void f_random_string (INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_random_seed(INT32 args); PMOD_EXPORT void f_query_num_arg(INT32 args); PMOD_EXPORT void f_search(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f_has_prefix(INT32 args); PMOD_EXPORT void f_has_suffix(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_has_index(INT32 args); PMOD_EXPORT void f_has_value(INT32 args); PMOD_EXPORT void f_add_constant(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f_combine_path_nt(INT32 args); PMOD_EXPORT void f_combine_path_unix(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_zero_type(INT32 args); PMOD_EXPORT void f_string_to_unicode(INT32 args); PMOD_EXPORT void f_unicode_to_string(INT32 args); PMOD_EXPORT void f_string_to_utf8(INT32 args); PMOD_EXPORT void f_utf8_to_string(INT32 args); PMOD_EXPORT void f_all_constants(INT32 args); PMOD_EXPORT void f_allocate(INT32 args);
77cc592003-11-14Martin Stjernholm void f_this_object(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_throw(INT32 args); PMOD_EXPORT void f_exit(INT32 args);
77cc592003-11-14Martin Stjernholm void f__exit(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_time(INT32 args); PMOD_EXPORT void f_crypt(INT32 args); PMOD_EXPORT void f_destruct(INT32 args); PMOD_EXPORT void f_indices(INT32 args); PMOD_EXPORT void f_values(INT32 args); PMOD_EXPORT void f_next_object(INT32 args); PMOD_EXPORT void f_object_program(INT32 args);
762f1f2006-03-11Henrik Grubbström (Grubba) int find_longest_prefix(char *str, ptrdiff_t len, int size_shift, struct replace_many_tupel *v, INT32 a, INT32 b); void free_replace_many_context(struct replace_many_context *ctx); void compile_replace_many(struct replace_many_context *ctx, struct array *from, struct array *to, int reference_strings); struct pike_string *execute_replace_many(struct replace_many_context *ctx, struct pike_string *str);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_reverse(INT32 args); PMOD_EXPORT void f_replace(INT32 args); PMOD_EXPORT void f_compile(INT32 args); PMOD_EXPORT void f_objectp(INT32 args); PMOD_EXPORT void f_functionp(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f_callablep(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_sleep(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f_delay(INT32 args); void f_gc(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_programp(INT32 args);
0542ef1999-11-17Fredrik Hübinette (Hubbe) TYPEP(f_intp, "intpp", PIKE_T_INT) TYPEP(f_mappingp, "mappingp", PIKE_T_MAPPING) TYPEP(f_arrayp, "arrayp", PIKE_T_ARRAY) TYPEP(f_multisetp, "multisetp", PIKE_T_MULTISET) TYPEP(f_stringp, "stringp", PIKE_T_STRING) TYPEP(f_floatp, "floatp", PIKE_T_FLOAT)
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_sort(INT32 args); PMOD_EXPORT void f_rows(INT32 args); PMOD_EXPORT void f__verify_internals(INT32 args); PMOD_EXPORT void f__debug(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f__optimizer_debug(INT32 args); PMOD_EXPORT void f__assembler_debug(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f__compiler_trace(INT32 args); PMOD_EXPORT void f_gmtime(INT32 args); PMOD_EXPORT void f_localtime(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f_mktime (INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_glob(INT32 args);
8d4fd22001-04-30Martin Stjernholm PMOD_EXPORT void f_permute(INT32 args);
c72a4e1998-12-15Fredrik Hübinette (Hubbe) struct diff_magic_link; struct diff_magic_link_pool; struct diff_magic_link_head;
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_diff(INT32 args); PMOD_EXPORT void f_diff_compare_table(INT32 args); PMOD_EXPORT void f_diff_longest_sequence(INT32 args); PMOD_EXPORT void f_diff_dyn_longest_sequence(INT32 args);
c3c7031996-12-04Fredrik Hübinette (Hubbe) struct callback *add_memory_usage_callback(callback_func call,
b1f4eb1998-01-13Fredrik Hübinette (Hubbe)  void *arg, callback_func free_func);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f__memory_usage(INT32 args); PMOD_EXPORT void f__next(INT32 args); PMOD_EXPORT void f__prev(INT32 args); PMOD_EXPORT void f__refs(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f__leak(INT32 args); PMOD_EXPORT void f__typeof(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_replace_master(INT32 args); PMOD_EXPORT void f_master(INT32 args); PMOD_EXPORT void f_gethrvtime(INT32 args); PMOD_EXPORT void f_gethrtime(INT32 args); PMOD_EXPORT void f_object_variablep(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f_uniq_array(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f_splice(INT32 args); PMOD_EXPORT void f_everynth(INT32 args); PMOD_EXPORT void f_transpose(INT32 args); PMOD_EXPORT void f__reset_dmalloc(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f__dmalloc_set_name(INT32 args); PMOD_EXPORT void f__list_open_fds(INT32 args);
1f21332000-07-28Fredrik Hübinette (Hubbe) PMOD_EXPORT void f__locate_references(INT32 args);
77cc592003-11-14Martin Stjernholm PMOD_EXPORT void f__describe(INT32 args); PMOD_EXPORT void f__gc_set_watch(INT32 args); PMOD_EXPORT void f__dump_backlog(INT32 args); PMOD_EXPORT void f_map(INT32 args); PMOD_EXPORT void f_filter(INT32 args); PMOD_EXPORT void f_inherit_list(INT32 args); PMOD_EXPORT void f_function_defined(INT32 args);
be478c1997-08-30Henrik Grubbström (Grubba) void init_builtin_efuns(void);
6017c02003-06-12Martin Stjernholm 
f139182003-09-05Martin Stjernholm /* From iterators.cmod. */ PMOD_EXPORT void f_get_iterator(INT32 args); int foreach_iterate(struct object *o, int do_step);
6017c02003-06-12Martin Stjernholm /* From builtin.cmod. */
77cc592003-11-14Martin Stjernholm void f_cq__describe_program(INT32 args); void f_basetype(INT32 args); void f_int2char(INT32 args); void f_int2hex(INT32 args); void f_string2hex(INT32 args); void f_hex2string(INT32 args); void f_column(INT32 args); void f_mkmultiset(INT32 args); void f_trace(INT32 args); void f_gc_parameters(INT32 args); void f_ctime(INT32 args); void f_mkmapping(INT32 args); void f_string_count(INT32 args); void f_string_trim_whites(INT32 args); void f_string_trim_all_whites(INT32 args); void f_program_implements(INT32 args); void f_program_inherits(INT32 args); void f_program_defined(INT32 args); void f_string_width(INT32 args); void f_m_delete(INT32 args); void f_get_weak_flag(INT32 args); void f_function_name(INT32 args); void f_function_object(INT32 args); void f_function_program(INT32 args); void f_random(INT32 args);
6017c02003-06-12Martin Stjernholm PMOD_EXPORT void f_backtrace(INT32 args);
db628a2004-09-10Henrik Grubbström (Grubba)  struct list_node { /* NOTE: Unusual order of elements due to use of sentinels. */ struct list_node *next; INT32 refs; struct list_node *prev; struct svalue val; }; BLOCK_ALLOC_FILL_PAGES(list_node, 4); PMOD_EXPORT void free_list_node(struct list_node *node); PMOD_EXPORT void unlink_list_node(struct list_node *n); PMOD_EXPORT void prepend_list_node(struct list_node *node,
6699482004-09-28Henrik Grubbström (Grubba)  struct list_node *new_node);
db628a2004-09-10Henrik Grubbström (Grubba) PMOD_EXPORT void append_list_node(struct list_node *node,
6699482004-09-28Henrik Grubbström (Grubba)  struct list_node *new_node);
f52b4a2001-12-14Martin Nilsson void init_builtin(void); void exit_builtin(void);
6017c02003-06-12Martin Stjernholm 
f3ff8d2003-07-22Martin Stjernholm /* From modules/files */ void f_werror (INT32 args);
5267b71995-08-09Fredrik Hübinette (Hubbe) /* Prototypes end here */ #endif