Updated Cacodemon's two new Network adapters to the new PCI API.
This commit is contained in:
@@ -409,8 +409,10 @@ static void RTL8139TallyCounters_clear(RTL8139TallyCounters* counters);
|
||||
|
||||
struct RTL8139State {
|
||||
/*< private >*/
|
||||
uint8_t dev;
|
||||
uint8_t pci_slot;
|
||||
uint8_t inst;
|
||||
uint8_t irq_state;
|
||||
uint8_t pad;
|
||||
/*< public >*/
|
||||
|
||||
uint8_t phys[8]; /* mac address */
|
||||
@@ -683,7 +685,7 @@ static void prom9346_set_wire(RTL8139State *s, int eecs, int eesk, int eedi)
|
||||
|
||||
static void rtl8139_update_irq(RTL8139State *s)
|
||||
{
|
||||
uint8_t d = s->dev;
|
||||
uint8_t d = s->pci_slot;
|
||||
int isr;
|
||||
isr = (s->IntrStatus & s->IntrMask) & 0xffff;
|
||||
|
||||
@@ -691,9 +693,9 @@ static void rtl8139_update_irq(RTL8139State *s)
|
||||
s->IntrMask);
|
||||
|
||||
if (isr != 0)
|
||||
pci_set_irq(d, PCI_INTA);
|
||||
pci_set_irq(d, PCI_INTA, &s->irq_state);
|
||||
else
|
||||
pci_clear_irq(d, PCI_INTA);
|
||||
pci_clear_irq(d, PCI_INTA, &s->irq_state);
|
||||
}
|
||||
|
||||
static int rtl8139_RxWrap(RTL8139State *s)
|
||||
@@ -3284,7 +3286,7 @@ nic_init(const device_t *info)
|
||||
FILE* f = NULL;
|
||||
char eeprom_filename[1024] = { 0 };
|
||||
mem_mapping_add(&s->bar_mem, 0, 0, rtl8139_io_readb, rtl8139_io_readw, rtl8139_io_readl, rtl8139_io_writeb, rtl8139_io_writew, rtl8139_io_writel, NULL, MEM_MAPPING_EXTERNAL, s);
|
||||
s->dev = pci_add_card(PCI_ADD_NETWORK, rtl8139_pci_read, rtl8139_pci_write, s);
|
||||
pci_add_card(PCI_ADD_NETWORK, rtl8139_pci_read, rtl8139_pci_write, s, &s->pci_slot);
|
||||
s->inst = device_get_instance();
|
||||
|
||||
snprintf(eeprom_filename, sizeof(eeprom_filename), "eeprom_rtl8139c_plus_%d.nvr", s->inst);
|
||||
|
||||
@@ -294,7 +294,8 @@ struct tulip_descriptor {
|
||||
};
|
||||
|
||||
struct TULIPState {
|
||||
uint8_t dev;
|
||||
uint8_t pci_slot;
|
||||
uint8_t irq_state;
|
||||
const device_t* device_info;
|
||||
uint16_t subsys_id, subsys_ven_id;
|
||||
mem_mapping_t memory;
|
||||
@@ -376,9 +377,9 @@ tulip_update_int(TULIPState *s)
|
||||
|
||||
assert = s->csr[5] & s->csr[7] & (CSR5_AIS | CSR5_NIS);
|
||||
if (!assert)
|
||||
pci_clear_irq(s->dev, PCI_INTA);
|
||||
pci_clear_irq(s->pci_slot, PCI_INTA, &s->irq_state);
|
||||
else
|
||||
pci_set_irq(s->dev, PCI_INTA);
|
||||
pci_set_irq(s->pci_slot, PCI_INTA, &s->irq_state);
|
||||
}
|
||||
|
||||
static bool
|
||||
@@ -1582,7 +1583,7 @@ nic_init(const device_t *info)
|
||||
}
|
||||
memcpy(s->mii_regs, tulip_mdi_default, sizeof(tulip_mdi_default));
|
||||
s->nic = network_attach(s, (uint8_t *) &nmc93cxx_eeprom_data(s->eeprom)[10], tulip_receive, NULL);
|
||||
s->dev = pci_add_card(PCI_ADD_NETWORK, tulip_pci_read, tulip_pci_write, s);
|
||||
pci_add_card(PCI_ADD_NETWORK, tulip_pci_read, tulip_pci_write, s, &s->pci_slot);
|
||||
mem_mapping_add(&s->memory, 0, 0, NULL, NULL, tulip_read, NULL, NULL, tulip_write, NULL, MEM_MAPPING_EXTERNAL, s);
|
||||
tulip_reset(s);
|
||||
return s;
|
||||
|
||||
Reference in New Issue
Block a user