Commit Graph

27 Commits

Author SHA1 Message Date
Volker Ruppert
7fd9194d81 Implemented lock mechanism for hard disk images (fixes SF bug #605).
- Create a file with image name plus extension ".lock" if an image is opened
  in read/write mode. This file will be deleted after closing the image.
- Check for a lock file before opening an image and fail if it exists.
- Check for a lock file before creating a undoable/volatile redolog file and
  fail if it exists.
2017-01-30 19:08:37 +00:00
Volker Ruppert
141aea5f1b Fixed and improved 'concat' disk image mode. 2015-10-17 10:06:36 +00:00
Volker Ruppert
6f75ceadbc Removed sources of legacy tools bxcommit and bximage_old and updated MSVC workspaces 2014-06-19 08:57:28 +00:00
Volker Ruppert
777fcd8372 Fixed timestamp of "growing" mode base images with an "undoable" redolog. 2014-04-04 19:14:32 +00:00
Volker Ruppert
8159a00b3e Added access() check before detecting image mode to get an accurate panic
message in case of failure.
2014-03-23 09:19:44 +00:00
Volker Ruppert
a8f72a7575 Added support for multiple sector transfers to the 'concat' image mode.
Renamed 'flat' image mode C++ class.
2014-01-23 18:35:18 +00:00
Volker Ruppert
9554a2133e Always enable the portable ISO image file support. The option --enable-cdrom now
only controls the presence of platform-specific code to access CDROM/DVD devices
2013-11-10 11:14:42 +00:00
Volker Ruppert
b452803be5 Preparing lowlevel cdrom rewrite
- use #if BX_SUPPORT_CDROM instead of #ifdef LOWLEVEL_CDROM
- devices with cdrom support now use the base class cdrom_base_c
- cdrom count variable moved to cdrom.cc
- cdrom_misc.cc: don't use ioctl's for ISO files
2013-11-05 18:06:39 +00:00
Volker Ruppert
bce8268c6f Added new redolog_t method commit() for the bximage commit mode, using the fast
algrithm of bxcommit.
2013-10-23 08:35:21 +00:00
Volker Ruppert
6025e38333 preparing hdimage code for the the compilation with a new bximage utility
written in C++ supporting image creation, conversion and redolog commit
2013-10-13 14:33:55 +00:00
Volker Ruppert
674447c186 DLL HD support rewritten and enabled for WIN32
TODO: put sample code for VDISK.DLL into the patches directory
2013-03-08 18:25:32 +00:00
Volker Ruppert
698afee9aa undoable / volatile mode: added support for other types of r/o base images.
These hdimage modes are now supported: flat, sparse, growing, vmware3, vmware4
und vpc. The image mode is auto-detected, so no change of configuration syntax
is necessary (TODO: documentation update). Example:

ata0-master: type=disk, mode=volatile, path=vmware4-test.img
2012-10-07 18:36:22 +00:00
Volker Ruppert
fb778e706c - sparse: simplified restore code
- redolog class: added support for opening redolog file in read-only mode
- open backups for header check in read-only mode (growing, undoable, volatile, vpc)
2012-10-04 17:01:17 +00:00
Volker Ruppert
961a88ab43 - started implementation of hdimage mode autodetection and use it to check the
type of the r/o disk for the undoable / volatile mode. The format check code
  is currently written for flat, sparse and growing images. The undoable and
  volatile mode now cause a panic if the r/o image mode is unsupported.
- TODO #1: rewrite the header checks for vmware3, vmware4 and vpc images to make
  them usable for autodetection.
- TODO #2: add support for other types of r/o disks in undoable/volatile mode.
- TODO #3: add an image mode 'auto' for the supported types (NOTE: unknown images
  can be treated as flat ones if their size is multiple of 512).
2012-10-03 16:17:37 +00:00
Volker Ruppert
b142dbcc2c - add new function hdimage_open_file() that returns file size and modification
time if requested (reduces code duplication)
- 'vpc' image mode: moved header check to a separate function that opens the
  file, checks header/footer and returns disk type (if requested)
- implemented restore function for 'vpc' mode images
- gui: updated yes/no dialog message after saving state
- save/restore documentation update (TODO: developer doc)
2012-09-27 18:38:30 +00:00
Volker Ruppert
84cfd36d38 - implemented restore function for 'vmware4' mode images
- fixed restore function for 'sparse' mode images
- prepared restore functions for 'vmware3' and 'vpc' mode images
2012-09-25 16:24:19 +00:00
Volker Ruppert
d29fb9a592 - implemented restore function for 'concat' mode images
- always use 'pathname' for the full path of the original image
2012-09-25 05:12:46 +00:00
Volker Ruppert
5d562a7830 - implemented restore function for 'growing' mode images
- fixes and cleanups in the restore functions
2012-09-23 19:28:28 +00:00
Volker Ruppert
7fff912faf - implemented restore function for 'sparse' mode images
- fixed restore function for 'flat' mode images
2012-09-23 11:03:52 +00:00
Volker Ruppert
31461c26fb - added helper function hdimage_copy_file() for the hdimage restore functions.
On win32 the native CopyFile() function is used. The restore function should
  work this way: coherency check (if necessary), close current image, copy saved
  image from restore path (overwrites existing one), finally re-open image.
- implemented restore function for 'flat' and 'undoable' mode images
2012-09-22 10:04:28 +00:00
Volker Ruppert
28bc5e4bc2 - moved coherency check for r/o disk and journal to a separate function to
make it usable for the required check before restoring journal file
- prepared restore function of undoable and volatile images
2012-09-21 20:25:23 +00:00
Volker Ruppert
bcd0a58537 - simplified save_state() method of 'sparse' mode images (saving parent images
not necessary, since all changes go to the toplevel image)
2012-09-20 20:41:14 +00:00
Volker Ruppert
50482a9f2b - implemented save state function for the disk image modes 'vmware3', 'vmware4'
and 'vpc'
- prepared hdimage restore support
- vmware4: code cleanup
2012-09-19 21:05:18 +00:00
Volker Ruppert
5cbf0894ac - implemented save state function for the disk image modes 'concat' and 'sparse'
- set timestamp of r/o disk in volatile mode, too (for save/restore support)
- TODO: save state function for the remaining image modes, restore support
2012-09-18 19:00:25 +00:00
Volker Ruppert
7da5057be5 - implemented save state function for redolog_t based disk image modes (growing,
undoable, volatile)
- TODO: save state function for the remaining image modes, restore support
- save/restore: when saving binary data to a file, use the full parameter path
  (except "bochs." prefix) as the file name to avoid overwriting duplicates
2012-09-17 19:30:40 +00:00
Volker Ruppert
9ee5a77747 - started implementation of sav/restore support for hard disk images using a
dummy parameter and it's save/restore handlers. Currently only the save
  support is implemented and the specific save function is only written for
  flat mode images (copies whole disk image file to the save/restore folder).
- TODO #1: implement save function for the other disk image modes
- TODO #2: add restore support (replace disk image file with the one from the
           save/restore folder)
2012-09-16 19:51:30 +00:00
Volker Ruppert
90168f5dcd - moved the lowlevel cdrom and disk image stuff to the new subdirectory iodev/hdimage
- TODO: update MSVC workspace files
2012-08-05 18:13:38 +00:00