genesis/
genesis/bin/
genesis/doc/
genesis/etc/
genesis/microsoft/coldcc/
genesis/microsoft/crypt/
genesis/microsoft/data/
genesis/microsoft/db/
genesis/microsoft/genesis/
genesis/microsoft/io/
genesis/microsoft/misc/
genesis/microsoft/mod/
genesis/microsoft/ndbm/
genesis/microsoft/ops/
genesis/microsoft/pcode/
genesis/test/
/*
// Full copyright information is available in the file ../doc/CREDITS
*/

#ifndef cdc_native_h
#define cdc_native_h

#include <stdio.h>
#include "file.h"
#include "execute.h"

/* this structure is used only to initialize methods */
/* we pull the name symbol and put it in the actual method definition */
/* we need num_args defined here so we can drop it into the method def */
typedef struct native_s {
    char     * bindobj;
    char     * name;
    Int       (*func)(Int stack_start, Int arg_start);
} native_t;

 /* ANSI doesn't want us to us NULL pointers to functions */
typedef struct module_s {
    Bool   init;
    void (*init_func)(Int argc, char ** argv);
    Bool   uninit;
    void (*uninit_func)(void);
} module_t;

Int init_modules(Int argc, char ** argv);
Int uninit_modules(void);
Int add_native_methods(void);

#include "macros.h"

#endif