handling. Networking module names are now stored as string constants instead of
hardcoded values. Available modules are detected at Bochs startup and stored in
a string array before initializing options. In the plugins case available
modules are read from the plugins list. If plugins are off, the eth_locator_c
registry is used. Related changes in all parts of Bochs that need the
networking stuff.
TODO #1: Sound drivers could be handled in a similar way.
- bx_shadow_bool_c: removed unused bitnum feature and changed data type.
- Changed return type of memory handlers to bool.
- Modified virtual timer, PIC and PIT code.
* extract logfunctions class definition to separate include logio.h to simplify the bochs.h reading
next step: try to minimize amount of includes in bochs.h as everyone in Bochs includes it
for example it includes pc_system.h which is not necessary required to be included in all CPU source files
- CPU code refactor, remove uses of bx_bool datatype and use C++ classic bool instead.
This enable better compiler optimizations and reduce binary size
- Changing VGA extension to "voodoo" did not work in the config interface.
Moved plugin loading to the string parameter handler and added plugin
unloading case.
- Unloading "voodoo" VGA plugin resets pluginVgaDevice to stubVga.
- pluginUnregisterDeviceDevmodel() now supports core plugins.
- Some other small plugin related changes.
- Moved wx gui plugin entry point to wx.cc, so we can use the macro
PLUGIN_ENTRY_FOR_GUI_MODULE to be compatible with the other guis.
- Updated gui Makefile dependencies.
- Improved macro definitions for plugin entry points.
- Forward declarations of plugin entry points are only required when plugin
support is off.
- Improved panic message for the case when plugin entry point is not found.
loaded in bochsrc with "plugin_ctrl" or with their own name, the user plugin
option and the special cases for PLUGTYPE_USER are no longer needed. Updated
example patch to make it work with the latest SVN code.
plugin_entry(). The additional boolean argument "init" is used to select the
requested action. The entry points still have unique names for compatibility
with the "non-plugin" compilation. Added macros for setting up these names
(e.g. PLUGIN_ENTRY_FOR_MODULE for device plugins).
- Now that we know about all available plugins at startup, the bx_list_c object
"plugin_ctrl" contains a fixed number of bx_param_bool_c objects representing
the requested status (1 = load). It is verified at simulation startup.
- The config interface creates two text lists (textconfig) or list boxes (win32,
wx) from it to show the remaining available and the loaded plugins. Loading
and unloading is performed immediately and plugins may install / uninstall
options in other menus / dialogs.
- Modified the "non-plugin" code to make the optional plugin control work very
similar in this mode.
- bx_load_plugin() now returns the status of the operation.
- Plugin load failures are now correctly handled by the plugin code (unloading
if necessary, then panic).