vpd_rd
if (vpd_rd(handle, ep) != 0x55 ||
vpd_rd(handle, ep + 1) != 0xaa) {
vpd_rd(handle, ep), vpd_rd(handle, ep + 1)));
ep = base + ((vpd_rd(handle, ep) << 8) |
(vpd_rd(handle, ep + 1)));
if ((vpd_rd(handle, ep) != 0x50) ||
(vpd_rd(handle, ep + 1) != 0x43) ||
(vpd_rd(handle, ep + 2) != 0x49) ||
(vpd_rd(handle, ep + 3) != 0x52)) {
if (vpd_rd(handle, ep + 20) != 0x01) {
ep = base + ((vpd_rd(handle, base + 2)) * 512);
base = base + (vpd_rd(handle, ep + 8) |
(vpd_rd(handle, ep + 9) << 8));
if (!base || (vpd_rd(handle, base + 0) != 0x82)) {
i = (vpd_rd(handle, base + 1) |
(vpd_rd(handle, base + 2) << 8)) + 3;
if (vpd_rd(handle, base + i) != 0x90) { /* no vpd found */
vpd_rd(handle, base + i), i));
len = vpd_rd(handle, base + i + 1) |
(vpd_rd(handle, base + i + 2) << 8);
int klen = vpd_rd(handle, ep + 2);
if (vpd_rd(handle, ep) == 'M') {
type = vpd_rd(handle, ep + 3);
dlen = vpd_rd(handle, ep + 4);
} else if (vpd_rd(handle, ep) == 'I') {
type = vpd_rd(handle, ep + 3);
dlen = vpd_rd(handle, ep + 4);
dlen = vpd_rd(handle, ep + 4);
if (vpd_rd(handle, ep + i) != prop[i])
val[i] = vpd_rd(handle, ep + i);