Commit Graph

63 Commits

Author SHA1 Message Date
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
ae35b0276e white space cleanups and coding style changes 2008-01-26 22:24:03 +00:00
Stanislav Shwartsman
72d72c92d4 Fixed warnings of VC2008 2007-12-30 18:02:22 +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
70d7a37c55 - prepared after_restore_state() feature for USB devices
- init_device(): removed local variable 'connected'
2007-04-15 09:39:22 +00:00
Stanislav Shwartsman
9d907b5f65 Try to specify everywhere the list size in bx_list_c constructor 2007-04-03 22:38:49 +00:00
Volker Ruppert
abd7cbda87 - implemented specific save/restore method for USB HID devices
- removed USB device buffer from save/restore list (contains temporary data only)
2007-04-01 11:15:48 +00:00
Volker Ruppert
9e6a7231da - basic save/restore support for USB devices (TODO: device-specific state)
- user doc: fixed USB description
2007-03-31 09:24:04 +00:00
Volker Ruppert
b1bf1a8bf5 - documentation update after USB devices rewrite
- removed obsolete structures and members from the USB code
- removed mouse type 'usb' (USB mouse and tablet override selected mouse type
  when connected)
- user doc: mention vmware 4 disk image support
2007-03-27 17:47:15 +00:00
Volker Ruppert
324250ccb4 - code USB device 'keypad' rewritten and old-style USB device handling removed
- makefile dependencies regerated after USB device code rewrite
- improved error reporting in the new USB device code
2007-03-25 17:37:59 +00:00
Volker Ruppert
58ba0172bb - USB tablet emulation ported from the Qemu project (TODO: the Bochs gui should
generate absolute x/y values if tablet connected)
- store device name string in member d.devname
- report unknown/unsupported requests as errors
- usb_msd: removed unnecessary type definition
2007-03-24 11:43:41 +00:00
Volker Ruppert
69e0110c7b - USB HID mouse support ported from Qemu to separate file and C++ object
* removed old-style mouse stuff
  * TODO: implement USB tablet from Qemu and re-implement Bochs USB keypad
