#include <sys/bus.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <net/if_media.h>
#include <machine/bus.h>
#include <dev/pcn/if_pcnreg.h>
int check_disable_interrupts_pcn(device_t dev);
void reenable_interrupts_pcn(device_t dev);
int
check_disable_interrupts_pcn(device_t dev)
{
struct pcn_softc *sc = device_get_softc(dev);
HAIKU_INTR_REGISTER_STATE;
uint32_t status;
HAIKU_INTR_REGISTER_ENTER();
CSR_WRITE_4(sc, PCN_IO32_RAP, PCN_CSR_CSR);
status = CSR_READ_4(sc, PCN_IO32_RDP);
if ((status & PCN_CSR_INTR) == 0) {
HAIKU_INTR_REGISTER_LEAVE();
return 0;
}
CSR_WRITE_4(sc, PCN_IO32_RDP, 0);
HAIKU_INTR_REGISTER_LEAVE();
return 1;
}
void
reenable_interrupts_pcn(device_t dev)
{
struct pcn_softc *sc = device_get_softc(dev);
CSR_WRITE_4(sc, PCN_IO32_RAP, PCN_CSR_CSR);
CSR_WRITE_4(sc, PCN_IO32_RDP, PCN_CSR_INTEN);
}