diff options
author | imp <imp@FreeBSD.org> | 2002-07-22 06:46:10 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2002-07-22 06:46:10 +0000 |
commit | 2442eb4eddf7def948501cf76d5fa2eab08df870 (patch) | |
tree | 6c8157b3de31e1f4ac84cf47d28edb2982fdc1be /sys | |
parent | e73489bbe4deeedc62a5f34ecf84e42439a6dd86 (diff) | |
download | FreeBSD-src-2442eb4eddf7def948501cf76d5fa2eab08df870.zip FreeBSD-src-2442eb4eddf7def948501cf76d5fa2eab08df870.tar.gz |
Copy manufacturer and version string into the kernel, and copy it to
the slot info. This brings OLDCARD's API much closer to NEWCARD and
will allow moving more information into the kernel from pccard.conf
for common drivers (ed).
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pccard/cardinfo.h | 6 | ||||
-rw-r--r-- | sys/pccard/pccard.c | 2 | ||||
-rw-r--r-- | sys/pccard/slot.h | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/sys/pccard/cardinfo.h b/sys/pccard/cardinfo.h index 11bd730..173f27c 100644 --- a/sys/pccard/cardinfo.h +++ b/sys/pccard/cardinfo.h @@ -133,6 +133,8 @@ struct io_desc { /* * Device descriptor for allocation of driver. */ +#define DEV_MISC_LEN 36 +#define DEV_MAX_CIS_LEN 40 struct dev_desc { char name[16]; /* Driver name */ int unit; /* Driver unit number */ @@ -142,7 +144,9 @@ struct dev_desc { int iosize; /* Length of I/O ports */ int irqmask; /* Interrupt number(s) to allocate */ int flags; /* Device flags */ - uint8_t misc[116]; /* For any random info */ + uint8_t misc[DEV_MISC_LEN]; /* For any random info */ + uint8_t manufstr[DEV_MAX_CIS_LEN]; + uint8_t versstr[DEV_MAX_CIS_LEN]; uint32_t manufacturer; /* Manufacturer ID */ uint32_t product; /* Product ID */ uint32_t prodext; /* Product ID (extended) */ diff --git a/sys/pccard/pccard.c b/sys/pccard/pccard.c index 6e51a78..b145317 100644 --- a/sys/pccard/pccard.c +++ b/sys/pccard/pccard.c @@ -224,6 +224,8 @@ allocate_driver(struct slot *slt, struct dev_desc *desc) devi->running = 1; devi->slt = slt; bcopy(desc->misc, devi->misc, sizeof(desc->misc)); + strcpy(devi->manufstr, desc->manufstr); + strcpy(devi->versstr, desc->versstr); devi->manufacturer = desc->manufacturer; devi->product = desc->product; devi->prodext = desc->prodext; diff --git a/sys/pccard/slot.h b/sys/pccard/slot.h index 9f40ae4..f797451 100644 --- a/sys/pccard/slot.h +++ b/sys/pccard/slot.h @@ -88,7 +88,9 @@ struct slot_ctrl { struct pccard_devinfo { uint8_t name[128]; int running; /* Current state of driver */ - uint8_t misc[116]; /* For any random info */ + uint8_t misc[DEV_MISC_LEN]; /* For any random info */ + uint8_t manufstr[DEV_MAX_CIS_LEN]; + uint8_t versstr[DEV_MAX_CIS_LEN]; uint32_t manufacturer; /* Manufacturer ID */ uint32_t product; /* Product ID */ uint32_t prodext; /* Product ID (extended) */ |