Commit Graph

63 Commits

Author SHA1 Message Date
Volker Ruppert
159228db5d Slirp: added SMB support for non-Windows platforms. The new slirp.conf option
'smb_export' can be used to set up shared folder. TODO: the location of 'smbd'
and IP address of the SMB server is currently hardcoded.
2014-03-20 18:02:44 +00:00
Volker Ruppert
798596c4c0 Slirp: added sanity check for correctly packed networking structures.
Cygwin shortcut script: option -mno-cygwin is obsolete and -mno-ms-bitfields is
required for Bochs as of GCC version 4.7.
2014-03-16 12:13:52 +00:00
Volker Ruppert
76a03aa1f0 Networking-related fixes
- bx_param_string_c method isempty() didn't work for raw byte strings. Now using
  it to check whether or not the current value matches the initial one. The
  parameter handling of the network adapters now use this method to check if
  the MAC address is already initialized to avoid incorrect BX_ERRORs.
- small documentation update
2014-03-10 19:05:46 +00:00
Volker Ruppert
aad090d03c Slirp dnssearch: added support for comma-separated list of DNS suffixes 2014-03-09 16:41:36 +00:00
Volker Ruppert
46037ee5f5 Slirp: added basic 'dnssearch' option (currently only 1 entry supported).
TODO: 'dnssearch' option should accept a comma-separated list of suffixes.
Other slirp TODOs: SMB support on Linux, reduce code duplication (ARP, DHCP, TFTP)
2014-03-08 08:54:33 +00:00
Volker Ruppert
0c4e5eb6c5 Renamed slirp option 'dhcp' to 'dhcpstart' (similar to Qemu)
Ignore case when checking for slirp options
Improved slirp documentation
2014-03-04 18:58:51 +00:00
Volker Ruppert
25f9b4346a Added support for the bootfile option in the slirp config file.
Moved slirp config parameters to the ethernet module object.
Added initial documentation for the built-in slirp support
2014-03-03 16:32:11 +00:00
Volker Ruppert
f62c8f158f Some work on the "Bochs side" of the new slirp module
- added support for a separate slirp config file specified with the "script"
  parameter. Added sample config in the "misc" subdirectory.
- now creating one logfunctions object per slirp instance and added new function
  slirp_warning() to send error messages to the Bochs log.
- regenerated dependencies for the iodev/network Makefile and updated command
  line example for generating them.
2014-03-02 20:24:26 +00:00
Volker Ruppert
479d0477cf Slirp: added symbols required for win32 plugin DLLs.
Updated workspace files after adding slirp and avx sources
Updated slirp TODO list:
- reduce code duplication with 'vnet' module (DHCP, TFTP, ARP)
- add separate config file for slirp to make it more flexible (using the
  'script' parameter)
- add SMB support on Linux
- remove slirp backend module after next Bochs release
2014-03-02 09:53:42 +00:00
Volker Ruppert
6bfc3e4bd8 Slirp: added SVN Id on top of each source file 2014-03-02 07:42:24 +00:00
Volker Ruppert
2d4d3aaa56 Slirp: fixed MSVC warnings 2014-03-01 23:52:08 +00:00
Volker Ruppert
3f5d670384 Some work on the new slirp module
- applied remaining updates from Qemu slirp
- add #if blocks to all slirp .cc files for conditional compilation
- fixed some uninitialized variable warnings
2014-02-27 21:15:31 +00:00
Volker Ruppert
5ea6e8c941 Some work on the new slirp module
- added dnssearch sources from latest Qemu slirp (currently unused feature)
- minor other updates from Qemu slirp
- add #if blocks around already up-to-date slirp sources for conditional compilation
- TODO: finish updating from Qemu and start fixing compiler warnings
2014-02-27 19:11:18 +00:00
Volker Ruppert
e62076e53d Somw work to make the new slirp module compile and work with MSVC
- added container_of() macro replacement
- fixed unresolved symbol in netmod.cc
- added MSVC-style structure packing pragmas
- check for the presence of min / max macros
- enabled slirp_new for MSVC in configure script
TODO list:
- check for more updates from Qemu
- fix lots of compiler warnings
- reduce code duplication with 'vnet' module (DHCP, TFTP, ARP)
- add separate config file for slirp to make it more flexible (using the
  'script' parameter)
