diff options
author | imp <imp@FreeBSD.org> | 2005-07-15 01:48:38 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2005-07-15 01:48:38 +0000 |
commit | 301a3b8079a99429448ae57ec51965038c985080 (patch) | |
tree | 42cff675017ea86a8cab4c3f3c1affc6d715267a /sys/dev/ex | |
parent | d5de12e8981d65d7a15e05f61c528baa51812e7f (diff) | |
download | FreeBSD-src-301a3b8079a99429448ae57ec51965038c985080.zip FreeBSD-src-301a3b8079a99429448ae57ec51965038c985080.tar.gz |
Add real support for obtaining the silicom MAC address from the
apporpriate place in the CIS, now that we have the CIS scanning code.
Diffstat (limited to 'sys/dev/ex')
-rw-r--r-- | sys/dev/ex/if_ex_pccard.c | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/sys/dev/ex/if_ex_pccard.c b/sys/dev/ex/if_ex_pccard.c index c41b7e9..5cf31dd 100644 --- a/sys/dev/ex/if_ex_pccard.c +++ b/sys/dev/ex/if_ex_pccard.c @@ -146,55 +146,28 @@ ex_pccard_enet_ok(u_char *enaddr) return (sum != 0); } -#if 0 -#ifdef NETBSD_LIKE static int -ex_pccard_silicom_cb(struct pccard_tuple *tuple, void *arg) +ex_pccard_silicom_cb(const struct pccard_tuple *tuple, void *arg) { u_char *enaddr = arg; + int i; - if (tuple->code != PCMCIA_CISTPL_FUNCE) + if (tuple->code != CISTPL_FUNCE) return (0); if (tuple->length != 15) return (0); - if (CARD_CIS_READ_1(tuple->dev, tuple, 6) != 6) + if (pccard_tuple_read_1(tuple, 6) != 6) return (0); for (i = 0; i < 6; i++) - enaddr[i] = CARD_CIS_READ_1(tuple->dev, tuple, 7 + i); + enaddr[i] = pccard_tuple_read_1(tuple, 7 + i); return (1); } -#endif -#endif static void ex_pccard_get_silicom_mac(device_t dev, u_char *ether_addr) { -#if 0 -#ifdef NETBSD_LIKE - CARD_CIS_SCAN(dev, ex_pccard_silicom_cb, ether_addr); -#endif -#ifdef CS_LIKE - uint8_t buffer[64]; - tuple_t tuple; - int i; - - tuple.TupleData = buffer; - tuple.TupleDataMax = sizeof(buffer); - tuple.TupleOffset = 0; - tuple.DesiredTuple = CISTPL_FUNCE; - tuple.Attributes = TUPLE_RETURN_COMMON; - if (CARD_SERVICE(dev, GetFirstTuple, &tuple) != CS_SUCCESS) - return; - if (CARD_SERVICES(dev, GetTupleData, &tuple) != CS_SUCCESS) - return; - if (tuple.TupleLength != 15) - return; - if (buffer[6] != 6) - return; - for (i = 0; i < 6; i++) - ether_addr[i] = buffer[7 + i); -#endif -#endif + CARD_CIS_SCAN(device_get_parent(dev), ex_pccard_silicom_cb, + ether_addr); } static int |