implemented important CPU statistics which were used for Bochs CPU model performance analysis.
old statistics code from paging.cc and cpu.cc is replaced with new infrastructure.
In order to enale statitics collection in Bochs CPU:
- Enable statistics @ compilation time in cpu/cpustats.h
- Dump statistics periodically by adding -dumpstats N into Bochs command line
gui init and string paramter handler. The shortcut keys are now stored in an
array of BX_KEY* values in the gui object.
siminterface.h: Fixed some default return values.
- added new symbol BX_WITH_SDL2 and prepared build system
- TODO #1: add new option --with-sdl2 to configure script
- TODO #2: add new file sdl2.cc (porting seems hard to do - writing from scratch
might be better)
- added slirp.conf to NSIS script
- NSIS script now using HTML documentation path from 'install_win32' target
- Makefile: DLX Linux config file renamed to 'bochsrc.bxrc' for win32
- config.cc: bochsrc option removed with coming version
required an external binary and it couldn't be ported to Windows. Now the new
builtin and portable slirp support based on Qemu's implementation is almost
stable and all the 'vnet' DHCP and TFTP features have been ported to the new
slirp module.
TODO: rename all the "slirp_new" stuff to "slirp"
is almost a port of the Qemu 1.1.2 implementation. It has been tested successfully
on Linux and Windows (MinGW/MSYS). The networking module is currently called
"slirp_new", since the "slirp" backend module still exists.
TODO list:
- MSVC support (requires container_of() macro replacement)
- apply fixes and improvements from recent Qemu releases
- use our TFTP implementation to reduce code duplication
- check if we can share ARP and DHCP support with "vnet"
- add SMB support on Linux
- finally remove the slirp backend module support
usb device plugins. Loading the plugin means that the user wants to enable it.
Disabling the device on the command line and in the config interface is still
possible.
- fixed pluginlog init in non-plugin mode
- reduced logprefix length limit and use it for the related string parameter
- increase the device prefix size to 6
- TODO: change some more device prefixes
- If the runtime flag of a bx_list_c object is set, all it's items are set up
as runtime options.
- Set the runtime parameter for all top-level runtime-only lists. Setting up
each single parameter is no longer needed.
- moved some options to the top and some legacy ones to the end of the function
- added some info to the legacy keyboard options
- removed 'text_snapshot_check' keyword
- some coding style changes
- added 'wavein' parameter to specify the wave input device if necessary
- if 'wavein' is not set, Bochs uses the 'waveout' value for input, too
- SB16: the 'wave' parameter is now only used to specify the filename (mode 2 or 3)
- TODO: implement 'wavemode' feature for ES1370 similar to SB16
- added 'sound' option to select the driver and the wave output device
(see bochsrc sample for details)
- the wave device option of sb16 and es1370 is now only used to set up the
wave input device (if necessary)
- cleaned up the speaker code to initialize the 'sound' case correctly
higher resolutions and > 8 bpp graphics modes. The RFB gui with limited
capabilities is still available.
TODO:
- fix random segfaults in dimension_update()
- Windows (MinGW) support
- fixes for clients not supporting 'rfbEncodingNewFBSize'
- fix cursor shape after dimension update()
- after parsing command line only update actions if default has changed
- bx_init_hardware(): extra update of log actions in quick start mode not needed
- isempty() returns 1 if string length is 0 or string has special value "none"
- sprint() copies the formatted / converted string into a buffer
- use new methods in some parts of the code (TODO: win32 dialogs)
- check for the special value "none" to avoid failures
- moved 'user_shortcut' option to the keyboard option
- added new bx_param_c option value BOCHSRC_HIDDEN for parameters that should
only be available in the config interface. The new bochsrc option save and
parser function skip parameters with this flag set. This is useful for
parameters that will be set from the parser in a different way.
- save keyboard bochsrc line using the parameter list directly
- parse keyboard bochsrc options (except 'keymap') using the parameter list
- user shortcut: old-style syntax has already been removed
- increased minimum value for the keyboard's 'serial_delay'
- removed parameter "present" and use the new drive type "none" instead
- re-implemented cdrom media status parameter as a bx_param_enum_c
- TODO: change floppy media status parameter type to be consistent