- Modified info / error log message handling.
- Renamed insque / remque functions using "slirp_" prefix.
- Removed useless SVN ID from most file headers and add license specifier instead.
Memory Protection Extensions - add MPX abbreviation
SMX: Secure Virtual Machine Technology - bit6 is for SMX, but [it's
meaning](https://en.wikipedia.org/wiki/CPUID) is Safer Mode Extensions
(part of TXT). Not Secure Virtual Machine Technology (which is already
listed elsewhere as SVM).
- Added capability to turn on IPv6 support with slirp.conf option (using default
QEMU settings for now / non-Windows platforms only).
- Added some basic timer code required by IPv6 based on example code.
- Added configure option --enable-using-libslirp to turn on the search for the
library. In config.h BX_HAVE_LIBSLIRP is set to 1 if found. The network Makefile
is set up accordingly. If not enabled or not found, the builtin slirp code is used.
- Moved samba server code and host forwarding code to eth_slirp.cc.
- Modified builtin slirp API to reduce differences.
- NOTE: IPv6 support present in libslirp is not yet enabled (needs more testing).
- TODO: Update builtin slirp code based on libslirp 4.7.0 code.
This change fixes compiler errors in Android as following.
../../../iodev/sound/soundoss.cc:43:10: fatal error: 'sys/soundcard.h'
file not found
43 | #include <sys/soundcard.h>
| ^~~~~~~~~~~~~~~~~
../../../iodev/network/slirp/misc.cc:195:12: error: use of undeclared
identifier 'getdtablesize'; did you mean 'getpagesize'?
195 | for (s = getdtablesize() - 1; s >= 3; s--)
| ^~~~~~~~~~~~~
| getpagesize
/data/data/com.termux/files/usr/include/unistd.h:356:5: note:
'getpagesize' declared here
356 | int getpagesize(void) __INTRODUCED_IN(21);
| ^
The official documentation also suggests to use __ANDROID__ macro which
is defined by the compiler irrespective of included headers and build
system.
https://android.googlesource.com/platform/bionic/+/HEAD/docs/defines.md
Use this display library line to read/write ini from BXSHARE path:
display_library: x, options="gui_debug:globalini"
NOTE: Using $BXSHARE at this point doesn't work yet since the common parser code
expands the variable and Bochs finally exits with a panic (needs to be reviewed).
TODO: Add shared parser code for all guis and add this feature for SDL, SDL2 and
wxWidgets guis.
If BXSHARE variable is defined (or BX_SHARE_PATH set in Windows registry)
and an existing ini file is copied to this location, the gui will use it
instead of the local ini file (issue #195).
TODO: Specify the ini file priority with an addition to the 'gui_debug'
parameter of the display library option.
The current code of the USB debugger doesn't meet the requirements for compiling
with plugins present. It should not access devices directly but use the parameter
tree instead.
Don't include USB debugger resources if not present.
Renamed USB EHCI and USB UHCI folders in plugin workspace files.
Attempt fix plugin version for compiling with Bochs debugger / USB debugger.
FIXME: USB debugger doesn't link yet.
Don't generate debug information for release builds.
Fixed some of the "OutDir" settings.
TODO: review all "OutDir" settings, debug information in plugin DLLs.
This allows the Window's Environment variable BX_SHARE_PATH to be used
in paths within your bochsrc file.
Environment variable:
`BX_SHARE_PATH`
Value:
`D:\some\path`
Before:
`romimage: file=D:/some/path/bios/BIOS-bochs-latest`
After:
`romimage: file=$BXSHARE/bios/BIOS-bochs-latest`
Please note that I don't know why the parameter was initially empty. Was
this to catch a base/default parameter?
If the `lpValueName` parameter is NULL or an empty string, Windows will
return a (possibly non-existent) default value.
With this PR, we specify the actual parameter of `BX_SHARE_PATH`.
Updated AVX and FPU project files to make them compile. Added new project file
for the softfloat3e module. With the current version the softfloat3e.lib is created,
but it doesn't link with bochs.exe, so the build fails with more than 100 unresolved
externals. Manually linking on the MSVC command line using the created *.lib and *.obj
files works and bochs.exe is usable. I still haven't found out why linking from
the IDE fails.
TODO: After fixing this issue, updating the plugins workspace should be no problem.
Since GNU make and MSVC nmake need special rules for compiling this module that
causes failure with the other 'make' variant, the configure script needs to
comment out incompatible rules. Using symbols GNU_MAKE_ONLY and NMAKE_ONLY to
enable only one of the rulesets only.
Since one of the MSVC nmake rules uses curly brackets the shortcut script
.conf.win64-vcpp needs to be modified to exclude cpu/softfloat3e/Makefile
from removal of these usually unwanted characters.
The instrument stub needs this, otherwise
./configure --enable-instrumentation && make
fails because bxInstrument_c isn't declared.
Signed-off-by: Stephen Kitt <steve@sk2.org>
- Website repository is now GIT, but still hosted on SF.
- Creating SVN snapshot section is now obsolete.
- Prepared Makefile for compiling outside of the source tree.
To implement this, softfloat3e needs a Makefile created by configure script
to set up the real SOURCE_DIR.
TODO: Fix compilation with MSVC nmake (Makefile line 278 fails).
…16 support)
with a lot of my updates, cleanups and extensions for x86 features like
denormal and/or undeflow/overflow handling
---------
Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
This is the start of the Experimental USB Debugger (currently for the
Windows platform only).
Currently only supports the UHCI and xHCI controllers. The remaining
function of these two controllers and the two remaining controllers are
in the works and will be added to when time allows.
The User.dbk has been updated with (temporary) html files at
https://www.fysnet.net/bochs/user/index.html showing the process to
invoke and use the USB debugger (Section 5.8).
In its completion, this debugger will allow you to view and modify most
aspects of the specified USB controller. For example, currently you can
view and modify a TRB listed in the xHCI's Command or Event Ring. Other
aspects will be added.
I do not use and am not fluent in the use of `configure`,
`configure.ac`, and associated configuration files. I also don't use the
`gui/Makefile.in` file.
Someone that is more fluent in the way these files work, please add the
necessary items to successfully compile this PR.
---------
Co-authored-by: Shwartsman <stanislav.shwartsman@intel.com>
Dependencies should work completely in the config interface stage and coherency
check should be done in device init. This change should make the oder of parameters
in bochsrc / command line less strict (issue #263).
No reason to stop executing the Async list simply because the driver
didn't clear the IAA bit in the Status register.
Normally, a driver should clear it, but there is no instruction in the
specification to stop the Async list simply because this bit isn't
cleared.
Debug log is still present to inform the user.
Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
Using character / attribute pairs expected by the gui text update makes the
update code simpler and faster.
TODO: If possible add a buffer for active text font data.
- Added disabled definition VGA_MEM_FIX in vgacore.h. The VGA core code works as
usual unless you uncomment the define.
- Added correct implementation of the "chain four" and "odd/even" addressing mode.
This should fix the Debian / GRUB boot issue (#257) with both Bochs VBE and Cirrus.
- Added some compatibility code to make the gui text update work as usual.
- Tested all VGA modes except 256-color word mode (no test case).
- Some more testing with old DOS games may be required before I enable it by default
and finally remove the legacy code.
- Fixed Cirrus text mode output.
- VBE now using it's own 'line_offset' value.
- Since font change is now handled in update(), removing gui method set_text_charbyte().
Update conditional compilation due to conflicting statements in
different versions of the specs on the `ep_context->ep_state` value
initialization during a `SetAddress` command.
otherwise the question may not even arrive there, depending on the
implementation-defined behaviour of stdio buffering.
fixes display of questions with musl libc.
According to Intel SDM vol3 11.12.10.2 (Deriving Logical x2APIC ID from
the Local x2APIC ID), "The LDR initialization occurs whenever the x2APIC
mode is enabled".