History log of /pciutils/lib/init.c (Results 1 – 25 of 42)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v3.14.0
# 021d41cf 28-Nov-2024 GuEe-GUI <[email protected]>

Port to RT-Thread Smart DM PCI

Signed-off-by: GuEe-GUI <[email protected]>


Revision tags: v3.13.0, v3.12.0, v3.11.1
# 45152bc3 24-Feb-2024 Martin Mares <[email protected]>

lib/init.c: Fixed a typo causing compilation on Windows to fail

The typo was introduced by merging the AmigaOS back-end.


Revision tags: v3.11.0
# f022f467 18-Feb-2024 Martin Mares <[email protected]>

Location of name cache now follows XDG base dir specification

We also create parent directories of net.cache_name automatically.

Tilde expansion is performed internally and it does not change
user-

Location of name cache now follows XDG base dir specification

We also create parent directories of net.cache_name automatically.

Tilde expansion is performed internally and it does not change
user-specified net.cache_name any longer.

show more ...


# 5b52ae79 22-Jan-2024 Agg242 <[email protected]>

New back-end for AmigaOS on PowerPC


# 61829219 18-Jun-2023 Martin Mares <[email protected]>

Update license comments and added SPDX license identifiers

Previously, the only information about the specific version of GPL
was present in the README and individual source files mentioned only
GPL

Update license comments and added SPDX license identifiers

Previously, the only information about the specific version of GPL
was present in the README and individual source files mentioned only
GPL alone.

Let us update all copyright comments to explicitly say "GPL v2+"
and also include the machine readable SPDX license identifier.

show more ...


Revision tags: v3.10.0
# 2ba0f6f4 29-Jan-2023 Pali Rohár <[email protected]>

libpci: Add PCIe ECAM access method

This is a new direct hardware access method via PCIe ECAM (Enhanced
Configuration Access Mechanism). It is available on all PCIe-compliant
hardware. Requires root

libpci: Add PCIe ECAM access method

This is a new direct hardware access method via PCIe ECAM (Enhanced
Configuration Access Mechanism). It is available on all PCIe-compliant
hardware. Requires root privileges and access to physical memory.

ECAM mapping can be specified manually via a new ecam.addrs parameter or
can be read from ACPI MCFG table. ACPI MCFG table can be located in the
system or read from x86 BIOS memory.

show more ...


# 1249c980 04-Mar-2023 Martin Mares <[email protected]>

Fix bug in previous commit


# ea404c2a 04-Mar-2023 Martin Mares <[email protected]>

win32-cfgmgr32: Clean up initialization


# 848123eb 30-Dec-2022 Pali Rohár <[email protected]>

libpci: win32-cfgmgr32: Add support for accessing config space via other backend

Extend win32-cfgmgr32 backend and add a new option win32.cfgmethod for
specifying other backend for accessing PCI con

libpci: win32-cfgmgr32: Add support for accessing config space via other backend

Extend win32-cfgmgr32 backend and add a new option win32.cfgmethod for
specifying other backend for accessing PCI config space. There are more
config space access methods available on Windows and each is working only
sometimes (either requires special privileges or special setup).

So by default try to choose the first working one via order defined in pci
probe_sequence[] array. If none is available then emulate PCI config space
like before this change.

Function pci_init_v35() is extended and renamed to pci_init_internal() to
optionally do not throw errors and allow to specify one access method which
will be skipped in AUTO mode. This is used to prevent choosing win32-cfgmgr32
as config space access method for win32-cfgmgr32.

show more ...


Revision tags: v3.9.0
# 64d7bab6 18-Nov-2022 Pali Rohár <[email protected]>

libpci: windows: Handle long paths generated by GetModuleFileName()

C function fopen() implemented by msvcrt.dll requires special prefix
"\\\\?\\" for paths longer than 260 bytes. Because GetModuleF

libpci: windows: Handle long paths generated by GetModuleFileName()

C function fopen() implemented by msvcrt.dll requires special prefix
"\\\\?\\" for paths longer than 260 bytes. Because GetModuleFileName()
returns absolute path, it may be longer than 260 bytes. Add fixup to handle
long paths.

show more ...


# 6cf9052e 18-Nov-2022 Pali Rohár <[email protected]>

libpci: windows: Fix path returned by GetModuleFileName()

GetModuleFileName() on Windows 10 has bugs and returns bogus path.
Implement fixups to make path usable for later fopen() call.


