6a42228075
support compiles and links fine and the main object files for the plugin DLLs are created. Since the gui and iodev makefiles are not ready yet, the link stage must be done manually. Support for the search path defined in LTDL_LIBRARY_PATH should be added when the DLL plugins compile and work.
60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
/////////////////////////////////////////////////////////////////////////
|
|
// $Id$
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// extplugin.h
|
|
//
|
|
// This header file defines the types necessary to make a Bochs plugin,
|
|
// but without mentioning all the details of Bochs internals (bochs.h).
|
|
// It is included by the configuration interfaces and possibly other
|
|
// things which are intentionally isolated from other parts of the program.
|
|
//
|
|
// The plugin_t struct comes from the plugin.h file from plex86.
|
|
// Plex86 is Copyright (C) 1999-2000 The plex86 developers team
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __EXTPLUGIN_H
|
|
#define __EXTPLUGIN_H
|
|
|
|
#if BX_PLUGINS
|
|
#if BX_HAVE_LTDL
|
|
#include <ltdl.h>
|
|
#elif !defined(_MSC_VER)
|
|
#include "ltdl.h"
|
|
#endif
|
|
#endif
|
|
|
|
enum plugintype_t {
|
|
PLUGTYPE_NULL=100,
|
|
PLUGTYPE_CORE,
|
|
PLUGTYPE_OPTIONAL,
|
|
PLUGTYPE_USER
|
|
};
|
|
|
|
#define MAX_ARGC 10
|
|
|
|
typedef struct _plugin_t
|
|
{
|
|
plugintype_t type;
|
|
int initialized;
|
|
#if BX_PLUGINS
|
|
#if defined(_MSC_VER)
|
|
HINSTANCE handle;
|
|
#else
|
|
lt_dlhandle handle;
|
|
#endif
|
|
#endif
|
|
int argc;
|
|
char *name, *args, *argv[MAX_ARGC];
|
|
int (*plugin_init)(struct _plugin_t *plugin, plugintype_t type, int argc, char *argv[]);
|
|
void (*plugin_fini)(void);
|
|
|
|
struct _plugin_t *next;
|
|
} plugin_t;
|
|
|
|
|
|
|
|
#endif /* __EXTPLUGIN_H */
|
|
|