From: Martin Mares Date: Sat, 24 Mar 2018 15:34:35 +0000 (+0100) Subject: lspci: Avoid "%1$c" style format strings in HT capability X-Git-Tag: v3.6.0~14 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=0089d489b469e19e615f33cc8485c48e7f7cfebb;p=pciutils.git lspci: Avoid "%1$c" style format strings in HT capability This kind of format strings is not available on some compilers. Also added a test case for the HT capability. --- diff --git a/ls-caps.c b/ls-caps.c index e74d13a..3135224 100644 --- a/ls-caps.c +++ b/ls-caps.c @@ -231,7 +231,6 @@ cap_ht_pri(struct device *d, int where, int cmd) { u16 lctr0, lcnf0, lctr1, lcnf1, eh; u8 rid, lfrer0, lfcap0, ftr, lfrer1, lfcap1, mbu, mlu, bn; - char *fmt; printf("HyperTransport: Slave or Primary Interface\n"); if (verbose < 2) @@ -243,22 +242,17 @@ cap_ht_pri(struct device *d, int where, int cmd) if (rid < 0x22 && rid > 0x11) printf("\t\t!!! Possibly incomplete decoding\n"); - if (rid >= 0x22) - fmt = "\t\tCommand: BaseUnitID=%u UnitCnt=%u MastHost%c DefDir%c DUL%c\n"; - else - fmt = "\t\tCommand: BaseUnitID=%u UnitCnt=%u MastHost%c DefDir%c\n"; - printf(fmt, + printf("\t\tCommand: BaseUnitID=%u UnitCnt=%u MastHost%c DefDir%c", (cmd & PCI_HT_PRI_CMD_BUID), (cmd & PCI_HT_PRI_CMD_UC) >> 5, FLAG(cmd, PCI_HT_PRI_CMD_MH), - FLAG(cmd, PCI_HT_PRI_CMD_DD), - FLAG(cmd, PCI_HT_PRI_CMD_DUL)); - lctr0 = get_conf_word(d, where + PCI_HT_PRI_LCTR0); + FLAG(cmd, PCI_HT_PRI_CMD_DD)); if (rid >= 0x22) - fmt = "\t\tLink Control 0: CFlE%c CST%c CFE%c > 8, - FLAG(lctr0, PCI_HT_LCTR_ISOCEN), - FLAG(lctr0, PCI_HT_LCTR_LSEN), - FLAG(lctr0, PCI_HT_LCTR_EXTCTL), - FLAG(lctr0, PCI_HT_LCTR_64B)); - lcnf0 = get_conf_word(d, where + PCI_HT_PRI_LCNF0); + (lctr0 & PCI_HT_LCTR_CRCERR) >> 8); if (rid >= 0x22) - fmt = "\t\tLink Config 0: MLWI=%1$s DwFcIn%5$c MLWO=%2$s DwFcOut%6$c LWI=%3$s DwFcInEn%7$c LWO=%4$s DwFcOutEn%8$c\n"; + printf(" IsocEn%c LSEn%c ExtCTL%c 64b%c", + FLAG(lctr0, PCI_HT_LCTR_ISOCEN), + FLAG(lctr0, PCI_HT_LCTR_LSEN), + FLAG(lctr0, PCI_HT_LCTR_EXTCTL), + FLAG(lctr0, PCI_HT_LCTR_64B)); + printf("\n"); + + lcnf0 = get_conf_word(d, where + PCI_HT_PRI_LCNF0); + if (rid < 0x22) + printf("\t\tLink Config 0: MLWI=%s MLWO=%s LWI=%s LWO=%s\n", + ht_link_width(lcnf0 & PCI_HT_LCNF_MLWI), + ht_link_width((lcnf0 & PCI_HT_LCNF_MLWO) >> 4), + ht_link_width((lcnf0 & PCI_HT_LCNF_LWI) >> 8), + ht_link_width((lcnf0 & PCI_HT_LCNF_LWO) >> 12)); else - fmt = "\t\tLink Config 0: MLWI=%s MLWO=%s LWI=%s LWO=%s\n"; - printf(fmt, - ht_link_width(lcnf0 & PCI_HT_LCNF_MLWI), - ht_link_width((lcnf0 & PCI_HT_LCNF_MLWO) >> 4), - ht_link_width((lcnf0 & PCI_HT_LCNF_LWI) >> 8), - ht_link_width((lcnf0 & PCI_HT_LCNF_LWO) >> 12), - FLAG(lcnf0, PCI_HT_LCNF_DFI), - FLAG(lcnf0, PCI_HT_LCNF_DFO), - FLAG(lcnf0, PCI_HT_LCNF_DFIE), - FLAG(lcnf0, PCI_HT_LCNF_DFOE)); + printf("\t\tLink Config 0: MLWI=%s DwFcIn%c MLWO=%s DwFcOut%c LWI=%s DwFcInEn%c LWO=%s DwFcOutEn%c\n", + ht_link_width(lcnf0 & PCI_HT_LCNF_MLWI), + FLAG(lcnf0, PCI_HT_LCNF_DFI), + ht_link_width((lcnf0 & PCI_HT_LCNF_MLWO) >> 4), + FLAG(lcnf0, PCI_HT_LCNF_DFO), + ht_link_width((lcnf0 & PCI_HT_LCNF_LWI) >> 8), + FLAG(lcnf0, PCI_HT_LCNF_DFIE), + ht_link_width((lcnf0 & PCI_HT_LCNF_LWO) >> 12), + FLAG(lcnf0, PCI_HT_LCNF_DFOE)); + lctr1 = get_conf_word(d, where + PCI_HT_PRI_LCTR1); - if (rid >= 0x22) - fmt = "\t\tLink Control 1: CFlE%c CST%c CFE%c > 8, + (lctr1 & PCI_HT_LCTR_CRCERR) >> 8); + if (rid >= 0x22) + printf(" IsocEn%c LSEn%c ExtCTL%c 64b%c", FLAG(lctr1, PCI_HT_LCTR_ISOCEN), FLAG(lctr1, PCI_HT_LCTR_LSEN), FLAG(lctr1, PCI_HT_LCTR_EXTCTL), FLAG(lctr1, PCI_HT_LCTR_64B)); + printf("\n"); + lcnf1 = get_conf_word(d, where + PCI_HT_PRI_LCNF1); - if (rid >= 0x22) - fmt = "\t\tLink Config 1: MLWI=%1$s DwFcIn%5$c MLWO=%2$s DwFcOut%6$c LWI=%3$s DwFcInEn%7$c LWO=%4$s DwFcOutEn%8$c\n"; + if (rid < 0x22) + printf("\t\tLink Config 1: MLWI=%s MLWO=%s LWI=%s LWO=%s\n", + ht_link_width(lcnf1 & PCI_HT_LCNF_MLWI), + ht_link_width((lcnf1 & PCI_HT_LCNF_MLWO) >> 4), + ht_link_width((lcnf1 & PCI_HT_LCNF_LWI) >> 8), + ht_link_width((lcnf1 & PCI_HT_LCNF_LWO) >> 12)); else - fmt = "\t\tLink Config 1: MLWI=%s MLWO=%s LWI=%s LWO=%s\n"; - printf(fmt, - ht_link_width(lcnf1 & PCI_HT_LCNF_MLWI), - ht_link_width((lcnf1 & PCI_HT_LCNF_MLWO) >> 4), - ht_link_width((lcnf1 & PCI_HT_LCNF_LWI) >> 8), - ht_link_width((lcnf1 & PCI_HT_LCNF_LWO) >> 12), - FLAG(lcnf1, PCI_HT_LCNF_DFI), - FLAG(lcnf1, PCI_HT_LCNF_DFO), - FLAG(lcnf1, PCI_HT_LCNF_DFIE), - FLAG(lcnf1, PCI_HT_LCNF_DFOE)); + printf("\t\tLink Config 1: MLWI=%s DwFcIn%c MLWO=%s DwFcOut%c LWI=%s DwFcInEn%c LWO=%s DwFcOutEn%c\n", + ht_link_width(lcnf1 & PCI_HT_LCNF_MLWI), + FLAG(lcnf1, PCI_HT_LCNF_DFI), + ht_link_width((lcnf1 & PCI_HT_LCNF_MLWO) >> 4), + FLAG(lcnf1, PCI_HT_LCNF_DFO), + ht_link_width((lcnf1 & PCI_HT_LCNF_LWI) >> 8), + FLAG(lcnf1, PCI_HT_LCNF_DFIE), + ht_link_width((lcnf1 & PCI_HT_LCNF_LWO) >> 12), + FLAG(lcnf1, PCI_HT_LCNF_DFOE)); + printf("\t\tRevision ID: %u.%02u\n", (rid & PCI_HT_RID_MAJ) >> 5, (rid & PCI_HT_RID_MIN)); if (rid < 0x22) return; + lfrer0 = get_conf_byte(d, where + PCI_HT_PRI_LFRER0); printf("\t\tLink Frequency 0: %s\n", ht_link_freq(lfrer0 & PCI_HT_LFRER_FREQ)); printf("\t\tLink Error 0: TAbort- SERR- TAbort- SERR-