# 43fd29c7 18-Nov-2022 Pali Rohár <[email protected]>

libpci: djgpp: Allow to specify empty IDSDIR=

Like for windows builds this will cause to load pci.ids file from the same
directory where is stored application binary. Code is same as for Windows,
ju

libpci: djgpp: Allow to specify empty IDSDIR=

Like for windows builds this will cause to load pci.ids file from the same
directory where is stored application binary. Code is same as for Windows,
just djgpp uses global symbol __dos_argv0 instead of _pgmptr.

Tested with following compile command:
make CROSS_COMPILE=i586-pc-msdosdjgpp- HOST=i586-djgpp ZLIB=no DNS=no IDSDIR=

show more ...


# a7a7aaea 18-Nov-2022 Pali Rohár <[email protected]>

libpci: windows: Fix locating path to pci.ids file for DLL builds

When using shared libpci DLL library, it is expected that pci.ids file is
stored in directory where is also libpci DLL library and n

libpci: windows: Fix locating path to pci.ids file for DLL builds

When using shared libpci DLL library, it is expected that pci.ids file is
stored in directory where is also libpci DLL library and not in directory
where is application executable.

Based on the build mode and compile options, choose the appropriate
function for retrieving path to the libpci DLL library or application
executable. Also pass correct module argument to GetModuleFileName() call.

show more ...


# 03829658 18-Nov-2022 Pali Rohár <[email protected]>

libpci: windows: Fix usage of GetModuleFileName()

Module file name can have arbitrary length despite all MS examples say
about MAX_PATH upper limit. This limit does not apply for example when
execut

libpci: windows: Fix usage of GetModuleFileName()

Module file name can have arbitrary length despite all MS examples say
about MAX_PATH upper limit. This limit does not apply for example when
executable is running from network disk with very long UNC paths or
when using "\\??\\" prefix for specifying executable binary path.

So handle buffer truncatenation by retrying GetModuleFileName() call with
larger buffer.

Fixes loading of pci.ids file when lspci.exe binary is running from network
drive with path longer than 260 bytes.

show more ...


Revision tags: v3.8.0
# e2d9340b 02-Jan-2022 Pali Rohár <[email protected]>

libpci: mmio-ports: Add Extended PCIe Intel Type 1 access method

Extended method allows to access all PCIe registers, including extended
registers starting at 0x100 offset. This method uses 4 reserv

libpci: mmio-ports: Add Extended PCIe Intel Type 1 access method

Extended method allows to access all PCIe registers, including extended
registers starting at 0x100 offset. This method uses 4 reserved buts above
bus bits for PCIe registers. On ARM platforms it is very common for PCIe
controllers. Like standard method, it needs to be properly configured.

show more ...


# aa5a16ef 04-Mar-2022 Pali Rohár <[email protected]>

libpci: Add new windows kldbgdrv.sys implementation

Microsoft Kernel Local Debugging Driver (kldbgdrv.sys) allow access for
userspace processes to the PCI config space. It supports access up to
6553

libpci: Add new windows kldbgdrv.sys implementation

Microsoft Kernel Local Debugging Driver (kldbgdrv.sys) allow access for
userspace processes to the PCI config space. It supports access up to
65536 domains and whole 4096 bytes long extended PCIe config space. Driver
is signed by Microsoft and is available for both 32-bit and 64-bit systems.

Driver is not part of Windows system and has to be installed via WinDbg
installation package. Standalone installers for WinDbg 6.12.2.633 version:
https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools_amd64/dbg_amd64.msi
https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools/dbg_x86.msi

This kldbgdrv.sys API is used by the !pci command of new WinDbg kernel
debugger for displaying PCI config space.

API of this driver is available only for processes with Debug privilege and
only if system was booted with Debugging option.

show more ...


# 0a7350fb 02-Jan-2022 Pali Rohár <[email protected]>

libpci: Add Intel Type 1 implementation for memory mapped systems

Lot of non-x86 platforms also support Intel Type 1 mechanism. x86 IO ports
CF8 and CFC are on these platforms mapped into standard m

libpci: Add Intel Type 1 implementation for memory mapped systems

Lot of non-x86 platforms also support Intel Type 1 mechanism. x86 IO ports
CF8 and CFC are on these platforms mapped into standard memory space.
Address mapping itself is platform or board specific and there is no
default value.

