forked from pool/pciutils
Accepting request 971819 from home:polslinux:branches:Base:System
- Update to 3.8.0: * Filters can now match devices based on partially specified class code and also on the programming interface. * Reporting of link speeds, power limits, and virtual function tags has been updated to the current PCIe specification. * We decode the Data Object Exchange capability. * Bus mapping mode works in non-zero domains. * pci_fill_info() can fetch more fields: bridge bases, programming interface, revision, subsystem vendor and device ID, OS driver, and also parent bridge. Internally, the implementation was rewritten, significantly reducing the number of corner cases to be handled. * If the configuration space is not readable for some reason (e.g., the cfgmgr32 back-end, but also badly implemented sleep mode of some devices), lspci prints only information provided by the OS. * The Hurd back-end was greatly improved thanks to Joan Lledó. * Various minor bug fixes and improvements. * As usually, updated pci.ids to the current snapshot of the database. - Rebase pciutils-3.1.9_pkgconfig.patch - Rebase pciutils-ocloexec.patch - Rebase pciutils-endianh.patch - Drop pciutils-add-decode-support-for-RCECs.patch OBS-URL: https://build.opensuse.org/request/show/971819 OBS-URL: https://build.opensuse.org/package/show/Base:System/pciutils?expand=0&rev=82
This commit is contained in:
parent
3440e81f9e
commit
697120b3c8
@ -1,12 +1,10 @@
|
||||
Index: pciutils-3.6.4/lib/libpci.pc.in
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/libpci.pc.in
|
||||
+++ pciutils-3.6.4/lib/libpci.pc.in
|
||||
@@ -6,6 +6,5 @@ idsdir=@IDSDIR@
|
||||
--- pciutils-3.8.0/lib/libpci.pc.in.orig 2022-04-21 09:11:03.305072096 +0200
|
||||
+++ pciutils-3.8.0/lib/libpci.pc.in 2022-04-21 09:13:06.166040080 +0200
|
||||
@@ -6,6 +6,5 @@
|
||||
Name: libpci
|
||||
Description: libpci
|
||||
Version: @VERSION@
|
||||
-Libs: -L${libdir} -lpci
|
||||
+Libs: -lpci @LDLIBS@
|
||||
Libs.private: @LDLIBS@
|
||||
Libs.private: @LDLIBS@ @WITH_LIBS@
|
||||
-Cflags: -I${includedir}
|
||||
|
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEVVj5OZzXg2hQVTxuwo54R+1w+C0FAl7S2+8ACgkQwo54R+1w
|
||||
+C22/g/+J/u3PELnEe24ys2Wd6Qh3zRc6/llfRpNppgrhZFtSS3pePKKkruC9wKX
|
||||
NlF/Uhox9WU1IfxZQeRFsXfvu/Jx/wu+OcVIYpvh4UAZN6DEEmo6crzCbywh90mI
|
||||
9HB/SUlpR+30t+NBYMbB8Z9Q0z3FvWA/RAInPLO5TtHFD7ZS5nZbD5sy/+hVda8f
|
||||
AMRlG9LZGdh21VliICAejH5HadX+q/Vzb4MP+ptAr2EOrYOkFh2D9RKqqWdwdlxz
|
||||
30/BZRv8b5dHZzNVLZmorlfLSkwTJvjdJYMBbrnoaLV6hMcM6gwzqRQ7iilUQwIi
|
||||
EOGh6zlSFiap3V9+gJ1kZWuPTFS/ciKscj8h0sAd8UPt473cp/M9Ch7d76kLn4ma
|
||||
098ZtcSGev3SWM2BfOVg6EEmQfItMzimnwxN6NmRcJkWjH+vrMlCtP2ZmH8NpHEr
|
||||
RORG8VUGQI3oIairB4l80dNgFBV2iAe2+Zqj04Lgr6pkzrj1CZaX5fqLWFVafbnJ
|
||||
uxDjDRCmzAbFQplmF78IUvzSFwgC42nvistyO9AmQdatAK6wiGLZvCzlxb8ysmml
|
||||
qCglfXkD43uVG4QP5vES0gLJQ1rgPijAnjucewWnu9Yt8R3gDCjdt+prZVntbnCw
|
||||
5OJypK205gsY8CqO5uWhwK+1ohXrX2I11tUk5zxTOogyt5IljLg=
|
||||
=hasF
|
||||
-----END PGP SIGNATURE-----
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9d40b97be8b6a2cdf96aead5a61881d1f7e4e0da9544a9bac4fba1ae9dcd40eb
|
||||
size 371612
|
16
pciutils-3.8.0.tar.sign
Normal file
16
pciutils-3.8.0.tar.sign
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEVVj5OZzXg2hQVTxuwo54R+1w+C0FAmJdmFYACgkQwo54R+1w
|
||||
+C2wbhAAmru84gBjG2ioLoBvvnXV0xhF9mQSUjNCOW0+p6dtRGAs2PdSL67lhD14
|
||||
TwmiERpfEtawpX0C1NG5r2DYqROF8M0kodq8ediqnWZ8ivlctSoNB88lFPHArP3l
|
||||
eqHDxUq6j66vOMODrlGthpcFBxwaR0OoJFOuszcclKUCRFPrgGNX12WOiB1PrfZz
|
||||
elts9xp/wTeyw6CQjMA4Gm8fry3upsiP/9auu5XsLgt7YTXY+E4bqu302ImOsMKJ
|
||||
JEWj0R8F4TOP9Ca7pgKVArvYCeowwkYFXdwY6KQ1wd1hWRFkl1LrqFY829T+LC/b
|
||||
vFTNWmC2QEBuLbPSjSeeKuIbyxUACxmKwEw2jDWjKDXOOOogvDsUnig8HF4Gto41
|
||||
LECEiEGzB8a0vkl4NAI+QwyPOCW5KdNm8udCYH1/vBXVL2jhoixYg9DuioBIJkwz
|
||||
zqfpF3uPqqOB72iOY1Z7EeUTGb0Z+KeZ0qKX03WH2bHpT1Wdm9f2Gsa1T36FS5eC
|
||||
oZANyo5NSU+3lojAUNxYvUST0HjanuyuhuBeneZQFv9gOvMmXUAf+9oQaGPa899t
|
||||
FD1Z9MCbn3hcSkvhxgpsUtY0FusFAcKSA4Px5hpAcewwMdVyZ/bPl3nT+R3uR2ng
|
||||
O2qPT1A5PHF3Mv1VVJW8S+TGvZcW+G0VJ9Xmm7YXbAXzOEd9gGo=
|
||||
=y4kb
|
||||
-----END PGP SIGNATURE-----
|
3
pciutils-3.8.0.tar.xz
Normal file
3
pciutils-3.8.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:91edbd0429a84705c9ad156d4ff38ccc724d41ea54c4c5b88e38e996f8a34f05
|
||||
size 410144
|
@ -1,422 +0,0 @@
|
||||
diff --git a/lib/header.h b/lib/header.h
|
||||
index 472816e..57a9343 100644
|
||||
--- a/lib/header.h
|
||||
+++ b/lib/header.h
|
||||
@@ -219,7 +219,7 @@
|
||||
#define PCI_EXT_CAP_ID_PB 0x04 /* Power Budgeting */
|
||||
#define PCI_EXT_CAP_ID_RCLINK 0x05 /* Root Complex Link Declaration */
|
||||
#define PCI_EXT_CAP_ID_RCILINK 0x06 /* Root Complex Internal Link Declaration */
|
||||
-#define PCI_EXT_CAP_ID_RCECOLL 0x07 /* Root Complex Event Collector */
|
||||
+#define PCI_EXT_CAP_ID_RCEC 0x07 /* Root Complex Event Collector */
|
||||
#define PCI_EXT_CAP_ID_MFVC 0x08 /* Multi-Function Virtual Channel */
|
||||
#define PCI_EXT_CAP_ID_VC2 0x09 /* Virtual Channel (2nd ID) */
|
||||
#define PCI_EXT_CAP_ID_RCRB 0x0a /* Root Complex Register Block */
|
||||
@@ -1048,6 +1048,12 @@
|
||||
#define PCI_RCLINK_LINK_ADDR 8 /* Link Entry: Address (64-bit) */
|
||||
#define PCI_RCLINK_LINK_SIZE 16 /* Link Entry: sizeof */
|
||||
|
||||
+/* Root Complex Event Collector Endpoint Association */
|
||||
+#define PCI_RCEC_EP_CAP_VER(reg) (((reg) >> 16) & 0xf)
|
||||
+#define PCI_RCEC_BUSN_REG_VER 0x02 /* as per PCIe sec 7.9.10.1 */
|
||||
+#define PCI_RCEC_RCIEP_BMAP 0x0004 /* as per PCIe sec 7.9.10.2 */
|
||||
+#define PCI_RCEC_BUSN_REG 0x0008 /* as per PCIe sec 7.9.10.3 */
|
||||
+
|
||||
/* PCIe Vendor-Specific Capability */
|
||||
#define PCI_EVNDR_HEADER 4 /* Vendor-Specific Header */
|
||||
#define PCI_EVNDR_REGISTERS 8 /* Vendor-Specific Registers */
|
||||
diff --git a/ls-ecaps.c b/ls-ecaps.c
|
||||
index e71209e..99c55ff 100644
|
||||
--- a/ls-ecaps.c
|
||||
+++ b/ls-ecaps.c
|
||||
@@ -634,6 +634,61 @@ cap_rclink(struct device *d, int where)
|
||||
}
|
||||
}
|
||||
|
||||
+static void
|
||||
+cap_rcec(struct device *d, int where)
|
||||
+{
|
||||
+ printf("Root Complex Event Collector Endpoint Association\n");
|
||||
+ if (verbose < 2)
|
||||
+ return;
|
||||
+
|
||||
+ if (!config_fetch(d, where, 12))
|
||||
+ return;
|
||||
+
|
||||
+ u32 hdr = get_conf_long(d, where);
|
||||
+ byte cap_ver = PCI_RCEC_EP_CAP_VER(hdr);
|
||||
+ u32 bmap = get_conf_long(d, where + PCI_RCEC_RCIEP_BMAP);
|
||||
+ printf("\t\tRCiEPBitmap: ");
|
||||
+ if (bmap)
|
||||
+ {
|
||||
+ int prevmatched=0;
|
||||
+ int adjcount=0;
|
||||
+ int prevdev=0;
|
||||
+ printf("RCiEP at Device(s):");
|
||||
+ for (int dev=0; dev < 32; dev++)
|
||||
+ {
|
||||
+ if (BITS(bmap, dev, 1))
|
||||
+ {
|
||||
+ if (!adjcount)
|
||||
+ printf("%s %u", (prevmatched) ? "," : "", dev);
|
||||
+ adjcount++;
|
||||
+ prevdev=dev;
|
||||
+ prevmatched=1;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if (adjcount > 1)
|
||||
+ printf("-%u", prevdev);
|
||||
+ adjcount=0;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ printf("%s", (verbose > 2) ? "00000000 [none]" : "[none]");
|
||||
+ printf("\n");
|
||||
+
|
||||
+ if (cap_ver < PCI_RCEC_BUSN_REG_VER)
|
||||
+ return;
|
||||
+
|
||||
+ u32 busn = get_conf_long(d, where + PCI_RCEC_BUSN_REG);
|
||||
+ u8 lastbusn = BITS(busn, 16, 8);
|
||||
+ u8 nextbusn = BITS(busn, 8, 8);
|
||||
+
|
||||
+ if ((lastbusn == 0x00) && (nextbusn == 0xff))
|
||||
+ printf("\t\tAssociatedBusNumbers: %s\n", (verbose > 2) ? "ff-00 [none]" : "[none]");
|
||||
+ else
|
||||
+ printf("\t\tAssociatedBusNumbers: %02x-%02x\n", nextbusn, lastbusn );
|
||||
+}
|
||||
+
|
||||
static void
|
||||
cap_dvsec_cxl(struct device *d, int where)
|
||||
{
|
||||
@@ -991,8 +1046,8 @@ show_ext_caps(struct device *d, int type)
|
||||
case PCI_EXT_CAP_ID_RCILINK:
|
||||
printf("Root Complex Internal Link <?>\n");
|
||||
break;
|
||||
- case PCI_EXT_CAP_ID_RCECOLL:
|
||||
- printf("Root Complex Event Collector <?>\n");
|
||||
+ case PCI_EXT_CAP_ID_RCEC:
|
||||
+ cap_rcec(d, where);
|
||||
break;
|
||||
case PCI_EXT_CAP_ID_MFVC:
|
||||
printf("Multi-Function Virtual Channel <?>\n");
|
||||
diff --git a/setpci.c b/setpci.c
|
||||
index 90ca726..2cb70fa 100644
|
||||
--- a/setpci.c
|
||||
+++ b/setpci.c
|
||||
@@ -350,7 +350,7 @@ static const struct reg_name pci_reg_names[] = {
|
||||
{ 0x20004, 0, 0, "ECAP_PB" },
|
||||
{ 0x20005, 0, 0, "ECAP_RCLINK" },
|
||||
{ 0x20006, 0, 0, "ECAP_RCILINK" },
|
||||
- { 0x20007, 0, 0, "ECAP_RCECOLL" },
|
||||
+ { 0x20007, 0, 0, "ECAP_RCEC" },
|
||||
{ 0x20008, 0, 0, "ECAP_MFVC" },
|
||||
{ 0x20009, 0, 0, "ECAP_VC2" },
|
||||
{ 0x2000a, 0, 0, "ECAP_RBCB" },
|
||||
diff --git a/tests/cap-rcec b/tests/cap-rcec
|
||||
new file mode 100644
|
||||
index 0000000..836d9a1
|
||||
--- /dev/null
|
||||
+++ b/tests/cap-rcec
|
||||
@@ -0,0 +1,299 @@
|
||||
+6a:00.4 Generic system peripheral [0807]: Intel Corporation Device 0b23
|
||||
+ Subsystem: Intel Corporation Device 0000
|
||||
+ Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
|
||||
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
|
||||
+ Interrupt: pin A routed to IRQ 255
|
||||
+ NUMA node: 0
|
||||
+ Capabilities: [40] Express (v2) Root Complex Event Collector, MSI 00
|
||||
+ DevCap: MaxPayload 512 bytes, PhantFunc 0
|
||||
+ ExtTag- RBE-
|
||||
+ DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq-
|
||||
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
|
||||
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
|
||||
+ DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
|
||||
+ RootCap: CRSVisible-
|
||||
+ RootCtl: ErrCorrectable+ ErrNon-Fatal+ ErrFatal+ PMEIntEna- CRSVisible-
|
||||
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
|
||||
+ DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR-
|
||||
+ 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
|
||||
+ EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
|
||||
+ FRS-
|
||||
+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
|
||||
+ Capabilities: [80] Power Management version 3
|
||||
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
|
||||
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
|
||||
+ Capabilities: [90] MSI: Enable- Count=1/1 Maskable+ 64bit-
|
||||
+ Address: 00000000 Data: 0000
|
||||
+ Masking: 00000000 Pending: 00000000
|
||||
+ Capabilities: [100 v1] Advanced Error Reporting
|
||||
+ UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
|
||||
+ UEMsk: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
|
||||
+ UESvrt: DLP+ SDES- TLP+ FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
|
||||
+ CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
|
||||
+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
|
||||
+ AERCap: First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
|
||||
+ MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
|
||||
+ HeaderLog: 00000000 00000000 00000000 00000000
|
||||
+ RootCmd: CERptEn- NFERptEn- FERptEn-
|
||||
+ RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd-
|
||||
+ FirstFatal- NonFatalMsg- FatalMsg- IntMsg 0
|
||||
+ ErrorSrc: ERR_COR: 0000 ERR_FATAL/NONFATAL: 0000
|
||||
+ Capabilities: [160 v2] Root Complex Event Collector Endpoint Association
|
||||
+ RCiEPBitmap: RCiEP at Device(s): 1, 6, 8-10, 12, 15
|
||||
+ AssociatedBusNumbers: 02-08
|
||||
+00: 86 80 23 0b 00 01 10 00 00 00 07 08 00 00 00 00
|
||||
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 00 00
|
||||
+30: 00 00 00 00 40 00 00 00 00 00 00 00 ff 01 00 00
|
||||
+40: 10 80 a2 00 02 00 00 00 07 00 00 00 00 00 00 00
|
||||
+50: 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00
|
||||
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+80: 01 90 03 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+90: 05 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d0: 31 6a 08 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+100: 01 00 01 16 00 00 00 00 20 00 10 00 10 30 46 00
|
||||
+110: 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00
|
||||
+120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+160: 07 00 02 00 00 00 00 00 00 ff 00 00 00 00 00 00
|
||||
+170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+260: 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00
|
||||
+270: 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
|
||||
+280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+2a0: 00 00 00 00 00 00 00 00 20 00 18 00 20 00 18 00
|
||||
+2b0: 20 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+2f0: 00 20 00 00 00 20 00 00 00 20 00 00 00 e0 00 00
|
||||
+300: 00 e0 00 00 00 e0 00 00 00 e0 00 00 00 e0 00 00
|
||||
+310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+600: 44 00 00 00 91 00 00 00 00 00 00 00 00 00 00 00
|
||||
+610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+680: 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
+ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
|
@ -1,13 +1,16 @@
|
||||
Index: pciutils-3.6.4/lib/sysdep.h
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/sysdep.h
|
||||
+++ pciutils-3.6.4/lib/sysdep.h
|
||||
@@ -20,93 +20,8 @@
|
||||
--- pciutils-3.8.0/lib/sysdep.h.orig 2022-04-21 09:44:42.293087550 +0200
|
||||
+++ pciutils-3.8.0/lib/sysdep.h 2022-04-21 09:48:40.958962299 +0200
|
||||
@@ -20,97 +20,10 @@
|
||||
typedef u8 byte;
|
||||
typedef u16 word;
|
||||
|
||||
-#ifdef PCI_OS_WINDOWS
|
||||
-#define strcasecmp strcmpi
|
||||
-#define strcasecmp _strcmpi
|
||||
-#define strncasecmp _strnicmp
|
||||
-#if defined(_MSC_VER) && _MSC_VER < 1900
|
||||
-#define snprintf _snprintf
|
||||
-#define vsnprintf _vsnprintf
|
||||
-#endif
|
||||
-#endif
|
||||
-
|
||||
-#ifdef PCI_HAVE_LINUX_BYTEORDER_H
|
||||
@ -52,7 +55,6 @@ Index: pciutils-3.6.4/lib/sysdep.h
|
||||
- #define BIG_ENDIAN 4321
|
||||
- #define LITTLE_ENDIAN 1234
|
||||
- #define BYTE_ORDER LITTLE_ENDIAN
|
||||
- #define snprintf _snprintf
|
||||
-#endif
|
||||
-#endif
|
||||
-
|
||||
@ -80,7 +82,7 @@ Index: pciutils-3.6.4/lib/sysdep.h
|
||||
-{
|
||||
- return (w << 8) | ((w >> 8) & 0xff);
|
||||
-}
|
||||
-
|
||||
|
||||
-static inline u32 swab32(u32 w)
|
||||
-{
|
||||
- return ((w & 0xff000000) >> 24) |
|
||||
@ -94,9 +96,9 @@ Index: pciutils-3.6.4/lib/sysdep.h
|
||||
-#define le16_to_cpu(x) (x)
|
||||
-#define le32_to_cpu(x) (x)
|
||||
-#endif
|
||||
-
|
||||
-#endif
|
||||
+#define cpu_to_le16 htole16
|
||||
+#define cpu_to_le32 htole32
|
||||
+#define le16_to_cpu le16toh
|
||||
+#define le32_to_cpu le32toh
|
||||
|
||||
-#endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: pciutils-3.6.4/lib/dump.c
|
||||
Index: pciutils-3.8.0/lib/dump.c
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/dump.c
|
||||
+++ pciutils-3.6.4/lib/dump.c
|
||||
--- pciutils-3.8.0.orig/lib/dump.c
|
||||
+++ pciutils-3.8.0/lib/dump.c
|
||||
@@ -64,7 +64,7 @@ dump_init(struct pci_access *a)
|
||||
|
||||
if (!name)
|
||||
@ -11,10 +11,10 @@ Index: pciutils-3.6.4/lib/dump.c
|
||||
a->error("dump: Cannot open %s: %s", name, strerror(errno));
|
||||
while (fgets(buf, sizeof(buf)-1, f))
|
||||
{
|
||||
Index: pciutils-3.6.4/lib/names-cache.c
|
||||
Index: pciutils-3.8.0/lib/names-cache.c
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/names-cache.c
|
||||
+++ pciutils-3.6.4/lib/names-cache.c
|
||||
--- pciutils-3.8.0.orig/lib/names-cache.c
|
||||
+++ pciutils-3.8.0/lib/names-cache.c
|
||||
@@ -63,7 +63,7 @@ pci_id_cache_load(struct pci_access *a,
|
||||
return 0;
|
||||
}
|
||||
@ -33,10 +33,10 @@ Index: pciutils-3.6.4/lib/names-cache.c
|
||||
if (!f)
|
||||
{
|
||||
a->warning("Cannot write to %s: %s", name, strerror(errno));
|
||||
Index: pciutils-3.6.4/lib/names-parse.c
|
||||
Index: pciutils-3.8.0/lib/names-parse.c
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/names-parse.c
|
||||
+++ pciutils-3.6.4/lib/names-parse.c
|
||||
--- pciutils-3.8.0.orig/lib/names-parse.c
|
||||
+++ pciutils-3.8.0/lib/names-parse.c
|
||||
@@ -52,7 +52,7 @@ static pci_file pci_open(struct pci_acce
|
||||
typedef FILE * pci_file;
|
||||
#define pci_gets(f, l, s) fgets(l, s, f)
|
||||
@ -46,11 +46,11 @@ Index: pciutils-3.6.4/lib/names-parse.c
|
||||
#define pci_close(f) fclose(f)
|
||||
#define PCI_ERROR(f, err) if (!err && ferror(f)) err = "I/O error";
|
||||
#endif
|
||||
Index: pciutils-3.6.4/lib/proc.c
|
||||
Index: pciutils-3.8.0/lib/proc.c
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/proc.c
|
||||
+++ pciutils-3.6.4/lib/proc.c
|
||||
@@ -62,7 +62,7 @@ proc_scan(struct pci_access *a)
|
||||
--- pciutils-3.8.0.orig/lib/proc.c
|
||||
+++ pciutils-3.8.0/lib/proc.c
|
||||
@@ -63,7 +63,7 @@ proc_scan(struct pci_access *a)
|
||||
|
||||
if (snprintf(buf, sizeof(buf), "%s/devices", pci_get_param(a, "proc.path")) == sizeof(buf))
|
||||
a->error("File name too long");
|
||||
@ -59,7 +59,7 @@ Index: pciutils-3.6.4/lib/proc.c
|
||||
if (!f)
|
||||
a->error("Cannot open %s", buf);
|
||||
while (fgets(buf, sizeof(buf)-1, f))
|
||||
@@ -129,7 +129,7 @@ proc_setup(struct pci_dev *d, int rw)
|
||||
@@ -147,7 +147,7 @@ proc_setup(struct pci_dev *d, int rw)
|
||||
if (e < 0 || e >= (int) sizeof(buf))
|
||||
a->error("File name too long");
|
||||
a->fd_rw = a->writeable || rw;
|
||||
@ -68,7 +68,7 @@ Index: pciutils-3.6.4/lib/proc.c
|
||||
if (a->fd < 0)
|
||||
{
|
||||
e = snprintf(buf, sizeof(buf), "%s/%04x:%02x/%02x.%d",
|
||||
@@ -137,7 +137,7 @@ proc_setup(struct pci_dev *d, int rw)
|
||||
@@ -155,7 +155,7 @@ proc_setup(struct pci_dev *d, int rw)
|
||||
d->domain, d->bus, d->dev, d->func);
|
||||
if (e < 0 || e >= (int) sizeof(buf))
|
||||
a->error("File name too long");
|
||||
@ -77,10 +77,10 @@ Index: pciutils-3.6.4/lib/proc.c
|
||||
}
|
||||
if (a->fd < 0)
|
||||
a->warning("Cannot open %s", buf);
|
||||
Index: pciutils-3.6.4/lib/sysfs.c
|
||||
Index: pciutils-3.8.0/lib/sysfs.c
|
||||
===================================================================
|
||||
--- pciutils-3.6.4.orig/lib/sysfs.c
|
||||
+++ pciutils-3.6.4/lib/sysfs.c
|
||||
--- pciutils-3.8.0.orig/lib/sysfs.c
|
||||
+++ pciutils-3.8.0/lib/sysfs.c
|
||||
@@ -96,7 +96,7 @@ sysfs_get_string(struct pci_dev *d, char
|
||||
void (*warn)(char *msg, ...) = (mandatory ? a->error : a->warning);
|
||||
|
||||
@ -90,16 +90,16 @@ Index: pciutils-3.6.4/lib/sysfs.c
|
||||
if (fd < 0)
|
||||
{
|
||||
if (mandatory || errno != ENOENT)
|
||||
@@ -157,7 +157,7 @@ sysfs_get_resources(struct pci_dev *d)
|
||||
int i;
|
||||
@@ -160,7 +160,7 @@ sysfs_get_resources(struct pci_dev *d)
|
||||
|
||||
have_bar_bases = have_rom_base = have_bridge_bases = 0;
|
||||
sysfs_obj_name(d, "resource", namebuf);
|
||||
- file = fopen(namebuf, "r");
|
||||
+ file = fopen(namebuf, "re");
|
||||
if (!file)
|
||||
a->error("Cannot open %s: %s", namebuf, strerror(errno));
|
||||
for (i = 0; i < 7; i++)
|
||||
@@ -271,7 +271,7 @@ sysfs_fill_slots(struct pci_access *a)
|
||||
for (i = 0; i < 7+6+4+1; i++)
|
||||
@@ -300,7 +300,7 @@ sysfs_fill_slots(struct pci_access *a)
|
||||
n = snprintf(namebuf, OBJNAMELEN, "%s/%s/%s", dirname, entry->d_name, "address");
|
||||
if (n < 0 || n >= OBJNAMELEN)
|
||||
a->error("File name too long");
|
||||
@ -108,7 +108,7 @@ Index: pciutils-3.6.4/lib/sysfs.c
|
||||
/*
|
||||
* Old versions of Linux had a fakephp which didn't have an 'address'
|
||||
* file. There's no useful information to be gleaned from these
|
||||
@@ -367,7 +367,7 @@ sysfs_setup(struct pci_dev *d, int inten
|
||||
@@ -503,7 +503,7 @@ sysfs_setup(struct pci_dev *d, int inten
|
||||
if (a->fd_vpd < 0)
|
||||
{
|
||||
sysfs_obj_name(d, "vpd", namebuf);
|
||||
@ -117,7 +117,7 @@ Index: pciutils-3.6.4/lib/sysfs.c
|
||||
/* No warning on error; vpd may be absent or accessible only to root */
|
||||
}
|
||||
return a->fd_vpd;
|
||||
@@ -377,7 +377,7 @@ sysfs_setup(struct pci_dev *d, int inten
|
||||
@@ -513,7 +513,7 @@ sysfs_setup(struct pci_dev *d, int inten
|
||||
{
|
||||
sysfs_obj_name(d, "config", namebuf);
|
||||
a->fd_rw = a->writeable || intent == SETUP_WRITE_CONFIG;
|
||||
|
@ -1,3 +1,28 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 21 07:08:48 UTC 2022 - Paolo Stivanin <info@paolostivanin.com>
|
||||
|
||||
- Update to 3.8.0:
|
||||
* Filters can now match devices based on partially specified
|
||||
class code and also on the programming interface.
|
||||
* Reporting of link speeds, power limits, and virtual function tags
|
||||
has been updated to the current PCIe specification.
|
||||
* We decode the Data Object Exchange capability.
|
||||
* Bus mapping mode works in non-zero domains.
|
||||
* pci_fill_info() can fetch more fields: bridge bases, programming
|
||||
interface, revision, subsystem vendor and device ID, OS driver,
|
||||
and also parent bridge. Internally, the implementation was rewritten,
|
||||
significantly reducing the number of corner cases to be handled.
|
||||
* If the configuration space is not readable for some reason
|
||||
(e.g., the cfgmgr32 back-end, but also badly implemented sleep mode
|
||||
of some devices), lspci prints only information provided by the OS.
|
||||
* The Hurd back-end was greatly improved thanks to Joan Lledó.
|
||||
* Various minor bug fixes and improvements.
|
||||
* As usually, updated pci.ids to the current snapshot of the database.
|
||||
- Rebase pciutils-3.1.9_pkgconfig.patch
|
||||
- Rebase pciutils-ocloexec.patch
|
||||
- Rebase pciutils-endianh.patch
|
||||
- Drop pciutils-add-decode-support-for-RCECs.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 23 14:56:10 UTC 2022 - Callum Farmer <gmbr3@opensuse.org>
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.12 (GNU/Linux)
|
||||
|
||||
mQINBE6NbZkBEADDNlHfaQgjgydzX3KxB7u5ZNiMFQ9fMxs7alOUVuRJHzIMLVFT
|
||||
d+4ShrXsFOWrq3LQTKcS03YfRbxgBqEubeuqKo1MebyxtnTtvTddfq2gMC7QBwHn
|
||||
@ -24,45 +23,42 @@ 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
|
||||
@ -85,5 +81,5 @@ Z3b6KsJxv1VStE3jx7luzOh84uU8GInTYUw6oeY4BWhR79QfDO0wcw04QW6OF42E
|
||||
ea5qeE00WOoW9wEXmwOqcxM87QHKRrCVmNuPY62af8YeYpI93wxoNj6vxmVVNm2D
|
||||
IWikke8BplaBXCvPyWZUI1oebOEh2QCJXDtqSt8z1OPCBq9JwSrfCjWTEsnZURS3
|
||||
+wy3OGqhxFrvSisPD49xVMZ8J5n0SYISHA==
|
||||
=GmC5
|
||||
=yy6O
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package pciutils
|
||||
#
|
||||
# Copyright (c) 2021 SUSE LLC
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
%define lname libpci3
|
||||
Name: pciutils
|
||||
Version: 3.7.0
|
||||
Version: 3.8.0
|
||||
Release: 0
|
||||
Summary: PCI utilities for the Linux Kernel
|
||||
License: GPL-2.0-or-later
|
||||
@ -28,12 +28,18 @@ Source: https://www.kernel.org/pub/software/utils/%{name}/%{name}-%{vers
|
||||
Source1: https://www.kernel.org/pub/software/utils/%{name}/%{name}-%{version}.tar.sign
|
||||
Source2: baselibs.conf
|
||||
# https://mj.ucw.cz/pgp.html
|
||||
Source3: https://mj.ucw.cz/pgpkey.txt#/%{name}.keyring
|
||||
Patch1: pciutils-3.1.9_pkgconfig.patch
|
||||
#Source3: https://mj.ucw.cz/pgpkey.txt#/%{name}.keyring
|
||||
# I checked with Martin, and this is the email I got:
|
||||
# BEGIN QUOTE
|
||||
# This is because the kernel.org archive does not have my new key yet,
|
||||
# so it refuses releases signed with the old one.
|
||||
# I plan to fix it and re-sign the release, but it will take some time.
|
||||
# END QUOTE
|
||||
# so I took the correct key from https://keys.openpgp.org/search?q=5558F9399CD7836850553C6EC28E7847ED70F82D
|
||||
Source3: %{name}.keyring
|
||||
Patch0: pciutils-3.1.9_pkgconfig.patch
|
||||
Patch1: pciutils-endianh.patch
|
||||
Patch2: pciutils-ocloexec.patch
|
||||
Patch3: pciutils-endianh.patch
|
||||
# https://github.com/pciutils/pciutils/commit/e12bd01eea67ca8cf539263124843ba281eb6ecc
|
||||
Patch4: pciutils-add-decode-support-for-RCECs.patch
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(libkmod)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
|
Loading…
x
Reference in New Issue
Block a user