keyboard and usb_hid code to use them
- removed keyboard handling from the USB host controller code
- removed no longer needed USB stubs from the devices code
- converted removable mouse variables to a structure
by Ben Lunt will be tested and merged soon)
- renamed specific pciusb stuff to 'usb_uhci' (files, objects)
- minor USB-related changes
- TODO: changes in siminterface and bochsrc options
bochsrc option (e.g. biosdev, speaker, gameport)
* the "unmapped device" is now an optional plugin, the builtin default handlers
no longer cause panics
* speaker stub calls the related gui methods for beep on/off
* load all optional plugins before starting init of core plugins
* initialize plugin system before parsing bochsrc and command line
* pass previous value to bx_param_string_c handler
* load / unload plugin in bx_param_string_handler()
* handle user plugins after optional ones in plugin device init, reset and
save/restore functions
* added new siminterface method unregister_user_option()
* removed first version of config option handling for user plugins
* added new parameter subtree for user-defined options
* added new bx_list_c method remove()
* removed unused bx_devmodel_c method init_mem()
Make save/restore default feature, the configure option for save/restore removed from configure script and save/restore made available forever. All code now assume it is exists. Bochs save/restore tree previosly called "save_restore" renamed to "bochs" tree and it will be havily used everywhere, starting from save/restore and ending by various bochs debugger functions. I am going to rework debugger code to get rid of debug CPU access functions and use this "bochs" param tree instead
The connection status is now only controlled by the USB port options (TODO:
device change support at runtime)
- a connected USB mouse now has the priority when sending mouse data from the
gui to the emulated mouse device.
done by the object destructor (changes in cmos, hard drive and keyboard)
- bx_unload_plugins() now deletes the devmodel object in non-plugin mode
- CMOS device now prints the time on exit in human-readable format
unregister_irq(). This is required since there are some devices that don't
use a string constant for the handler name.
- replaced true / false by portable 0 / 1 values.
(TODO: find a way to call plugin_fini() for non-core devices if plugins are
disabled)
- set the device pointers back to stubs after unloading plugins
- added debug message "Exit" in all device plugin destructors
- added exit() method to the devmodel object for devices that need to do special
cleanups on exit. Device plugins should call this method from their plugin_fini()
function. If Bochs is compiled without plugin support, for non-core plugins
the exit() method is called directly from bx_unload_plugins().
- exit() method implemented in the keyboard device
- wx "Show Keyboard" feature now only appear when the wxdebug keyboard subtree
is not empty
- cpu cleanup must be done before the devices cleanup
- moved PCI chipset dump call to the devices exit method
* don't initialize cpu specific parameters for the wx debugger if they already
exist
* separate siminterface method init_save_restore() added
* old wx specific handling in quit_sim() removed
* new bx_list_c method clear() deletes all parameters from the list
* moved devices cleanup code from the pc_system to a new devices method exit()
* pc_system init code now sets ticksTotal to 0
* register_state() will be called after init() and registers the device members
required for save/restore
* before_save_state() can do some work before the device state is saved by the
siminterface
* after_restore_state() can do some work after the device state has been
restored (updating dependant stuff)