summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pccard/pccardd/readcis.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pccard/pccardd/readcis.c')
-rw-r--r--usr.sbin/pccard/pccardd/readcis.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/usr.sbin/pccard/pccardd/readcis.c b/usr.sbin/pccard/pccardd/readcis.c
index 6fd7c7b..490909f 100644
--- a/usr.sbin/pccard/pccardd/readcis.c
+++ b/usr.sbin/pccard/pccardd/readcis.c
@@ -47,6 +47,7 @@ static void cis_info(struct cis *, unsigned char *, int);
static void device_desc(unsigned char *, int, struct dev_mem *);
static void config_map(struct cis *, unsigned char *, int);
static void cis_config(struct cis *, unsigned char *, int);
+static void cis_func_id(struct cis *, unsigned char *, int);
static struct tuple_list *read_one_tuplelist(int, int, off_t);
static struct tuple_list *read_tuples(int);
static struct tuple *find_tuple_in_list(struct tuple_list *, unsigned char);
@@ -123,6 +124,10 @@ readcis(int fd)
case CIS_CONFIG: /* 0x1B */
cis_config(cp, tp->data, tp->length);
break;
+ case CIS_FUNC_ID: /* 0x21 */
+ cis_func_id(cp, tp->data, tp->length);
+ break;
+
}
}
return (cp);
@@ -181,6 +186,15 @@ cis_info(struct cis *cp, unsigned char *p, int len)
while (*p++);
strncpy(cp->add_info2, p, CIS_MAXSTR - 1);
}
+/*
+ * Fills in CIS function ID.
+ */
+static void
+cis_func_id(struct cis *cp, unsigned char *p, int len)
+{
+ cp->func_id1 = *p++;
+ cp->func_id2 = *p++;
+}
/*
* device_desc - decode device descriptor.
OpenPOWER on IntegriCloud