- update MSVC workspace files
- add SMB support on Linux
- remove slirp backend module after next Bochs release
2014-02-25 19:44:14 +00:00
Volker Ruppert
6b39b6971f Slirp: reduce differences to latest Qemu sources 2014-02-18 20:34:14 +00:00
Volker Ruppert
8f3695aedf Some work on the builtin slirp support
- fixed Windows netmod plugin
- reduce differences to latest Qemu sources (to be continued)
2014-02-16 20:35:28 +00:00
Volker Ruppert
dfc71f8ae4 Applied patch for builtin "slirp" (user-mode networking) support. This version
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
2014-02-16 13:31:53 +00:00
Volker Ruppert
7ec9adbb2d Switch to Winsock2 library for all Windows cases 2014-02-15 12:18:15 +00:00
Volker Ruppert
23a2ded526 Fixed build process without libtool and plugins 2014-01-03 21:58:04 +00:00
Volker Ruppert
c6dd095321 Added new method for the init of the readonly registers in the PCI config space
and cleaned up the PCI devices code.
2013-12-30 22:39:21 +00:00
Volker Ruppert
eced151cde Use data conversion macros based on bx_bswap* and remove temporary code 2013-12-30 17:13:18 +00:00
Volker Ruppert
ae659d14fd Changed initial value of the parameter "enabled" to 1 for network, sound and
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.
2013-12-30 14:37:04 +00:00
Volker Ruppert
443f04703c Added / modified device log prefixes 2013-12-29 12:56:52 +00:00
Volker Ruppert
f8ea396a2c Several fixes for compiling Bochs successfully in Cygwin64 2013-11-01 18:19:52 +00:00
Volker Ruppert
5b9d937cc1 Make sure winsock.h is included in serial.cc and eth_win32.cc
Including winsock.h not needed in pc_system.cc
Don't specify architecture in gcc 4.7+ example
2013-11-01 16:26:59 +00:00
Volker Ruppert
ebdd3b4d38 slirp / vnet TFTP support: implemented timeout mechanism 2013-10-06 15:32:40 +00:00
Volker Ruppert
a4b1c2a654 slirp / vnet: increased TFTP buffer size (max. file size 64 MB with blksize=1024) 2013-09-29 09:08:24 +00:00
Volker Ruppert
a8f1834c38 slirp / vnet TFTP support:
Detect and reply all supported TFTP extension options for both read and write
operations. Use 'blksize' value if smaller than buffer size.
TODO: increase buffer size, implement timeout mechanism
2013-09-28 08:56:54 +00:00
Volker Ruppert
4b59e6b884 slirp / vnet: added support for multiple TFTP sessions
slirp: fixed minimum eth packet size for builtin replies
2013-09-27 11:47:59 +00:00
Volker Ruppert
ec4990a380 slirp / vnet: only one instance per Bochs session supported yet 2013-09-16 17:06:03 +00:00
Volker Ruppert
5ac2776cd0 Added IP and UDP header data structure definitions and related code cleanups 2013-08-22 11:53:40 +00:00
Volker Ruppert
7783e39b77 On Windows, the netmod plugin now must be linked with wsock32 2013-08-21 15:19:47 +00:00
Volker Ruppert
9ce849e742 Moved ARP processing to netmod.cc to reduce code duplication 2013-08-20 17:43:24 +00:00
Volker Ruppert
17970857b8 added new bx_param_string_c methods isempty() and sprint()
- 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
2013-02-01 19:13:58 +00:00
Volker Ruppert
2daadfcd85 parse serial, parallel and sound bochsrc options using the parameter list
- fixed small bug in the ne2k parser code
- added warnings to the new parser code
2013-01-26 18:17:23 +00:00
Volker Ruppert
b1cc217ea8 parse mouse and ata resource bochsrc options using the parameter list
- fixed possible segfaults in the new parser code
- use the new parser code partly for the ata device and nic options
2013-01-26 13:32:28 +00:00
Volker Ruppert
34dbbe1c74 save the mouse, serial, parallel and ata resource options using the parameter tree 2013-01-19 22:37:15 +00:00
Volker Ruppert
a5e5ac69b0 save the network configuration lines using the parameter tree
- fixed bochsrc line after a "raw byte" string parameter
- changed parameter name "macaddr" to "mac" (same as bochsrc option parameter)
- skip disabled parameters when building the bochsrc line
- added "multiline" switch to select the output format (one or multiple lines)
- renamed siminterface method and use it in the network devices code
2013-01-19 12:25:53 +00:00
Volker Ruppert
6787d3b629 some PCI register behaviour fixes 2012-11-11 16:55:59 +00:00
Volker Ruppert
f0a3679e34 moved function is_pci_device() to the siminterface class 2012-11-11 12:21:09 +00:00
Volker Ruppert
cc56245407 started implementing the i430FX chipset
- renamed config parameter "i440fx_support" to "enabled"
- new config parameter "chipset" added (current choices "i430FX" and "i440FX")
- don't load ACPI support if the i430FX chipset is selected
- select register values for the core PCI devices depending on the chipset
- USB UHCI must be connected to a PCI slot if the i430FX chipset is used
- rombios changes to make the i430FX chipset work
- TODO #1: implement limitation to 1 cpu and 128 MB RAM for the i430FX chipset
- TODO #2: verify register behaviour of both chipsets
2012-11-11 08:11:17 +00:00
Volker Ruppert
723dfc2ad7 - improved packet logging function (added ASCII dump to hexdump) 2012-09-24 19:32:57 +00:00
Stanislav Shwartsman
cc5f8d12d1 fixed unused var warning 2012-09-20 21:14:13 +00:00
Volker Ruppert
48042499cf - added original authors on top of LGPL'd sources ported from Qemu
- added LICENSE file to clarify the Bochs license
- TODO: fix source files ported from Qemu with MIT license
2012-08-30 20:41:25 +00:00
Volker Ruppert
a2dd985aef - remove registered device state in destructor (fixes crash on Bochs exit with
MSVC plugins)
2012-08-19 08:16:20 +00:00
Volker Ruppert
11b22c8473 - forgot to remove obsolete stuff 2012-08-16 12:25:55 +00:00
Volker Ruppert
43c1ac48f4 - implemented TFTP support in eth_slirp.cc
* moved TFTP request processing core from eth_vnet.cc to netmod.cc
  * added TFTP handling in eth_slirp.cc similar to DHCP
2012-08-16 11:59:44 +00:00
Volker Ruppert
e90c04a65f - fixed typo 2012-08-08 15:38:33 +00:00
Volker Ruppert
53438e92c6 - fixes based on Debian patches by Guillem Jover
- set SHELL variable with configure script
  - add '--tag CXX' argument to libtool calls
2012-07-14 07:01:43 +00:00
Volker Ruppert
82c65076cc - renamed PCI Pseudo NIC bochsrc option to "pcipnic" (temporary hack should
be removed after next Bochs release)
- documentation updates
2012-07-11 21:03:59 +00:00