Lines Matching +full:1 +full:p
9 * 1. Redistributions of source code must retain the above copyright
47 static void dump_other_cond(u_char *p, int len);
48 static void dump_device_desc(u_char *p, int len, const char *type);
49 static void dump_info_v1(u_char *p, int len);
50 static void dump_longlink_mfc(u_char *p, int len);
51 static void dump_bar(u_char *p, int len);
52 static void dump_device_geo(u_char *p, int len);
53 static void dump_func_id(u_char *p);
54 static void dump_serial_ext(u_char *p, int len);
55 static void dump_disk_ext(u_char *p, int len);
56 static void dump_network_ext(u_char *p, int len);
57 static void dump_info_v2(u_char *p, int len);
58 static void dump_org(u_char *p, int len);
66 u_char *p; in dumpcis() local
73 p = tp->data; in dumpcis()
79 printf(" %02x", p[i]); in dumpcis()
82 p += 16; in dumpcis()
181 u_char *p = tp->data, x; in dump_config_map() local
184 rlen = (p[0] & 3) + 1; in dump_config_map()
186 mlen = ((p[0] >> 2) & 3) + 1; in dump_config_map()
192 rlen, parse_num(rlen | 0x10, p + 2, &p, 0), p[1]); in dump_config_map()
195 for (i = 0; i < mlen; i++, p++) { in dump_config_map()
196 for (x = 0x1; x; x <<= 1) in dump_config_map()
197 printf("%c", x & *p ? 'X' : '-'); in dump_config_map()
216 print_pwr_desc(u_char *p) in print_pwr_desc() argument
218 int len = 1, i; in print_pwr_desc()
226 "Max current average over 1 second", in print_pwr_desc()
232 {"10uV", "100uV", "1mV", "10mV", "100mV", "1V", "10V", "100V"}; in print_pwr_desc()
234 {"10nA", "1uA", "10uA", "100uA", "1mA", "10mA", "100mA", "1A"}; in print_pwr_desc()
236 {"1", "1.2", "1.3", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", in print_pwr_desc()
239 mask = *p++; in print_pwr_desc()
242 if (mask & (1 << i)) { in print_pwr_desc()
248 mant[(*p >> 3) & 0xF], in print_pwr_desc()
249 expp[*p & 7]); in print_pwr_desc()
250 while (*p & 0x80) { in print_pwr_desc()
252 p++; in print_pwr_desc()
253 printf(", ext = 0x%x", *p); in print_pwr_desc()
256 p++; in print_pwr_desc()
272 {"1 ns", "10 ns", "100 ns", "1 us", "10 us", "100 us", in print_ext_speed()
273 "1 ms", "10 ms"}; in print_ext_speed()
275 {"None", "10", "100", "1,000", "10,000", "100,000", in print_ext_speed()
276 "1,000,000", "10,000,000"}; in print_ext_speed()
288 print_num(int sz, const char *fmt, u_char *p, int ofs) in print_num() argument
294 case 1: in print_num()
296 printf(fmt, *p + ofs); in print_num()
297 return 1; in print_num()
300 printf(fmt, tpl16(p) + ofs); in print_num()
303 printf(fmt, tpl24(p) + ofs); in print_num()
307 printf(fmt, tpl32(p) + ofs); in print_num()
310 errx(1, "print_num(0x%x): Illegal arguments", sz); in print_num()
319 print_io_map(u_char *p, u_char *q) in print_io_map() argument
324 if (q <= p) in print_io_map()
326 if (CIS_IO_ADDR(*p)) /* I/O address line */ in print_io_map()
328 CIS_IO_ADDR(*p)); in print_io_map()
333 switch (*p & (CIS_IO_8BIT | CIS_IO_16BIT)) { in print_io_map()
347 if (*p++ & CIS_IO_RANGE) { in print_io_map()
348 if (q <= p) in print_io_map()
350 c = *p++; in print_io_map()
359 if (q - p < j) in print_io_map()
361 printf("\t\tI/O address # %d: ", i + 1); in print_io_map()
363 p += print_num(CIS_IO_ADSZ(c), in print_io_map()
364 "block start = 0x%x", p, 0); in print_io_map()
366 p += print_num(CIS_IO_BLKSZ(c), in print_io_map()
367 " block length = 0x%x", p, 1); in print_io_map()
371 return p; in print_io_map()
375 return p; in print_io_map()
383 print_irq_map(u_char *p, u_char *q) in print_irq_map() argument
388 if (q <= p) in print_irq_map()
392 if (*p & CIS_IRQ_LEVEL) { /* Level triggered interrupts */ in print_irq_map()
396 if (*p & CIS_IRQ_PULSE) { /* Pulse triggered requests */ in print_irq_map()
400 if (*p & CIS_IRQ_SHARING) /* Interrupt sharing */ in print_irq_map()
405 if (*p & CIS_IRQ_MASK) { in print_irq_map()
406 if (q - p < 3) in print_irq_map()
408 i = tpl16(p + 1); /* IRQ mask */ in print_irq_map()
410 if (*p & 1) in print_irq_map()
412 if (*p & 0x2) in print_irq_map()
414 if (*p & 0x4) in print_irq_map()
416 if (*p & 0x8) in print_irq_map()
419 if (i & (1 << j)) in print_irq_map()
422 p += 3; in print_irq_map()
424 printf("\t\tIRQ level = %d\n", CIS_IRQ_IRQN(*p)); in print_irq_map()
425 p++; in print_irq_map()
427 return p; in print_irq_map()
431 return p; in print_irq_map()
439 print_mem_map(u_char feat, u_char *p, u_char *q) in print_mem_map() argument
449 if (q - p < 2) in print_mem_map()
451 printf("\tMemory space length = 0x%x\n", tpl16(p)); in print_mem_map()
452 p += 2; in print_mem_map()
455 if (q - p < 4) in print_mem_map()
458 tpl16(p + 2), tpl16(p)); in print_mem_map()
459 p += 4; in print_mem_map()
462 if (q <= p) in print_mem_map()
464 c = *p++; in print_mem_map()
471 if (q - p < j) in print_mem_map()
473 printf("\tMemory descriptor %d\n\t\t", i + 1); in print_mem_map()
475 p += print_num(CIS_MEM_LENSZ(c) | 0x10, in print_mem_map()
476 " blk length = 0x%x00", p, 0); in print_mem_map()
478 p += print_num(CIS_MEM_ADDRSZ(c) | 0x10, in print_mem_map()
479 " card addr = 0x%x00", p, 0); in print_mem_map()
481 p += print_num(CIS_MEM_ADDRSZ(c) | 0x10, in print_mem_map()
482 " host addr = 0x%x00", p, 0); in print_mem_map()
487 return p; in print_mem_map()
491 return p; in print_mem_map()
501 u_char *p, *q, feat; in dump_cis_config() local
505 p = tp->data; in dump_cis_config()
506 q = p + tp->length; in dump_cis_config()
507 printf("\tConfig index = 0x%x%s\n", *p & 0x3F, in dump_cis_config()
508 *p & 0x40 ? "(default)" : ""); in dump_cis_config()
511 if (tp->code == CIS_CONFIG && (*p & 0x80)) { in dump_cis_config()
512 p++; in dump_cis_config()
513 printf("\tInterface byte = 0x%x ", *p); in dump_cis_config()
514 switch (*p & 0xF) { /* Interface type */ in dump_cis_config()
521 case 1: in dump_cis_config()
533 if (*p & 0x10) { /* Battery voltage detect */ in dump_cis_config()
537 if (*p & 0x20) { /* Write protect active */ in dump_cis_config()
541 if (*p & 0x40) { /* RdyBsy active bit */ in dump_cis_config()
545 if (*p & 0x80) /* Wait signal required */ in dump_cis_config()
551 p++; in dump_cis_config()
552 feat = *p++; in dump_cis_config()
558 case 1: in dump_cis_config()
560 p += print_pwr_desc(p); in dump_cis_config()
564 p += print_pwr_desc(p); in dump_cis_config()
566 p += print_pwr_desc(p); in dump_cis_config()
570 p += print_pwr_desc(p); in dump_cis_config()
572 p += print_pwr_desc(p); in dump_cis_config()
574 p += print_pwr_desc(p); in dump_cis_config()
581 i = *p++; in dump_cis_config()
585 print_ext_speed(*p++, j); in dump_cis_config()
591 print_ext_speed(*p++, j); in dump_cis_config()
597 print_ext_speed(*p++, j); in dump_cis_config()
605 p = print_io_map(p, q); in dump_cis_config()
609 if (*p & (1 << i)) in dump_cis_config()
612 p++; in dump_cis_config()
618 p = print_irq_map(p, q); in dump_cis_config()
623 p = print_mem_map(feat, p, q); in dump_cis_config()
627 if (*p & (1 << i)) in dump_cis_config()
630 p++; in dump_cis_config()
637 printf("\tMax twin cards = %d\n", *p & 7); in dump_cis_config()
639 (*p & 8) ? " (Audio-BVD2)" : "", in dump_cis_config()
640 (*p & 0x10) ? " (Read-only)" : "", in dump_cis_config()
641 (*p & 0x20) ? " (Power down supported)" : ""); in dump_cis_config()
642 if (*p++ & 0x80) { in dump_cis_config()
643 printf(" (Ext byte = 0x%x)", *p); in dump_cis_config()
644 p++; in dump_cis_config()
651 (*p & 1) ? " (Master)" : "", in dump_cis_config()
652 (*p & 2) ? " (Invalidate)" : "", in dump_cis_config()
653 (*p & 4) ? " (VGA palette)" : "", in dump_cis_config()
654 (*p & 8) ? " (Parity)" : "", in dump_cis_config()
655 (*p & 0x10) ? " (Wait)" : "", in dump_cis_config()
656 (*p & 0x20) ? " (Serr)" : "", in dump_cis_config()
657 (*p & 0x40) ? " (Fast back)" : ""); in dump_cis_config()
658 if (*p++ & 0x80) { in dump_cis_config()
660 (*p & 1) ? " (Binary audio)" : "", in dump_cis_config()
661 (*p & 2) ? " (pwm audio)" : ""); in dump_cis_config()
662 p++; in dump_cis_config()
674 dump_other_cond(u_char *p, int len) in dump_other_cond() argument
676 if (p[0] && len > 0) { in dump_other_cond()
678 if (p[0] & 1) in dump_other_cond()
680 if (p[0] & 2) in dump_other_cond()
682 if (p[0] & 0x80) in dump_other_cond()
693 dump_device_desc(u_char *p, int len, const char *type) in dump_device_desc() argument
708 while (*p != 0xFF && len > 0) { in dump_device_desc()
711 x = *p++; in dump_device_desc()
719 if (*p) { in dump_device_desc()
721 print_ext_speed(*p, 0); in dump_device_desc()
722 while (*p & 0x80) { in dump_device_desc()
723 p++; in dump_device_desc()
727 p++; in dump_device_desc()
731 un_name[*p & 7], (*p >> 3) + 1); in dump_device_desc()
732 p++; in dump_device_desc()
737 * CIS_INFO_V1: Print version-1 info
740 dump_info_v1(u_char *p, int len) in dump_info_v1() argument
743 printf("\tWrong length for version-1 info tuple\n"); in dump_info_v1()
746 printf("\tVersion = %d.%d", p[0], p[1]); in dump_info_v1()
747 p += 2; in dump_info_v1()
749 if (len > 1 && *p != 0xff) { in dump_info_v1()
750 printf(", Manuf = [%s]", p); in dump_info_v1()
751 while (*p++ && --len > 0); in dump_info_v1()
753 if (len > 1 && *p != 0xff) { in dump_info_v1()
754 printf(", card vers = [%s]", p); in dump_info_v1()
755 while (*p++ && --len > 0); in dump_info_v1()
757 printf("\n\tWrong length for version-1 info tuple\n"); in dump_info_v1()
761 if (len > 1 && *p != 0xff) { in dump_info_v1()
762 printf("\tAddit. info = [%.*s]", len, p); in dump_info_v1()
763 while (*p++ && --len > 0); in dump_info_v1()
764 if (len > 1 && *p != 0xff) in dump_info_v1()
765 printf(",[%.*s]", len, p); in dump_info_v1()
774 dump_func_id(u_char *p) in dump_func_id() argument
790 (*p <= 9) ? id[*p] : "Unknown function", in dump_func_id()
791 (p[1] & 1) ? " - POST initialize" : "", in dump_func_id()
792 (p[1] & 2) ? " - Card has ROM" : ""); in dump_func_id()
800 dump_serial_ext(u_char *p, int len) in dump_serial_ext() argument
807 if (len < 1) in dump_serial_ext()
809 switch (p[0]) { in dump_serial_ext()
814 printf("\tSerial interface extension:%s\n", type[*p]); in dump_serial_ext()
817 switch (p[1] & 0x1F) { in dump_serial_ext()
824 case 1: in dump_serial_ext()
832 (p[2] & 1) ? "Space," : "", in dump_serial_ext()
833 (p[2] & 2) ? "Mark," : "", in dump_serial_ext()
834 (p[2] & 4) ? "Odd," : "", in dump_serial_ext()
835 (p[2] & 8) ? "Even" : ""); in dump_serial_ext()
837 (p[3] & 1) ? "5bit," : "", in dump_serial_ext()
838 (p[3] & 2) ? "6bit," : "", in dump_serial_ext()
839 (p[3] & 4) ? "7bit," : "", in dump_serial_ext()
840 (p[3] & 8) ? "8bit," : "", in dump_serial_ext()
841 (p[3] & 0x10) ? "1bit," : "", in dump_serial_ext()
842 (p[3] & 0x20) ? "1.5bit," : "", in dump_serial_ext()
843 (p[3] & 0x40) ? "2bit" : ""); in dump_serial_ext()
845 case 1: /* Serial */ in dump_serial_ext()
849 printf("\t%s interface capabilities:\n", type[*p]); in dump_serial_ext()
859 printf("\tFax%d/modem services available:\n", *p >> 4); in dump_serial_ext()
875 dump_disk_ext(u_char *p, int len) in dump_disk_ext() argument
877 if (len < 1) in dump_disk_ext()
879 switch (p[0]) { in dump_disk_ext()
880 case 1: /* IDE interface */ in dump_disk_ext()
884 (p[1] & 1) ? "IDE" : "Undefined"); in dump_disk_ext()
891 (p[1] & 0x04) ? "Silicon" : "Rotating", in dump_disk_ext()
892 (p[1] & 0x08) ? "Unique, " : "", in dump_disk_ext()
893 (p[1] & 0x10) ? "Dual" : "Single"); in dump_disk_ext()
894 if (p[2] & 0x7f) in dump_disk_ext()
896 (p[2] & 0x01) ? "Sleep, " : "", in dump_disk_ext()
897 (p[2] & 0x02) ? "Standby, " : "", in dump_disk_ext()
898 (p[2] & 0x04) ? "Idle, " : "", in dump_disk_ext()
899 (p[2] & 0x08) ? "Low power, " : "", in dump_disk_ext()
900 (p[2] & 0x10) ? "Reg inhibit, " : "", in dump_disk_ext()
901 (p[2] & 0x20) ? "Index, " : "", in dump_disk_ext()
902 (p[2] & 0x40) ? "Iois16" : ""); in dump_disk_ext()
926 dump_network_ext(u_char *p, int len) in dump_network_ext() argument
939 if (len < 1) in dump_network_ext()
941 switch (p[0]) { in dump_network_ext()
942 case 1: /* Network technology */ in dump_network_ext()
945 printf("\tNetwork technology: %s\n", tech[p[1] & 7]); in dump_network_ext()
951 print_speed(tpl32(p + 1)); in dump_network_ext()
957 if (p[1] <= 10) in dump_network_ext()
958 i = p[1]; in dump_network_ext()
962 if (len <= 2 || len < p[1] + 2) in dump_network_ext()
965 for (i = 0; i < p[1]; i++) in dump_network_ext()
966 printf(" %02x", p[i + 2]); in dump_network_ext()
973 (p[1] == 0) ? "open" : "closed"); in dump_network_ext()
985 dump_longlink_mfc(u_char *p, int len) in dump_longlink_mfc() argument
987 u_int i, n = *p++; in dump_longlink_mfc()
996 i, (*p ? "common" : "attribute"), tpl32(p + 1)); in dump_longlink_mfc()
997 p += 5; in dump_longlink_mfc()
1007 dump_device_geo(u_char *p, int len) in dump_device_geo() argument
1012 p[0], 1 << (p[1] - 1), in dump_device_geo()
1013 1 << (p[2] - 1), 1 << (p[3] - 1), in dump_device_geo()
1014 1 << (p[4] - 1), 1 << (p[5] - 1)); in dump_device_geo()
1023 dump_info_v2(u_char *p, int len) in dump_info_v2() argument
1030 p[0], p[1], tpl16(p + 2)); in dump_info_v2()
1032 p[6], p[7], p[8]); in dump_info_v2()
1033 p += 9; in dump_info_v2()
1035 if (len <= 1 || *p == 0xff) in dump_info_v2()
1037 printf("\tVendor = [%.*s]", len, p); in dump_info_v2()
1038 while (*p++ && --len > 0); in dump_info_v2()
1039 if (len > 1 && *p != 0xff) in dump_info_v2()
1040 printf(", info = [%.*s]", len, p); in dump_info_v2()
1048 dump_org(u_char *p, int len) in dump_org() argument
1050 if (len < 1) { in dump_org()
1054 switch (*p) { in dump_org()
1058 case 1: in dump_org()
1065 if (*p < 0x80) in dump_org()
1071 printf(" [%.*s]\n", len - 1, p + 1); in dump_org()
1089 dump_bar(u_char *p, int len) in dump_bar() argument
1095 printf("\tBAR %d: size = ", *p & 7); in dump_bar()
1096 print_size(tpl32(p + 2)); in dump_bar()
1098 (*p & 0x10) ? "I/O" : "Memory", in dump_bar()
1099 (*p & 0x20) ? ", Prefetch" : "", in dump_bar()
1100 (*p & 0x40) ? ", Cacheable" : "", in dump_bar()
1101 (*p & 0x80) ? ", <1Mb" : ""); in dump_bar()