- clear out USB hub structures in constructor to avoid segfault
- keyboard: mouse capture flag must affect all mouse types
2007-03-21 18:54:41 +00:00
Volker Ruppert
7956e47de8 - removed USB port option parameter and store device and option in one single
string. This is better for devices that need to know all it's options when
  connecting to the port. Device name and option should be separated with a
  colon. The USB device 'disk' now uses this format ('disk:usbdisk.img).
- the pciusb plugin must be linked with cdrom.o
2007-03-18 17:52:15 +00:00
Volker Ruppert
a70cc33578 - USB MSD support moved to separate files and C++ object
* partial rewrite of the USB device emulation code (TODO: mouse and keypad)
  * configure.in and iodev makefile updates
  * removed old-style data structure for the USB harddisk
  * TODO: save/restore support for removable devices
- PCI USB destructor now resets all runtime parameter handlers
- set log prefix for the SCSI device
- fixed a warning in the SCSI emulation code
2007-03-18 11:17:28 +00:00
Volker Ruppert
e39769a7e8 - SCSI emulation layer moved to separate file and C++ object
(TODO: cdrom support, update workspace files)
- USB mass storage device separation continued
- device qualifier descriptor implemented
2007-03-16 18:23:13 +00:00
Volker Ruppert
55d2446fe4 - USB mass storage device support and SCSI emulation layer ported from Qemu.
USB device type 'disk' replaces the 'flash' stubs and uses the corresponding
  port option as the path to the flat image file. Successfully tested with
  OpenSUSE 10.2.
  TODO list:
    * plugging in 2 devices of the same type not supported yet
    * move all USB devices and SCSI emulation layer to separate files and C++
      objects
    * USB port runtime parameter 'optionX' should be handled in the code of the
      connected USB device
    * tests with several other guest platforms
- destructor deletes device buffer only when it exists
- handling of the USB error interrupt status bit fixed
2007-03-14 18:05:46 +00:00
Volker Ruppert
9a7930a23f - destructor now deletes the device buffer
- attempt to implement the "get max. LUN" command for mass storage devices
- removed unnecessary spaces
2007-03-05 18:09:57 +00:00
Volker Ruppert
0be7d6e5e3 - when clearing the run/stop bit, the "host halted" bit in the status register
must be set
- ignore unused bits on i/o writes
- fixed two warnings
2007-03-01 18:29:36 +00:00
Stanislav Shwartsman
2f9e1bee68 fixed code duplication and comments 2007-02-03 17:56:35 +00:00
Volker Ruppert
bf6d61de5e - experimental USB device change support added (some more work in the emulation
code may be required)
- set mouse/keypad connection status to 0 when removing device
- pciusb code now accepts "none" as the device name for an unused port
2006-09-24 10:10:21 +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
c592b9527c - deactivate device parameter handlers in destructor 2006-09-17 20:39:37 +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
1fdd8e9116 - added comment from Ben Lunt 2006-08-20 09:19:59 +00:00
Stanislav Shwartsman
fee48d74e0 Avoid doing strdup for param name field - most of the strdups elliminated ! 2006-05-29 22:33:38 +00:00
Stanislav Shwartsman
8b0df8e99b Merge SAVE_RESTORE branch to CVS 2006-05-27 15:54:49 +00:00
Volker Ruppert
2e144d5862 - changed some function argument and return types from char * to const char *
(grabbed from patch included in FC5 Bochs package for wxWidgets 2.6.x)
2006-03-13 18:55:53 +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
154702eaca - serial, parallel and usb options rewritten to a parameter tree
- bx_init_options(): local variables cleanup
- hide floppy devtype parameter (floppy media type change support not yet complete)
- wx: menu order changed
- keyboard.cc: removed obsolete FIXME
- proposed parameter tree updated
2006-03-01 17:14:36 +00:00
Volker Ruppert
c47508bdb1 - keyboard and mouse options rewritten to a parameter tree
- siminterface method ask_param() can now handle new-style parameters
- proposed parameter tree updated
2006-02-22 19:18:29 +00:00
Volker Ruppert
e939a43b3d - invalid read/write operations now cause an error instead of a panic
- byte reads from port registers now supported
- report USB revision 1.0
2006-01-11 21:39:34 +00:00
Volker Ruppert
f92a666e70 - minor USB updates from Ben Lunt 2005-11-30 18:34:59 +00:00
Volker Ruppert
c227c822b8 - USB runtime parameter handling prepared in the device code 2005-11-29 20:46:17 +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
611acd047c - some more usb fixes by Ben Lunt
- small hack for debug messages from the start added (disabled by default)
2005-11-08 18:49:45 +00:00
Volker Ruppert
9934d3b46b - prepared USB flash stick implementation (patch by Ben Lunt - not yet complete) 2005-11-07 19:06:05 +00:00
Volker Ruppert
82d009c632 - some more usb fixes by Ben Lunt
- missing interrupt on resume added
2005-11-05 12:57:18 +00:00
Volker Ruppert
afd665f369 - some more usb fixes by Ben Lunt 2005-10-30 10:02:51 +00:00
Volker Ruppert
0784eac61c - some fixes to usb support from SF patch #1340111 by Ben Lunt 2005-10-29 09:12:39 +00:00
Volker Ruppert
a434503a02 - PCI command register behaviour fixes in some devices 2005-09-23 19:31:12 +00:00
Volker Ruppert
ae3621fb5f - removed temporary PCI base address initialization in the reset() functions
- removed obsolete parameters for usb1 and pnic (now assigned by the PCI BIOS)
- PCI base address register mechanism now leaves the flags untouched
- missing reset of pnic options added
2005-09-22 21:12:26 +00:00
Volker Ruppert
8d2d2bd83b - redirect mouse data to USB only when an USB mouse is connected
- connect USB mouse only when the mouse type is set to 'usb'
2005-01-21 16:07:38 +00:00
Volker Ruppert
2c001794a2 - USB keypad now supported (patch from Ben Lunt)
- USB port config option now handled in the pciusb code (the devices "mouse" and
  "keypad" are currently supported)
2005-01-14 18:28:47 +00:00
Volker Ruppert
aa5fa1daf3 - prepared usb port configuration parameter and removed usb irq parameter
(assigned by BIOS)
- fixed some issues in bx_write_configuration()
- fixed bug in ne2k/pnic option parser (failed when disabling disabled device)
2004-12-30 14:50:37 +00:00
Volker Ruppert
e5c667a4a5 - fixed mouse pointer movement by using delayed one if no move is present
- fixed USB port numbers according to the specs
2004-12-26 09:28:35 +00:00
Volker Ruppert
3ee4cd39b4 - applied new pciusb patch by Ben Lunt that makes the USB mouse work on Linux 2004-12-24 21:38:01 +00:00
Volker Ruppert
5c2ccc7d90 - applied new pciusb patch by Ben Lunt
* re-insert usb mouse works now (Win98/Win98SE)
  * Win98 shutdown problem fixed
  * Linux HCRESET problem (device connection still fails)
  * USB keypad code added (not enabled yet)
2004-12-19 09:59:40 +00:00
Volker Ruppert
17b29a0b30 - applied a set of patches from SF patch #1083218 by Ben Lunt with some changes
- mouse type constants changed to enum values and related changes in config.cc
2004-12-16 19:05:01 +00:00