summaryrefslogtreecommitdiffstats
path: root/sys/dev/ex
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2005-07-15 01:48:38 +0000
committerimp <imp@FreeBSD.org>2005-07-15 01:48:38 +0000
commit301a3b8079a99429448ae57ec51965038c985080 (patch)
tree42cff675017ea86a8cab4c3f3c1affc6d715267a /sys/dev/ex
parentd5de12e8981d65d7a15e05f61c528baa51812e7f (diff)
downloadFreeBSD-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.c41
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
OpenPOWER on IntegriCloud