Lot of ARM boards with multiple PCIe controllers are multi-domain and each
PCI domain has its own CF8/CFC (address/data) registers mapped into memory
space.

Add new mmio-conf1 backend which access CF8/CFC ports via MMIO and define
new config option mmio-conf1.addrs which specify list of address/data
register pairs in memory space for each PCI domain. Format of this option
is: 0xaddr1/0xdata1,0xaddr2/0xdata2,...

show more ...


# 2d0af6fc 02-Jan-2022 Pali Rohár <[email protected]>

libpci: Add new windows NT sysdbg implementation

NT SysDbg interface allow access to the PCI config space. Only devices on
the first domain are available and only first 256 bytes of the PCI config
s

libpci: Add new windows NT sysdbg implementation

NT SysDbg interface allow access to the PCI config space. Only devices on
the first domain are available and only first 256 bytes of the PCI config
space can be accessed. Compared to intel-conf1 access, this API is race
free as NT kernel serialize access to PCI I/O ports. This NT SysDbg API is
used by the !pci command of 32-bit WinDbg kernel debugger for displaying
PCI config space. Debug privilege is required to use this NT interface.

show more ...


# 5f93596f 27-Feb-2022 Pali Rohár <[email protected]>

libpci: Always call pci_set_name_list_path() in pci_init_name_list_path()

If pci_init_name_list_path() does not call pci_set_name_list_path() then
a->id_file_name variable is NULL and pci_load_name_

libpci: Always call pci_set_name_list_path() in pci_init_name_list_path()

If pci_init_name_list_path() does not call pci_set_name_list_path() then
a->id_file_name variable is NULL and pci_load_name_list() would crash as it
tries to do fopen(NULL, ...).

If libpci was configured at compile time to use current executable path for
locating pci.ids file and it is not possible to determinate current
executable path then call pci_set_name_list_path() with just filename
without path (this would fallback to the current working directory).

show more ...


# 26c8b543 31-Dec-2021 Pali Rohár <[email protected]>

libpci: Add windows cfgmgr32 implementation

Access via cfgmgr32.dll library allows to list PCI devices and retrieve
their basic properties and system resource configuration. Access is
available to a

libpci: Add windows cfgmgr32 implementation

Access via cfgmgr32.dll library allows to list PCI devices and retrieve
their basic properties and system resource configuration. Access is
available to all users and should not require special privileges, access
tokens, rights or permissions.

This cfgmgr32.dll library does not provide access to PCI config space.

show more ...


# eeef8fed 21-Jan-2022 Martin Mares <[email protected]>

pci.h: The error callback is now declared with PCI_NONRET

Users of the repeatedly complain that the library crashes, which is
usually caused by providing an error hook which returns to the library.

pci.h: The error callback is now declared with PCI_NONRET

Users of the repeatedly complain that the library crashes, which is
usually caused by providing an error hook which returns to the library.
Let's try warning them more explicitly.

show more ...


# 79978004 26-Dec-2021 Martin Mares <[email protected]>

Factored out initialization of name list path


# 2608d8f7 26-Dec-2021 Pali Rohár <[email protected]>

libpci: For PCI_OS_WINDOWS allows to load pci.ids from executable directory

For Windows applications it is common to have all support data files in the
same directory where is stored executable itse

libpci: For PCI_OS_WINDOWS allows to load pci.ids from executable directory

For Windows applications it is common to have all support data files in the
same directory where is stored executable itself, instead of in directory
hardcoded at compile time.

When PCI_PATH_IDS_DIR is set to "." it means that pci.ids file is located
in the current working directory. This is also unsuitable for Windows
command line applications stored in %PATH% because cmd.exe starts in some
default user or system location.

Adds a new option to allow specifying PCI_PATH_IDS_DIR to empty string ""
and for PCI_OS_WINDOWS platform it would mean to locate pci.ids file in the
same directory where is stored currently running executable. On Windows it
is always possible to detected this directory.

show more ...


# b9927f14 26-Dec-2021 Martin Mares <[email protected]>

Fix malloc error handling when pci_access is not fully initialized

There were multiple cases, in which malloc failure was either unchecked,
or a->error was called even though it was NULL.


Revision tags: v3.7.0, v3.6.4, v3.6.3
# 0a913370 30-Nov-2019 Joan Lledó <[email protected]>

New access method: Hurd via RPCs

A new module for the Hurd that accesses PCI bus using available RPCs.


12