Commit Graph

1627 Commits

Author SHA1 Message Date
Volker Ruppert
cf4e7f5b5d - added flag HDIMAGE_AUTO_GEOMETRY and return it by default in base class if
cylinders are set to 0
- open image before getting capability flags and return after panic
- simplified geometry detection code
2011-01-21 16:00:38 +00:00
Volker Ruppert
e570e863c2 - fixed file descriptor / file handle leak (ported from Qemu)
- always stop parsing directory at final entry
2011-01-20 21:10:06 +00:00
Volker Ruppert
adb8359bb0 - moved mouse parameter handling to the keyboard parameter handler 2011-01-20 16:54:42 +00:00
Volker Ruppert
f4cbdc9827 - fixed file modification time generated with mktime (timezome value is already
applied and the daylight savings time information is not available)
2011-01-19 18:28:08 +00:00
Volker Ruppert
00c4dc40d6 - added floppy string parameter handler and moved "path" handling there
- the "readlonly" parameter is now completely handled in the floppy code
- detect VVFAT as 1.44 MB media when using the "image=" parameter in bochsrc
2011-01-18 21:04:44 +00:00
Volker Ruppert
9d3fc394a5 - simplified floppy parameter init code
- added floppy parameter handler and moved some runtime parameters there
2011-01-17 21:36:00 +00:00
Volker Ruppert
9b89f19d79 - improved USB configuration with gui
- fixed device change flag handling
2011-01-16 17:17:28 +00:00
Volker Ruppert
168efb7710 - re-implemented USB port options parameter to assign specific options to the
connected device. For now this feature is only used by the 'disk' device to
  specify an alternative redolog filename of some image modes.
- added new methods set_option() and timer() to the base class usb_device_c.
  The timer() method is periodicly called from the HC's frame timer code.
- moved runtime device change stuff from the parameter handler to the end of
  timer() methods of all hubs. This makes sure that all parameters for the
  device have been set at connect time. TODO: this technique could also be used
  for the floppy and cdrom media change.
2011-01-16 12:46:48 +00:00
Volker Ruppert
d2fa6b35e6 - MSVC warning fixed 2011-01-14 22:15:37 +00:00
Volker Ruppert
9b70c59980 - added own log prefix for the hdimage stuff
- added multiple sector read/write support for 'growing' images
- fixed two warnings
2011-01-14 16:43:55 +00:00
Volker Ruppert
0e008fedb0 - file attributes: added support for cleared archive bit
- report ignoring reserved clusters with BX_ERROR
2011-01-14 15:37:36 +00:00
Volker Ruppert
21ccef7f32 - set file modification date and time after committing file changes
- ignore reserved cluster numbers to avoid crash
2011-01-13 20:39:53 +00:00
Volker Ruppert
be2f3feef3 - enabled vvfat floppy support for the plugin version
- fixed and cleaned up floppy xfer code
- fixed two warnings
2011-01-12 22:35:32 +00:00
Volker Ruppert
51682da8b4 - converted the hdimage stuff to a separate plugin (similar to usb_common)
- usb_common is now a core plugin
- fixed an MSVC warning in devices.cc
- updated year in copyright
2011-01-12 22:34:42 +00:00
Volker Ruppert
b728142477 - the floppy media (e.g. image file) must be closed in destructor
- moved all the close() stuff to the new method close_media()
2011-01-11 22:00:41 +00:00
Volker Ruppert
bc60caaccc - added vvfat floppy support (1.44 MB media only / currently not working with
plugins enabled)
- added special characters (0xe5 <-> 0x05) conversion in short filename
2011-01-11 20:14:21 +00:00
Volker Ruppert
3520b9b154 - handle file attribute changes (system, hidden and read-only)
- some work on FAT12 (required for floppy support)
- moved write support code from close() to new method commit_changes()
2011-01-10 21:15:05 +00:00
Volker Ruppert
2bb3d74f70 - fixed handling of modified files if the first cluster has been changed
- handle deletes only after parsing the new directory tree
- show file attributes bits that have been modified
2011-01-09 19:20:11 +00:00
Volker Ruppert
129ce92871 - check mappings for delete request in reverse order to avoid removing non-empty
directories
- some other small changes
2011-01-09 09:19:05 +00:00
Volker Ruppert
e5122a3ccd - experimental real write added (commit changes on exit). When Bochs is shutting
down and the vvfat image has been modied, the user is asked if the vvfat
  directory should also be modified. Currently not handled: remove non-empty
  directories, system-reserved clusters and file attributes.
