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.
\*/
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | #include "global.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #include "module.h"
|
bb55f8 | 1997-03-16 | Fredrik Hübinette (Hubbe) | | #include "pike_macros.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #include "error.h"
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | #include "builtin_functions.h"
#include "main.h"
#include "svalue.h"
#include "interpret.h"
#include "stralloc.h"
#include "object.h"
#include "mapping.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | #include "modules/modlist_headers.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | typedef void (*modfun)(void);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | struct static_module
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | {
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | char *name;
modfun init;
modfun exit;
};
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | static struct static_module module_list[] = {
|
156fd5 | 1997-10-27 | Fredrik Hübinette (Hubbe) | | { "Builtin", low_init_main, low_exit_main }
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | #include "modules/modlist.h"
|
156fd5 | 1997-10-27 | Fredrik Hübinette (Hubbe) | | ,{ "Builtin2", init_main, exit_main }
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | };
void init_modules(void)
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | {
unsigned int e;
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | struct mapping *m = allocate_mapping(10);
push_text("_static_modules");
|
61e9a0 | 1998-01-25 | Fredrik Hübinette (Hubbe) | | ref_push_mapping(m);
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | f_add_constant(2);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | for(e=0;e<NELEM(module_list);e++)
{
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | struct program *p;
struct pike_string *s;
start_new_program();
module_list[e].init();
p=end_program();
push_text(module_list[e].name);
|
1a8e14 | 1997-02-27 | Fredrik Hübinette (Hubbe) | | push_program(p);
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | mapping_insert(m, sp-2, sp-1);
pop_n_elems(2);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | }
|
61e9a0 | 1998-01-25 | Fredrik Hübinette (Hubbe) | | free_mapping(m);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | }
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | void exit_modules(void)
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | {
int e;
|
db3e13 | 1997-02-06 | Fredrik Hübinette (Hubbe) | | for(e=NELEM(module_list)-1;e>=0;e--)
module_list[e].exit();
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | }
|