/* Since the write on the Enet PROM register doesn't seem to reset the PROM pointer correctly (at least on my DE425 EISA card), this routine should do it...from depca.c.  */
static void enet_addr_rst(u_long aprom_addr)
/* Since the write on the Enet PROM register doesn't seem to reset the PROM pointer correctly (at least on my DE425 EISA card), this routine should do it...from depca.c.  */
static void enet_addr_rst(u_long aprom_addr)
{
    union {
	struct {
	    u32 a;
	    u32 b;
	} llsig;
	char Sig[sizeof(u32) << 1];
    } dev;
    short sigLength=0;
    s8 data;
    int i, j;
    dev.llsig.a = ETH_PROM_SIG;
    dev.llsig.b = ETH_PROM_SIG;
    sigLength = sizeof(u32) << 1;
    for (i=0,j=0;j<sigLength && i<PROBE_LENGTH+sigLength-1;i++) {
	data = inb(aprom_addr);
	if (dev.Sig[j] == data) {
	    j++;
	} else {
	    if (data == dev.Sig[0]) {
		j=1;
	    } else {
		j=0;
	    }
	}
    }
    return;
}