Commit Graph

111 Commits

Author SHA1 Message Date
Volker Ruppert
f9124b8c99 - plugin 'harddrv' now depends on the ATA configuration (don't load it if no
channel is enabled)
- pluginIOAPIC points to the stub if plugin is not loaded
2009-02-23 18:38:25 +00:00
Volker Ruppert
790eec83ca - converted I/O APIC to a device plugin
- updated dependencies
2009-02-22 10:44:50 +00:00
Volker Ruppert
e5eac65b59 - removed wrong character from FSF address (converted invisible and useless
2-byte character)
- updated FSF address in some files
- added license to some files
2009-02-08 09:05:52 +00:00
Stanislav Shwartsman
dd03e043a3 Updated FSF address 2009-02-07 21:05:31 +00:00
Volker Ruppert
0b782cd749 - prepared USB OHCI support in build system and common devices code (OHCI patch
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
2009-01-19 09:48:12 +00:00
Volker Ruppert
34d767f938 - moved mouse buffer size definition to iodev.h
- reduce dependencies (TODO: update Makefile.in)
- removed unused defines from iodev.h
- updated FSF address
2009-01-16 11:53:38 +00:00
Volker Ruppert
ae54b59cd0 - preparing "plugin-disable" feature for optional plugins not controlled by a
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
2009-01-15 17:34:20 +00:00
Volker Ruppert
0ec93b8586 - moved common mouse handling code to devices.cc
- moved mouse capture control code back to config.cc
- related changes in the USB keyboard and mouse interface
2009-01-13 19:01:19 +00:00
Volker Ruppert
1e578b3b28 - converted device PIT 82C54 to a plugin (internal / virtual timers remain in
Bochs core)
- removed obsolete and unused PIT methods
- updated FSF address
2009-01-11 18:46:01 +00:00
Volker Ruppert
8aa8b1a3db - rewrite for user plugin support with user-defined options
* 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()
2009-01-04 21:46:20 +00:00
Volker Ruppert
00d404809b - reduce some more dependencies
- iodev.h already includes bochs.h
2009-01-03 08:55:00 +00:00
Volker Ruppert
815dff019e - converted iodebug device to a plugin 2008-12-30 18:11:13 +00:00
Volker Ruppert
77ee99a7cd - reduce some more dependencies (rarely used options, no Makefile.in update
necessary)
2008-12-30 15:33:38 +00:00
Volker Ruppert
618b8fe9b3 - reduce some more dependencies
- compilation fix in usb_msd code
2008-12-30 09:17:09 +00:00
Stanislav Shwartsman
d56c3a18aa reduce include dependencies in iodev.h
Makefile.in in iodev folder have to be regerated !
2008-12-29 20:16:08 +00:00
Volker Ruppert
01b0ed241b - fixed endianness problems at PCI DMA block transfers using getHostMemAddr()
and memcpy()
- changes in getHostMemAddr() for the usage outside of the cpu
2008-12-13 11:03:36 +00:00
Volker Ruppert
7c8c40483e - removed some optional devices from the bx_devices_c object
- biosdev is now an optional plugin
2008-07-26 08:02:27 +00:00
Stanislav Shwartsman
77ce9d617e Small bug fixed 2008-06-11 21:10:02 +00:00
Stanislav Shwartsman
8ea32b4279 Simplify physical memory access by devices 2008-06-11 20:59:50 +00:00
Stanislav Shwartsman
fda4d38959 32-bit systems have a problem to allocate large amount of physical memory for Bochs simulation which makes simulation with 4G address space virtually impossible. But in most of the cases when 4G physical address space defined - it is not touched by default on every run so it is possible to allocate only really accessed blocks. This commit made all necessary preparations for it. 2008-04-17 14:39:33 +00:00
Stanislav Shwartsman
a459a64f3e whispace, tab2space, indent, dos2unix and other cleanups 2008-02-15 22:05:43 +00:00
Stanislav Shwartsman
ae35b0276e white space cleanups and coding style changes 2008-01-26 22:24:03 +00:00
Stanislav Shwartsman
071c5c1a26 A lot of changes but everything is really trivial.
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
2007-09-28 19:52:08 +00:00
Volker Ruppert
5563a18956 - ported ACPI enable/disable support from latest Qemu sources 2007-08-04 08:57:42 +00:00
Stanislav Shwartsman
b6c8275cfd remove old PIT model and always use Greg Alexander's new one 2007-04-08 21:57:06 +00:00
Stanislav Shwartsman
2f9e1bee68 fixed code duplication and comments 2007-02-03 17:56:35 +00:00
Volker Ruppert
815f2a026d - fixed compilation with ACPI disabled 2006-10-02 10:14:07 +00:00
Volker Ruppert
5d1e848a6a - SMI generation implemented (needs to be checked for SMP) 2006-10-01 19:51:49 +00:00
Volker Ruppert
2cdd6596f1 - implementation of the PIIX4 ACPI controller started. The code is not yet
enabled and the i/o handler only generate info messages.
2006-09-24 16:58:13 +00:00
Volker Ruppert
93534890b0 - the USB mouse connection status no longer depends on the mouse capture status.
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.
2006-09-23 12:59:57 +00:00
Volker Ruppert
72283f6760 - delete i/o handlers before unloading plugins
- memory for i/o handler name is now dynamicly allocated (strdup's in harddrv
  code removed)
2006-09-20 18:24:17 +00:00
Volker Ruppert
647b0e3e6c - removed exit() method from the devmodel object, since all that stuff can be
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
2006-09-16 14:47:40 +00:00
Volker Ruppert
38caf3bf19 - allocate memory for the IRQ handler name in register_irq() and free it in
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.
2006-09-13 18:51:25 +00:00
Volker Ruppert
190b9391cf - delete the device object in the plugin_fini() function of each plugin device
(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
2006-09-10 17:18:44 +00:00
Volker Ruppert
c07197758b - plugin unload mechanism implemented in the plugin and devices code
- 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
2006-09-10 09:13:47 +00:00
Volker Ruppert
5dd0d64b11 - several changes for restart support in wx (not yet complete)
* 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
2006-09-07 18:50:51 +00:00
Stanislav Shwartsman
8b0df8e99b Merge SAVE_RESTORE branch to CVS 2006-05-27 15:54:49 +00:00
Volker Ruppert
36498746c1 - some more work for the save/restore feature in the plugins and devices code
* 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)
2006-04-15 17:03:59 +00:00
Stanislav Shwartsman
4c3f229ff1 This should fix problem with non-PCI ne2k device 2006-03-08 19:28:37 +00:00
Stanislav Shwartsman
77653bcf3d More indent and C++ style changes (explicitly write virtual before virtual desctructors).
The PCI read/write handlers written in new C++ - more flexible and easy-to-understand
2006-03-07 21:11:20 +00:00
Stanislav Shwartsman
242c2fa51c Style and indent changes 2006-03-07 18:16:41 +00:00
Stanislav Shwartsman
c0aeb1b073 Substitute NULL to BX_CPU_C parameter instead of BX_CPU(0) for memory ops originated by devices 2006-03-06 19:23:13 +00:00
Volker Ruppert
3e9ed43413 - code cleanup in the devices code 2006-01-17 20:16:59 +00:00
Volker Ruppert
83a799bca8 - don't include the device headers in networking/sound lowlevel code, virtual
and slowdown timers, hdimage and vmware3 code
- updated makefile dependencies
2005-12-10 18:37:35 +00:00
Volker Ruppert
ef51fd3595 - if cmos image is enabled, save it on exit 2005-12-04 17:43:09 +00:00
Volker Ruppert
531c75c002 - keyboard/mouse runtime parameter handlers moved into the device code
- minor code cleanups
2005-12-02 17:27:19 +00:00
Volker Ruppert
cef74b528a - moved runtime handler for 'vga_update_interval' into the device (TODO: this could
be done with some parameters, e.g. mouse, keyboard, usb)
2005-11-27 17:49:59 +00:00
Volker Ruppert
fa996ca9de - don't register i/o and memory address ranges during PCI probe
- PCI devices now report real base address changes only
- writes to the high word of i/o base addresses now permitted (for PCI probe)
2005-11-15 17:19:28 +00:00
Volker Ruppert
13bfb46cdc - IDE busmaster DMA for cdroms (packet DMA) prepared, but not enabled yet 2005-10-30 14:14:03 +00:00
Volker Ruppert
feb7f84dd3 - the BM-DMA interrupt flag must be set when the ide controller generates an interrupt
- BM-DMA base address set to 0xc000 at reset (shoud be done by the PCI BIOS)
- BM-DMA status register write messages changed to BX_DEBUG
- fixed an MSVC warning in the harddrive code
2005-09-05 18:32:23 +00:00