- some small related changes
2011-01-09 00:36:42 +00:00
Volker Ruppert
6d7900c8a5 - redolog_t: store current image position in variable and update it after
successful reads and writes (required for vvfat write support)
- added multiple sector read / write support to the undoable and volatile disk
  image mode (required for USB MSD)
2011-01-07 18:35:34 +00:00
Volker Ruppert
2511bf45a8 - always place the 'dot entries' on top of a subdirectory (for some host
file systems this position is not mandatory)
- some small code cleanups
- disabled currently unused code
2011-01-04 18:39:51 +00:00
Volker Ruppert
5dba54c861 - added support for boot sector file without MBR file. Now all cases are handled
correctly: MBR + bootsector, MBR only, boot sector only and none of the files.
2011-01-03 19:03:08 +00:00
Volker Ruppert
3ef57e9f7e - fixed some format warnings in the devices code 2011-01-02 16:51:08 +00:00
Volker Ruppert
e34a9da72c - improved FAT32 support (should be okay now)
- implemented reading boot sector from file
- VVFAT TODO: apply file and directory changes on exit
2011-01-02 14:44:20 +00:00
Volker Ruppert
747f2ba541 - experimental FAT32 support (works in most cases)
- volatile write support using the hdimage redolog_t class
  (TODO: apply directory and file changes on exit)
- updated makefile dependencies
2011-01-01 19:14:25 +00:00
Volker Ruppert
6d0b6c69b9 - implemented reading MBR from file (TODO: read boot sector)
- value of 'sectors_per_fat' must be 32 bit (for FAT32)
- some other small fixes
2010-12-31 15:39:27 +00:00
Volker Ruppert
a9a6bbfe22 - added support for reserved sectors between bootsector and FAT containing a copy
of the bootsector and the "FS info sector" (required for FAT32)
- implemented a more accurate way to calculate the number of clusters and the
  corresponding FAT size
- some other small fixes
2010-12-30 12:30:58 +00:00
Volker Ruppert
c521ec6ba1 - fixed MBR and boot sector values 2010-12-28 22:31:40 +00:00
Volker Ruppert
d45c98a267 - fixed crash caused by uninitialized value (found with MSVC)
- fixed cylinder overflow check
2010-12-27 22:37:36 +00:00
Volker Ruppert
52e4917f52 use C/H/S values from image for the CMOS setup 2010-12-27 18:37:25 +00:00
Volker Ruppert
a8ced63e31 - more fixes for configurable disk geometry
- check the root entries limit of FAT16
- some work on the FAT32 support (not yet complete)
- report volume creation date and time
- some other small fixes
2010-12-26 23:13:29 +00:00
Volker Ruppert
ba41f4cbff - set cluster size depending on disk size (FAT32 support not complete)
- several fixes related to configurable geometry (some more tests required)
- skip MBR and boot sector image files when reading directory (still unused)
- support overriding cylinder value with 0 in the command line
- don't return failure value when reading unused sectors
- increment buffer pointer when reading more than one sector
2010-12-24 20:47:22 +00:00
Volker Ruppert
341c764e1f - added initial 'virtual VFAT' image support (shadows a local directory)
* ported the read part of the Qemu vvfat block driver
  * added win32 specific directory functions (required for MSVC)
  * TODO: write support, FAT32 support, read MBR and boot sector from file
