Commit Graph

8978 Commits

Author SHA1 Message Date
Volker Ruppert
9e084b8898 - use new log function name for the listbox contents and adjust listbox size 2012-02-21 19:50:56 +00:00
Volker Ruppert
b45077ac82 - moved optional plugin control item to the top of the list, since it's now
important for using network, sound and usb devices.
2012-02-21 16:15:39 +00:00
Volker Ruppert
e63948434a - class bx_list_c size limit has been removed, so the "log action by device"
feature no longer needs a limit.
2012-02-21 15:56:18 +00:00
Volker Ruppert
e29c25d389 - implemented optional plugin control dialog 2012-02-21 12:00:54 +00:00
Volker Ruppert
b0afd56048 - changed checks for MinGW target cases to '*-mingw32*' (should fix WIN64 build)
- skip libtool creation and several checks for the MSVC target
2012-02-20 14:29:10 +00:00
Volker Ruppert
91fe8b99e6 - changed checks for MinGW target cases to '*-mingw32*' (should fix WIN64 build)
- skip libtool creation and several checks for the MSVC target
2012-02-20 14:27:45 +00:00
Stanislav Shwartsman
45b6eae291 updated fix for SF bug 3459998 2012-02-20 06:43:53 +00:00
Stanislav Shwartsman
1599031869 changed BX_INFO back to BX_DEBUG 2012-02-19 20:16:10 +00:00
Stanislav Shwartsman
f48317affc SVM: Added EXITINFO2 write on VMEXIT (missed in prev commit)
Added phenom_8650_toliman <AMD Phenom X3 8650 (Toliman)> comment into .bochsrc example with all other supported CPU configs.
Added missed SVM definitions into Toliman CPUDB module
2012-02-19 20:15:23 +00:00
Volker Ruppert
0e186e8ba1 - fixed autoconf 2.68 warnings 2012-02-19 19:50:56 +00:00
Stanislav Shwartsman
92376fb693 svm updates 2012-02-19 12:16:58 +00:00
Stanislav Shwartsman
c70a42c5d7 merged patch ftom SF bug 3459998 Bochs cannot be compiled outside the source tree 2012-02-19 12:16:14 +00:00
Volker Ruppert
d3a9768f14 - missing config dialog for CPUID options added
- prepared wx plugin control dialog
2012-02-18 16:25:10 +00:00
Volker Ruppert
c85fe6afcc - enable CPUID subtree only for CPU model choice #0 2012-02-18 10:50:14 +00:00
Volker Ruppert
a3441c8e55 - fixed memory leaks 2012-02-18 08:52:25 +00:00
Volker Ruppert
891051ac83 - don't compile library if subsystem is not enabled (network, sound, usb)
- fixed autoconf warnings
2012-02-17 19:09:33 +00:00
Volker Ruppert
92bb663381 - don't compile library if subsystem is not enabled (network, sound, usb)
- fixed autoconf warnings
2012-02-17 19:08:58 +00:00
Volker Ruppert
6079d4b2c0 - implemented optional plugin control dialog (TODO: do the same for wx) 2012-02-17 17:23:57 +00:00
Volker Ruppert
e30e6a9808 - moved optional plugin load / unload code to the siminterface
- implemented optional plugin control in textconfig
- TODO: implement this feature in the win32 and wx gui configuration
2012-02-16 18:06:03 +00:00
Stanislav Shwartsman
c2670b40d5 small cleanup in paging code 2012-02-15 19:49:35 +00:00
Stanislav Shwartsman
2f7e5ab3a3 fixed bugs in toliman configuration 2012-02-14 22:01:50 +00:00
Volker Ruppert
55854afa86 - calculate horizontal and vertical frequency from CRT for more accurate retrace
timing (TODO: length of retrace signals should be calculated, too)
2012-02-14 20:56:42 +00:00
Volker Ruppert
2f5be164d2 - reverted part of rev. 11031: for dependent lists the check 'param->get_parent() == this'
also works and no deplist trick is required
- bx_param_c destructor now deletes the dependent list if it exists (memory leak)
- bx_list_c::clear() only deletes the parameter if the list is it's parent
- added new method cleanup_save_restore() to free memory on simulator shutdown
2012-02-14 18:13:54 +00:00
Stanislav Shwartsman
5c02e7cebd do not need to load PAE PDPTRs if going to nested paging mode 2012-02-14 12:36:39 +00:00
Stanislav Shwartsman
bb7a648d91 Major commit !
------------

Implemented SVN nested paging support - the Virtual Box boots perfectly with Nested Paging guest !
A lot of code duplication was added for now - major cleanup will follow later.

! Added AMD Phenom X3 8650 (Toliman) configuration to the CPUDB - this configuration has Nested Paging enabled.

Some CPUID modules rework done to enable Toliman configuration.

