32 u8 dcb_ver, dcb_hdr, dcb_cnt, dcb_len;
35 dcb =
dcb_table(bios, &dcb_ver, &dcb_hdr, &dcb_cnt, &dcb_len);
36 if (!dcb || (dcb_ver != 0x30 && dcb_ver != 0x40))
39 extdev = nv_ro16(bios, dcb + 18);
43 *ver = nv_ro08(bios, extdev + 0);
44 *hdr = nv_ro08(bios, extdev + 1);
45 *cnt = nv_ro08(bios, extdev + 2);
46 *len = nv_ro08(bios, extdev + 3);
55 u16 extdev = extdev_table(bios, ver, &hdr, len, &cnt);
56 if (extdev && idx < cnt)
57 return extdev + idx * *len;
65 entry->
type = nv_ro08(bios, offset + 0);
66 entry->
addr = nv_ro08(bios, offset + 1);
67 entry->
bus = (nv_ro08(bios, offset + 2) >> 4) & 1;
80 extdev_parse_entry(bios, entry, func);
94 extdev_parse_entry(bios, entry, func);
95 if (func->
type == type)