2010-12-23 16:17:12 +00:00
Volker Ruppert
1e3f3ee0c0 - added new hdimage method get_capabilities() that can return special flags
- HDIMAGE_HAS_GEOMETRY flag added to vmware3 & vmware4 modes (these modes use
  the CHS values from image file)
- harddrv: renamed pointer to hdimage object
2010-12-21 21:47:41 +00:00
Volker Ruppert
99eb027531 - modified usb_common plugin implementation to make Windows DLL plugins compile
* added new "pseudo device" for the USB device control (init, send message)
  * moved register_state() call from the hubs to the common device init code
- fixed unresolved symbols in usb_msd code
2010-12-14 21:20:37 +00:00
Volker Ruppert
29c8824bab - added support for HD image modes in usb_msd (TODO: specify journal file)
- siminterface: added helper method hdimage_get_mode()
- moved hdimage related stuff from harddrv.cc to the hdimage code
- changed hdimage related names
2010-12-10 17:02:18 +00:00
Volker Ruppert
c214fffa5e - created a separate plugin that contains the USB devices, the devices init
code and the generic USB stuff. Up to now, in plugin mode each host controller
  staticly links all this stuff with the plugin library. So it existed twice and
  e.g. it wasn't possible to create a unique serial number for disks/cdroms
  connected to different HCs. Some other sanity checks could be added now, too.
- Added a register mechanism for the USB device init function in the main
  devices code.
- TODO: Some other device plugins could be fixed the same way: network devices
        (sharing ethernet modules), harddrive & usb_msd (sharing hdimage and
        cdrom)
2010-12-06 18:51:13 +00:00
Volker Ruppert
cd7b703a5b - init() method added to the USB device class
- new USB device class method get_info() for improved device connect BX_INFOs
- USB printer: output file creation failure now causes BX_ERROR and disconnect
  instead of BX_PANIC (similar to usb_msd)
