WARNING: CONFIGS MIGHT PARTIALLY BREAK WHERE DEVICE NAMES HAVE CHANGED.

Changes to device_t struct to accomodate the upcoming PCI IRQ arbitration rewrite;
Added device.c/h API to obtain name from the device_t struct;
Significant changes to win/win_settings.c to clean up the code a bit and fix bugs;
Ported all the CPU and AudioPCI commits from PCem;
Added an API call to allow ACPI soft power off to gracefully stop the emulator;
Removed the Siemens PCD-2L from the Dev branch because it now works;
Removed the Socket 5 HP Vectra from the Dev branch because it now works;
Fixed the Compaq Presario and the Micronics Spitfire;
Give the IBM PC330 its own list of 486 CPU so it can have DX2's with CPUID 0x470;
SMM fixes;
Rewrote the SYSENTER, SYSEXIT, SYSCALL, and SYSRET instructions;
Changed IDE reset period to match the specification, fixes #929;
The keyboard input and output ports are now forced in front of the queue when read, fixes a number of bugs, including the AMI Apollo hanging on soft reset;
Added the Intel AN430TX but Dev branched because it does not work;
The network code no longer drops packets if the emulated network card has failed to receive them (eg. when the buffer is full);
Changes to PCI card adding and renamed some PCI slot types, also added proper AGP bridge slot types;
USB UHCI emulation is no longer a stub (still doesn't fully work, but at least Windows XP chk with Debug no longer ASSERT's on it);
Fixed NVR on the the SMC FDC37C932QF and APM variants;
A number of fixes to Intel 4x0 chipsets, including fixing every register of the 440LX and 440EX;
Some ACPI changes.
This commit is contained in:
OBattler
2020-11-16 00:01:21 +01:00
parent 745460f64b
commit 0faf6692c9
260 changed files with 5122 additions and 4471 deletions

View File

@@ -1238,7 +1238,7 @@ pcnetCalcPacketLen(nic_t *dev, int cb)
/**
* Write data into guest receive buffers.
*/
static void
static int
pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
{
nic_t *dev = (nic_t *)priv;
@@ -1248,7 +1248,7 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
uint8_t buf1[60];
if (CSR_DRX(dev) || CSR_STOP(dev) || CSR_SPND(dev) || !size)
return;
return 0;
/* if too small buffer, then expand it */
if (size < 60) {
@@ -1262,7 +1262,7 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
* Drop packets if the cable is not connected
*/
if (!pcnetIsLinkUp(dev))
return;
return 0;
pcnetlog(1, "%s: pcnetReceiveNoSync: RX %x:%x:%x:%x:%x:%x > %x:%x:%x:%x:%x:%x len %d\n", dev->name,
buf[6], buf[7], buf[8], buf[9], buf[10], buf[11],
@@ -1370,7 +1370,7 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
/* RX disabled in the meantime? If so, abort RX. */
if (CSR_DRX(dev) || CSR_STOP(dev) || CSR_SPND(dev)) {
pcnetlog(3, "%s: RX disabled 1\n", dev->name);
return;
return 0;
}
/* Was the register modified in the meantime? If so, don't touch the
@@ -1415,7 +1415,7 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
/* RX disabled in the meantime? If so, abort RX. */
if (CSR_DRX(dev) || CSR_STOP(dev) || CSR_SPND(dev)) {
pcnetlog(3, "%s: RX disabled 2\n", dev->name);
return;
return 0;
}
/* Was the register modified in the meantime? If so, don't touch the
@@ -1459,6 +1459,8 @@ pcnetReceiveNoSync(void *priv, uint8_t *buf, int size)
}
pcnetUpdateIrq(dev);
return 1;
}
/**
@@ -3027,7 +3029,7 @@ static const device_config_t pcnet_pci_config[] =
static const device_config_t pcnet_isa_config[] =
{
{
"base", "Address", CONFIG_HEX16, "", 0x300,
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
{
{
"0x300", 0x300
@@ -3047,7 +3049,7 @@ static const device_config_t pcnet_isa_config[] =
},
},
{
"irq", "IRQ", CONFIG_SELECTION, "", 3,
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
{
{
"IRQ 3", 3
@@ -3067,7 +3069,7 @@ static const device_config_t pcnet_isa_config[] =
},
},
{
"dma", "DMA channel", CONFIG_SELECTION, "", 5,
"dma", "DMA channel", CONFIG_SELECTION, "", 5, "", { 0 },
{
{
"DMA 3", 3
@@ -3097,7 +3099,7 @@ static const device_config_t pcnet_isa_config[] =
static const device_config_t pcnet_vlb_config[] =
{
{
"base", "Address", CONFIG_HEX16, "", 0x300,
"base", "Address", CONFIG_HEX16, "", 0x300, "", { 0 },
{
{
"0x300", 0x300
@@ -3117,7 +3119,7 @@ static const device_config_t pcnet_vlb_config[] =
},
},
{
"irq", "IRQ", CONFIG_SELECTION, "", 3,
"irq", "IRQ", CONFIG_SELECTION, "", 3, "", { 0 },
{
{
"IRQ 3", 3
@@ -3149,7 +3151,7 @@ const device_t pcnet_am79c960_device = {
DEVICE_AT | DEVICE_ISA,
DEV_AM79C960,
pcnet_init, pcnet_close, NULL,
NULL, NULL, NULL,
{ NULL }, NULL, NULL,
pcnet_isa_config
};
@@ -3158,7 +3160,7 @@ const device_t pcnet_am79c960_eb_device = {
DEVICE_AT | DEVICE_ISA,
DEV_AM79C960_EB,
pcnet_init, pcnet_close, NULL,
NULL, NULL, NULL,
{ NULL }, NULL, NULL,
pcnet_isa_config
};
@@ -3167,7 +3169,7 @@ const device_t pcnet_am79c960_vlb_device = {
DEVICE_VLB,
DEV_AM79C960_VLB,
pcnet_init, pcnet_close, NULL,
NULL, NULL, NULL,
{ NULL }, NULL, NULL,
pcnet_vlb_config
};
@@ -3176,7 +3178,7 @@ const device_t pcnet_am79c970a_device = {
DEVICE_PCI,
DEV_AM79C970A,
pcnet_init, pcnet_close, NULL,
NULL, NULL, NULL,
{ NULL }, NULL, NULL,
pcnet_pci_config
};
@@ -3185,6 +3187,6 @@ const device_t pcnet_am79c973_device = {
DEVICE_PCI,
DEV_AM79C973,
pcnet_init, pcnet_close, NULL,
NULL, NULL, NULL,
{ NULL }, NULL, NULL,
pcnet_pci_config
};