diff options
author | John Martin <John.M.Martin@Oracle.COM> | 2013-07-20 15:49:05 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2013-07-20 15:53:08 -0700 |
commit | bdcb46d33c6514278d2209fd00ed58c580da5ff3 (patch) | |
tree | c3a2ca0aa325443d96906171d2a3d62394698c63 | |
parent | f806b95d029d36c977befed4096734f6461efa08 (diff) | |
download | libpciaccess-bdcb46d33c6514278d2209fd00ed58c580da5ff3.tar.gz libpciaccess-bdcb46d33c6514278d2209fd00ed58c580da5ff3.tar.bz2 libpciaccess-bdcb46d33c6514278d2209fd00ed58c580da5ff3.zip |
Fix Sun bug #7035791: scanpci should report 64 bit registers
On a system which has allocated 64-bit device addresses scanpci -v
will show entries such as:
[...]
BASE0 0xce000000 SIZE 16777216 MEM
BASE1 0x00000fc1f8000000 SIZE 134217728 MEM64 PREFETCHABLE
BASE3 0x00000fc1f6000000 SIZE 33554432 MEM64 PREFETCHABLE
[...]
instead of:
[...]
BASE0 0xce000000 SIZE 16777216 MEM
BASE1 0xf8000000 SIZE 134217728 MEM PREFETCHABLE
BASE3 0xf6000000 SIZE 33554432 MEM PREFETCHABLE
[...]
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r-- | scanpci/scanpci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/scanpci/scanpci.c b/scanpci/scanpci.c index a427692..2f86833 100644 --- a/scanpci/scanpci.c +++ b/scanpci/scanpci.c @@ -152,11 +152,13 @@ print_pci_device( struct pci_device * dev, int verbose ) pci_device_probe( dev ); for ( i = 0 ; i < 6 ; i++ ) { if ( dev->regions[i].base_addr != 0 ) { - printf( " BASE%u 0x%08"PRIxPTR" SIZE %zu %s", + printf( " BASE%u 0x%0*"PRIxPTR" SIZE %zu %s", i, + dev->regions[i].is_64 ? 16 : 8, (intptr_t) dev->regions[i].base_addr, (size_t) dev->regions[i].size, - (dev->regions[i].is_IO) ? "I/O" : "MEM" ); + (dev->regions[i].is_IO) ? "I/O" : + ((dev->regions[i].is_64) ? "MEM64" : "MEM")); if ( ! dev->regions[i].is_IO ) { if ( dev->regions[i].is_prefetchable ) { |