Ckean up 'executable' attribute from all CPU source files.
2012-02-13 23:29:01 +00:00
Stanislav Shwartsman
deaf58b130 read from CPUDB svm extensions 2012-02-13 21:55:27 +00:00
Volker Ruppert
8bb206ccdf - added special flag for dependent lists
- bx_list_c: don't accept duplicate param names in list (except dependent lists
  and special menus)
- added BX_PANIC for malloc() failure
- harddrv: fixed wrong variable found with bx_list_c changes
2012-02-13 20:58:26 +00:00
Stanislav Shwartsman
813fe4e6b9 reduce code duplication - continue preparing for nested paging implementation 2012-02-13 20:06:04 +00:00
Stanislav Shwartsman
4d0a5c1b07 - VMX: EPT misconfiguration should always take priority above EPT permissions violation (translate_guest_physical corner case bug)
- VMX: EPT reserved bits set should cause EPT misconfiguration and not EPT violation
- VMX: EPT walk for guest CR3 address should be considered as 'page walk'
2012-02-12 21:30:22 +00:00
Stanislav Shwartsman
0b5f798af1 re-commit changes from SVN rev11026 which were accidentially undo'ed by last Volker's commit 2012-02-12 19:13:57 +00:00
Volker Ruppert
de94b08a1a - class bx_list_c now contains a chained list of parameters. Removed the now
obsolete maxsize parameter from all lists.
2012-02-12 18:43:20 +00:00
Stanislav Shwartsman
855d2adece cleanups in paging code 2012-02-12 16:09:35 +00:00
Volker Ruppert
1df471dc82 - fixed line offset change in case VBE is disabled or in 4bpp mode 2012-02-12 13:14:38 +00:00
Volker Ruppert
8ada8d66ff - simplyfied unloading of core plugins 2012-02-12 08:37:42 +00:00
Volker Ruppert
47c68a2f04 - fixed possible crash on Windows 2012-02-11 17:11:58 +00:00
Stanislav Shwartsman
fa182e96b5 for future nested paging: under NP PDPTR CACHE will contain NP PDPTR entries 2012-02-10 20:39:46 +00:00
Volker Ruppert
f5ca539534 - fixed some uninitialized values found with valgrind 2012-02-10 18:08:17 +00:00
Stanislav Shwartsman
a304bd5fd7 update user docs too 2012-02-10 16:08:01 +00:00
Stanislav Shwartsman
37af2eb6e4 update README file with newest Bochs CPU emulation caps 2012-02-10 16:02:22 +00:00
Stanislav Shwartsman
421170b2b9 applied SF patch 2012-02-10 15:15:31 +00:00
Stanislav Shwartsman
b497077b70 intel disclosed more cpuid bits 2012-02-08 19:54:22 +00:00
Volker Ruppert
47f2137edf - set device state structure to 0 with memset() for some devices
- cleaned up vga core init code after adding memset()
- floppy: removed structures that had been used for win95 direct access
2012-02-05 10:08:56 +00:00
Volker Ruppert
90e6c88c55 - limit physical head and sectors per track parameters to the values
supported by hardware and BIOS
2012-02-04 16:39:59 +00:00
Stanislav Shwartsman
9bebe91826 eliminate duplicated cpu methods by adding extra param to opcodes with no modrm 2012-02-03 10:24:59 +00:00
Stanislav Shwartsman
14ec87768e expand FCMOV function to 8 different functions - each one is much simpler to implement and understand 2012-02-01 12:07:53 +00:00
Volker Ruppert
b7333b7f3e - removed definitions that already exist in the vgacore files
- minor fixes and cleanups
2012-01-31 18:53:02 +00:00
Stanislav Shwartsman
2e44613032 dos2unix for avx_pfp.cc 2012-01-30 15:29:22 +00:00
Volker Ruppert
825edc4c64 - blinking in VGA graphics mode implemented (undocumented feature???)
- prepared function to override the VGA output (stops the update timer)
- minor cleanups the update() code
2012-01-27 18:50:07 +00:00
Volker Ruppert
35f89eeefb - regenerated after the pcivga changes 2012-01-26 16:37:00 +00:00
Volker Ruppert
ca2e44c0c4 - moved the pcivga code to vga.cc and removed the now obsolete plugin device 2012-01-26 16:35:38 +00:00
Volker Ruppert
da42a100eb - major rewrite of the vga / cirrus code
- added new class bx_vgacore_c containing the core of the standard VGA
    emulation. This is now the base class for both vga and cirrus.
  - created 2 separate plugins 'vga' (for standard VGA and VBE) and 'svga_cirrus'
    (Cirrus emulation). The vga extension option is used to select which plugin
    should be loaded.
- TODO: move the pcivga code to the VGA/VBE code, add subdirectory for display
        adapters, severak improvements and cleanups