- removed obsolete include statements
2010-12-05 13:09:41 +00:00
Volker Ruppert
45148b3eb7 - fixed compiler warning and big endian issue in "send buffer" command code 2010-11-26 15:42:41 +00:00
Volker Ruppert
cdfedaa9bc - data type SOCKET doesn't exist on non-win32 platforms 2010-11-23 20:26:37 +00:00
Stanislav Shwartsman
9aa503cb9d fixed warnings for win64 compilation 2010-11-23 14:59:36 +00:00
Volker Ruppert
50d9fa3e9a - added support for VGA graphics mode with 400 lines (partial fix for SF bug #2948724) 2010-11-22 22:11:30 +00:00
Volker Ruppert
21d53ee619 - setting the ISR transmit complete bit doesn't depend on the corresponding IMR bit 2010-11-21 16:21:41 +00:00
Volker Ruppert
a41ab5ccf9 - attempt to fix win64 compilation (Win 95/98/ME specific floppy access method
not required on this platform)
2010-11-20 12:37:00 +00:00
Stanislav Shwartsman
85250931dd fix typo 2010-11-13 13:06:00 +00:00
Stanislav Shwartsman
e5bb07e366 a few more steps towards win64 compilation under windows 2010-11-13 13:00:26 +00:00
Stanislav Shwartsman
c7dba3525a Fixed warnings (patch from mailing list) 2010-08-15 19:57:50 +00:00
Volker Ruppert
8b46dcfc0b - added parameter to control the floppy media write protection. This is based on
the SF patch #1539417, but rewritten from scratch (patch too old). Differences
  to the original version:
  * internal parameter name "readonly"
  * update parameter if floppy image is readonly
  * wxWidgets support
  * documentation updates
  * no specific toolbar buttons
2010-07-03 05:34:27 +00:00
Volker Ruppert
e801f4a256 - removed floppy method get_media_status() (floppy media change handler already
updates the parameter)
2010-06-18 17:23:50 +00:00
Volker Ruppert
0a4c91815d - small fixes in the DHCP code (SF patch #2862322) 2010-05-22 10:15:58 +00:00
Volker Ruppert
fd477dac71 - ignore single mode command 0x02 (386BSD writes it, but works with it ignored) 2010-05-18 17:48:48 +00:00
Volker Ruppert
cdb7e0eb96 - fixed usage of variable 'apic_id_mask' for compatibility with win32 plugin target 2010-05-15 09:23:50 +00:00
Stanislav Shwartsman
35f8e91cad APIC ID mask cleanup 2010-05-14 12:10:00 +00:00
Stanislav Shwartsman
6ac1bdcbdf apic_dest_t as datatype 2010-03-27 09:56:30 +00:00
Stanislav Shwartsman
23927343d5 convert apic id to 32-bit -> pilot before x2apic merge
no functional change supposed to be seen yet
2010-03-26 13:00:14 +00:00
Stanislav Shwartsman
65a78f9887 dos2unix 2010-03-06 21:41:26 +00:00
Stanislav Shwartsman
9124f00645 Fixed format 2010-03-02 07:07:57 +00:00
Stanislav Shwartsman
e3a13a7a55 Make XAPIC runtime option as well 2010-02-28 14:52:17 +00:00
Stanislav Shwartsman
5df864b1f1 Move param_names.h into bochs root folder 2010-02-26 14:18:19 +00:00
Stanislav Shwartsman
55ee809cf7 fix warning 2010-02-08 14:53:31 +00:00
Volker Ruppert
5457fa4458 - fixed register_state() for the USB printer device (no need to save/restore the
file name since it is present in the config tree as a part of the device name)
2010-01-02 16:54:40 +00:00
Stanislav Shwartsman
153d43520d change copyright to bochs project 2009-12-04 19:50:29 +00:00
Stanislav Shwartsman
373377ff6c fix fname size 2009-12-04 17:54:22 +00:00
Stanislav Shwartsman
b2f6bffd8d updates for USB printer 2009-12-04 17:50:10 +00:00
Stanislav Shwartsman
453bb573bf indent changes 2009-12-04 13:21:33 +00:00
Stanislav Shwartsman
fb64ec4d0c Added USB printer support (patch by Ben Lunt) 2009-12-04 13:01:41 +00:00
Stanislav Shwartsman
85d0bb4632 determine APIC option from CPU_LEVEL and SMP support options - deprecate configure option for APIC support 2009-11-20 14:58:48 +00:00
Stanislav Shwartsman
6601f15c2e first step for range watchpoints - code reorg 2009-11-19 21:28:25 +00:00
Stanislav Shwartsman
da4722e257 optimize sr params 2009-10-16 18:29:45 +00:00
Stanislav Shwartsman
1b248b5212 fixes for future 2009-10-15 16:14:30 +00:00
Volker Ruppert
31d479f119 - attempt to fix SF bug #2867904: improved checks if VGA memory address is out
of bounds
2009-09-27 18:37:02 +00:00
Volker Ruppert
e34262bc7d - fixed regression caused by SF patch #2812936
* buffer size must match the IDE specs to transfer max. 255 sectors
  * resetting buffer pointers during IDE command is invalid
2009-08-16 19:59:03 +00:00
Stanislav Shwartsman
f29b5a97d6 fixes with long phy addr 2009-08-10 08:08:25 +00:00
Volker Ruppert
43194bddc6 - the status.interrupt bit should be set regardless of the enable bits if a IOC
or SPD is found (patch by Ben Lunt)
2009-07-19 17:49:27 +00:00
Volker Ruppert
19db14fe2e - changed BX_PANIC to BX_ERROR (text mode update code already skipped - should
only occur as an intermediate condition when switching to graphics mode)
2009-07-04 07:40:46 +00:00
Volker Ruppert
89f5147b06 - applied SF patch #2812936 by Derek
* reset buffer pointers properly to avoid overflow
  * resize buffers to match the PIIX/PIIX3 specs
2009-07-03 20:36:42 +00:00
Volker Ruppert
7d01754bae - fixed pit behaviour at multibyte count loads (SF patch #2812948) 2009-06-30 08:09:38 +00:00
Volker Ruppert
bdee17b183 - fixed compilation error if long physical address is enabled (OHCI uses 32-bit
address space only)
- added panic message for unsupported PCI memory flags (32-bit below 1 MB and
  64-bit address space are currently not supported)
2009-05-12 16:18:19 +00:00
Stanislav Shwartsman
1357a64519 iodebug compilation fix 2009-05-12 15:03:07 +00:00
Volker Ruppert
976cec630d - fixed uninitialized value found with valgrind 2009-05-10 07:57:26 +00:00
Volker Ruppert
6a1a080010 - override optional plugin control settings for 'acpi' and 'pci_ide' if PCI
support is disabled
2009-05-05 16:13:13 +00:00
Stanislav Shwartsman
fcd33dbdc5 SF patch IO Handler names are not compared properly 2009-05-01 09:12:07 +00:00
Stanislav Shwartsman
4c06bb8657 SFbugfix - "an integer overflow BUG of Bochs-2.3.7 source code" 2009-04-30 07:30:13 +00:00
Volker Ruppert
94a4710c5c - fixed crossing of the 4k boundary (USB disk on OHCI now works in Win98SE) 2009-04-29 18:16:31 +00:00
Volker Ruppert
4d98a816ad - for OUT transfers don't set the completion condition until all data is sent
to the device and process TD repeatedly until CC is modified (fixes MSD
  connected to OHCI with Linux guest)
- fixed CBP calculation and split transfer to memory when crossing the 4k
  boundary (makes 8k transfers work according to the specs: fixes Win98 guest crash)
- don't enable the status bar i/o indicator if it's ID is not valid (no space
  left in status bar)
- minor debug message fixes
2009-04-28 22:57:06 +00:00
Volker Ruppert
752c84ab9e - converted port 0xE9 hack option to a regular config parameter 2009-04-26 06:56:28 +00:00
Volker Ruppert
a1e65bae3a - bx_dbg cleanup in the keyboard and harddrv code
- several other debug message cleanups
2009-04-25 08:06:32 +00:00
Volker Ruppert
3a3b3f5b07 - bx_dbg cleanup in the floppy and unmapped code (using BX_DEBUG now) 2009-04-24 14:57:25 +00:00
Stanislav Shwartsman
2a268ecd5b small cleanup 2009-04-24 08:16:06 +00:00
Stanislav Shwartsman
cb312c9470 make port_e9_hack runtime option (and not configure time)
clean-up a bit in bx_dbg struct in bochs.h
2009-04-23 18:28:17 +00:00
Volker Ruppert
c85367fe80 - simplified PCI config space write debug messages for the current i/o length
- removed full device name from debug messages, since the device is specified
  by it's prefix. Full name is only required in a BX_INFO() in init().
- removed BX_PANIC messages that will never happen
2009-04-23 15:52:53 +00:00
Stanislav Shwartsman
e52cff7da3 remove very ugly and unsafe code (string functions are evil!) - new code is also 10 times faster. 2009-04-22 19:11:01 +00:00
Volker Ruppert
6a78f0d769 - removed extended debug output in some PCI config space read handlers
- small changes in some debug messages to make the log better readable
2009-04-22 18:37:06 +00:00
Stanislav Shwartsman
eab5f0fe7d some ifdefs 2009-04-21 20:32:20 +00:00
Stanislav Shwartsman
23326d86b6 fixed warning
unify names of debugger dump methods
2009-04-21 20:27:35 +00:00
Volker Ruppert
9408acde0d - update 2009-04-21 19:10:13 +00:00
Volker Ruppert
def1553ab5 - removed a bunch of unnecessary io_len checks 2009-04-21 17:53:29 +00:00
Stanislav Shwartsman
79d45186fd Docs about devices 2009-04-21 17:25:07 +00:00
Volker Ruppert
b6aa6b3f47 - fixed some warnings when compiling with VS2008Ex
* converted some functions to ISO-C syntax
  * use Sleep() instead of _sleep()
  * now using type Bit32u for cdrom LBA
2009-04-21 15:37:17 +00:00