2012-01-24 21:58:24 +00:00
Stanislav Shwartsman
56ff41bcd5 removed unused token from internal debugger command line parser 2012-01-24 21:42:04 +00:00
Volker Ruppert
ac08e89e94 - void gui init code to a new method and call it after the extension init
- added last maximum scan line to the bx_vga_c object
2012-01-23 22:16:08 +00:00
Stanislav Shwartsman
e42008a79a fixed uninitialized variable usage 2012-01-23 16:51:00 +00:00
Stanislav Shwartsman
457c56c822 fixup for EPT paging 2012-01-22 18:39:15 +00:00
Volker Ruppert
709dc30cf4 - changed the maximum x/y resolution and the resulting number of x/y tiles
from constant to variable
2012-01-22 16:13:45 +00:00
Volker Ruppert
a34cf1bcd5 - changes in the text update interface code
- changed argument for the text mode info structure to a pointer
  - added attribute controller palette to bx_vga_tminfo_t and removed the
    previous implementation
  - carbon.cc: attempt to fix the text mode colors (untested)
- x.cc: fixed warnings
2012-01-22 12:22:03 +00:00
Volker Ruppert
63ab13fe09 - store max. x / y resolution in the gui object and use it in win32.cc. Now it
no longer needs to incluse vga.h
2012-01-22 09:08:59 +00:00
Stanislav Shwartsman
795a21ec6d change type of the bx_list_c::choice var to Bit32u to make in compatible with ask_uint function 2012-01-21 20:54:55 +00:00
Stanislav Shwartsman
2e32bf2d84 for bx_list param - convert 'choise' variable to regular integer
also for textconfig - fix operation under cygwin
under cygwin it is not guaranteed that any printf is printed on the screen under you flush the FILE stream.
2012-01-21 20:36:32 +00:00
Volker Ruppert
500ad37191 - added arguments for x/y resolution to the gui init() and store x/y tilesize
in the gui object. Now the gui doesn't need to include vga.h.
- TODO #1: win32.cc also shouldn't include vga.h
- TODO #2: replace BX_MAX_XRES / BX_MAX_YRES by variables that can be set
  depending on the configuration
2012-01-21 12:15:10 +00:00
Volker Ruppert
3ec77e9372 - store config parameter values in local variables to avoid searching for
parameters at simulation time
2012-01-20 15:56:17 +00:00
Stanislav Shwartsman
fc6712e3a3 undo part of prev paging commit 2012-01-19 20:01:32 +00:00
Volker Ruppert
ed669adfd1 - rewrite of the PCI memory management code for the expansion ROM and BIOS area
- store memory type array in the memory object to avoid calling the pci plugin
    frequently. The pci code calls a memory method to change the memory type in
    case the PAM registers are modified.
  - removed now obsolete code and minor cleanups
2012-01-19 18:32:11 +00:00
Stanislav Shwartsman
12afed23a1 small fix and cleanups in paging code 2012-01-19 06:38:22 +00:00
Stanislav Shwartsman
d69f845cc6 fixed compilation with debugger 2012-01-17 22:02:19 +00:00
Stanislav Shwartsman
9461797886 added extra param to debugger phy access callback + cleanup in vmexit functions 2012-01-17 21:50:15 +00:00
Stanislav Shwartsman
f4b49633d4 paging code rework (cont) 2012-01-17 18:20:55 +00:00
Volker Ruppert
0711276b3f - updated VS2008 workspace file (plugin version) 2012-01-17 18:03:55 +00:00
Stanislav Shwartsman
b52c36d8c8 regenerated configure script 2012-01-16 18:43:48 +00:00
Volker Ruppert
ec464f6f17 - fixed sector count to support > 32GB virtual disk size (patch by soynor) 2012-01-16 17:27:37 +00:00
Volker Ruppert
a700d33e9f - call functions for config and bochsrc parameter handling used by plugins
from the siminterface (required by MSVC and maybe others)
2012-01-16 17:11:16 +00:00
Alexander Krisak
4a146456c6 fixed compilation in cygwin
fixed rfb under windows
2012-01-16 15:39:43 +00:00
Stanislav Shwartsman
0d64a6cb92 fixed paging bug in previous commit 2012-01-16 15:26:25 +00:00
Volker Ruppert
1b50a7f941 - updated default VS2008 workspace file (plugin version requires some source
code modifications)
2012-01-15 20:26:09 +00:00
Stanislav Shwartsman
7d641450ec remove param from check_entry_PAE function - it is always the same for all calls 2012-01-15 20:25:39 +00:00
Stanislav Shwartsman
c7cb99787e rework in paging code before nested paging implementation for SVM - step 2
optimize TLB flush code
2012-01-15 19:38:00 +00:00
Stanislav Shwartsman
4db23355cd rework in paging code before nested paging implementation for SVM - step 1 2012-01-15 17:54:13 +00:00
Volker Ruppert
8d7954e576 - another iodev cleanup: renamed pit_wrap files to 'pit'
- updated devices.txt
2012-01-15 08:50:20 +00:00
Volker Ruppert
6fe909393b - regenerated after moving sound stuff to new subdirectory 2012-01-15 07:56:11 +00:00
Volker Ruppert
c6bd3fb60c - moved the sound stuff to the new subdirectory iodev/sound
- TODO #1: update MSVC workspace files
- TODO #2: these 'device classes' could be moved to subdirectories, too:
  - pci (when we have more than one chipset)
  - display (when we have one more device and vga / cirrus cleaned up)
2012-01-15 07:52:04 +00:00
Volker Ruppert
a1a2ca1f55 - regenerated after moving networking stuff to new subdirectory 2012-01-14 17:12:27 +00:00
Volker Ruppert
50de0a12cd - moved the networking stuff to the new subdirectory iodev/network
- TODO: do the same with the sound code and update MSVC workspace files
2012-01-14 17:03:00 +00:00
Volker Ruppert
a207f9b94d - regenerated after moving usb stuff to new subdirectory 2012-01-14 12:39:16 +00:00
Volker Ruppert
b72d603d83 - forgot to remove this file 2012-01-14 12:37:58 +00:00
Volker Ruppert
68b49ba42d - moved the USB stuff to the new subdirectory iodev/usb
- TODO #1: do the same with the network and sound code
- TODO #2: update MSVC workspace files
2012-01-14 12:36:32 +00:00
Volker Ruppert
e4570a0939 - added special linked list for core plugins and manage them with the device
plugin system.The load order is important for these devices!
- load support plugins for networking, sound and usb only if at least one of the
  related plugin devices is loaded.
- plugin_ctrl: added missing devices to the list in bochsrc sample
2012-01-13 17:04:47 +00:00
Volker Ruppert
fb9401c3b0 - devices 'ne2k' and 'sb16': moved config parameter creation and bochsrc option
parsing to the plugin device code
- sb16: modified misc runtime menu creation to make the sb16 parameters optional
- ne2k: changed location of the init() method in file (now matches coding style
  of other device plugins)
2012-01-12 18:03:20 +00:00
Stanislav Shwartsman
f5d55f5eb6 - Implemented Task Switch intercept in SVM, cleanup in task switch handling code
- Changed (c) year in several cpu files
- Cleanup and indent fixes in VMX code
2012-01-11 20:21:29 +00:00
Stanislav Shwartsman
039326d0c9 always return const pointer from functions - these strings are not planned to be modified 2012-01-11 19:57:38 +00:00
Stanislav Shwartsman
cb366e00c5 fixed code duplication in exceptions 2012-01-11 06:27:35 +00:00
Volker Ruppert
5c49e2458f - added new plugin type PLUGTYPE_STANDARD for optional plugins which are used in
nearly all cases and plugins that depend on others. These plugins cannot be
  managed with 'plugin_ctrl' (e.g. keyboard, harddrv, pci_ide). Store the plugin
  type in the divice structure for compatiblity with the "no-plugin" compilation.
  Call the device methods init(), reset() and after_restore_state() for each type
  separately in the order: stanard, optional, user. This also affects the status
  bar LED feature: now the keyboard and harddrv LEDs are always visible, but
  those of optional plugins may be invisible if there is no space left.
- TODO #1: add the devices 'ne2k' and 'sb16' to 'plugin_ctrl'
- TODO #2: manage core plugins with the device plugin system
2012-01-10 17:45:18 +00:00
Stanislav Shwartsman
ba7887f31c fixed code duplication with v86 interrupt redirection 2012-01-10 08:13:34 +00:00
Stanislav Shwartsman
8d698c7087 fixed compilation err ith cpu-level=5 and cleanups 2012-01-09 20:52:15 +00:00
Stanislav Shwartsman
87b1c31495 fixed SVM VmEXIT on #PF error code 2012-01-09 20:24:23 +00:00
Stanislav Shwartsman
f64c38dfaf fix in SVM event injection 2012-01-09 20:15:15 +00:00
Volker Ruppert
db4520f778 - devices 'pcidev' and 'pcipnic': moved config parameter creation and bochsrc
option parsing to the plugin device code
2012-01-09 17:15:03 +00:00
Stanislav Shwartsman
2900956327 Split back some frequently used arithmetic and logic opcodes (which were done as Load+Op before). 2012-01-09 13:09:59 +00:00
Stanislav Shwartsman
35bfe11c3d SVM: forgot to save RFLAGS in guest state 2012-01-08 19:46:38 +00:00
Stanislav Shwartsman
a531f8081c fixed compilation with cpu-level=5 2012-01-08 16:58:14 +00:00