| 6f7640b8 | 23-Jun-2025 |
Rong Tao <[email protected]> |
header.h: Fix type 1 header comment
Should be 0x35-0x37 is reserved.
Signed-off-by: Rong Tao <[email protected]> |
| 6f6d842e | 21-Jun-2025 |
Martin Mares <[email protected]> |
Released as v3.14.0 |
| de4cfd13 | 21-Jun-2025 |
Pali <[email protected]> |
libpci: djgpp: Handle Windows NTVDM zero error codes
Windows NTVDM DPMI host clears the AX register for unsupported DPMI calls. So handle zero error code as ENOSYS instead of default case EACCES. |
| 9611db3e | 28-Feb-2025 |
Paul Cassidy <[email protected]> |
Flit Mode and Device 3 Capability |
| fca6726e | 11-Jun-2025 |
Martin Mares <[email protected]> |
header.h: Classes and capabilities from PCI Code and ID Assignment rev 1.18 |
| 021d41cf | 28-Nov-2024 |
GuEe-GUI <[email protected]> |
Port to RT-Thread Smart DM PCI
Signed-off-by: GuEe-GUI <[email protected]> |
| 8eee6d97 | 18-Jan-2025 |
Pali Rohár <[email protected]> |
libpci: win32-kldbg: Implement registration driver from non-native process
It is common that 32-bit application is running on 64-bit host system, or nowadays also that 64-bit AMD64 application is ru
libpci: win32-kldbg: Implement registration driver from non-native process
It is common that 32-bit application is running on 64-bit host system, or nowadays also that 64-bit AMD64 application is running on ARM64 system.
For all these cases the win32-kldbg.c code horrible fails with just generic error message when trying to register kldbgdrv.sys driver.
Add code which detects machine type of running process, machine type of kldbgdrv.sys driver and machine type of the host system. If machine type of driver and system machines then allow to register driver. Otherwise print debug verbose message why it is not possible to use kldbgdrv.sys driver from kd.exe/windbg.exe binary. This could allow to debug issues via command lspci -G why win32-kldbg refused to load driver from windbg.exe binary.
At the same time relax checks in win32_check_driver() to not depend on the constants related to process type as process architecture is not relevant here. Important is always only driver and native system architecture, process may be running under WoW64 (e.g. i386 process or AMD64 system).
show more ...
|
| e15e6840 | 18-Jan-2025 |
Pali Rohár <[email protected]> |
libpci: win32-kldbg: Fix calling IOCTL_KLDBG from 32-bit process on 64-bit system
32-bit process on 64-bit system needs to pass all pointers in 64-bit format for IOCTL_KLDBG call.
So for 32-bit bui
libpci: win32-kldbg: Fix calling IOCTL_KLDBG from 32-bit process on 64-bit system
32-bit process on 64-bit system needs to pass all pointers in 64-bit format for IOCTL_KLDBG call.
So for 32-bit builds (determined by not defined _WIN64 macro) define new SYSDBG_BUS_DATA64 and KLDBG64 structures with u64 type for pointer members. Compiler will automatically align all structure members and inserts padding between members as needed, in the same way as for 64-bit builds. Due to alignment restrictions, adding just one dummy 32-bit member after each pointer member does not work.
32-bit code then needs to figure out if the host system is 32-bit or 64-bit and choose which structure (process native or 64-bit) needs to be passed to the IOCTL_KLDBG call for successful execution. This is determined by the win32_is_32bit_on_64bit_system() helper function.
With this change 32-bit i386 lspci.exe binary is working fine on 64-bit AMD64 system and via win32-kldbg can access PCIe config space if the AMD64 kldbgdrv.sys driver is registered in the host system.
show more ...
|
| c8647861 | 20-Sep-2024 |
Pali Rohár <[email protected]> |
libpci: win32-cfgmgr32: Improve parsing of driver path
Remove NT prefix "\\??\\" prefix only for drive letters when converting it to Win32 path. And convert unhandled absolute NT path to Win32 path
libpci: win32-cfgmgr32: Improve parsing of driver path
Remove NT prefix "\\??\\" prefix only for drive letters when converting it to Win32 path. And convert unhandled absolute NT path to Win32 path via "GLOBALROOT" symlink (which points to NT root path) available in Win32 "\\\\?\\" path. With this change libpci's driver path on windows should be always valid Win32 path.
show more ...
|
| b357c876 | 05-Apr-2024 |
Pali Rohár <[email protected]> |
libpci: win32-cfgmgr32: Define error messages for all CR_* error constants |
| 25d75c66 | 18-Jan-2025 |
Pali Rohár <[email protected]> |
windows: Fix declaration of GetSystemFirmwareTable function pointer
Function pointer attributes have to be specified on the left side of the *. |
| c281601a | 11-Jan-2025 |
Pali Rohár <[email protected]> |
windows: Update comment about RtlNtStatusToDosError() side effect |
| ea02a2ff | 04-Dec-2024 |
Pali Rohár <[email protected]> |
windows: Check for SizeOfOptionalHeader before dereferencing OptionalHeader
offsetof(IMAGE_OPTIONAL_HEADER, DataDirectory) is the minimal size of variable length OptionalHeader (IMAGE_OPTIONAL_HEADE
windows: Check for SizeOfOptionalHeader before dereferencing OptionalHeader
offsetof(IMAGE_OPTIONAL_HEADER, DataDirectory) is the minimal size of variable length OptionalHeader (IMAGE_OPTIONAL_HEADER) structure.
show more ...
|
| 38bd3ca2 | 21-Nov-2024 |
Pali Rohár <[email protected]> |
windows: Improve win32_change_error_mode()
Attempt to do two other thread safe methods before doing fallback to thread unsafe SetErrorMode() method. |
| 76c06ea6 | 21-Nov-2024 |
Pali Rohár <[email protected]> |
windows: Do not manually load ntdll.dll library
Per Windows Internals, Part 1, Image Loader section, the ntdll.dll library is always loaded into every process on all NT systems.
So remove code whic
windows: Do not manually load ntdll.dll library
Per Windows Internals, Part 1, Image Loader section, the ntdll.dll library is always loaded into every process on all NT systems.
So remove code which dynamically loads ntdll.dll library via LoadLibrary() function and remove also code which changes error reporting mode (used just for LoadLibrary) as both are not needed.
Also Microsoft C/C++ compilers optimize EXE applications in a way which expects that the ntdll.dll library is loaded as the first module into the process before the main EXE module itself.
show more ...
|
| 39147c10 | 21-Nov-2024 |
Pali Rohár <[email protected]> |
windows: Do not cast FARPROC to LPVOID and then to some function pointer
FARPROC is function pointer type intptr_t(__stdcall*)() and LPVOID is data pointer type void*. Casting from function pointer
windows: Do not cast FARPROC to LPVOID and then to some function pointer
FARPROC is function pointer type intptr_t(__stdcall*)() and LPVOID is data pointer type void*. Casting from function pointer to data pointer and back is undefined in C, and moreover in all cases it is not needed. In all cases it is just needed to cast FARPROC function pointer type to some specific function pointer type, and casting via intermediate LPVOID was there just to mute compiler warnings about casting between two incompatible function pointer types. To mute that compiler warning, do casting via intermediate generic function pointer type void(*)(void) which is preferred according to gcc documentation and does not throw any compiler warnings neither by gcc, nor by msvc compilers.
show more ...
|
| fef7acc7 | 09-May-2025 |
Ronan Pigott <[email protected]> |
libpci: add some missing PCI_CLASS constants
The names and values are taken from the pci.ids file. |
| 0fb1f314 | 08-Jun-2025 |
Martin Mares <[email protected]> |
Allow pci.h to be included from C++ |
| 04d90bec | 06-Feb-2025 |
Tristan Watts-Willis <[email protected]> |
lspci: Decode Physical Layer 64 GT/s extended capability register |
| 0c6383e9 | 06-Feb-2025 |
Tristan Watts-Willis <[email protected]> |
lspci: Decode Physical Layer 16 GT/s and 32 GT/s extended capability registers |
| 4f2abadf | 25-Nov-2024 |
Samuel Thibault <[email protected]> |
Extend the GNU/Hurd back-end to work on 64-bit systems |
| 41e0a717 | 05-Jul-2024 |
Martin Mares <[email protected]> |
ECAM: Fix memory leak |
| b27217e3 | 05-Jul-2024 |
Martin Mares <[email protected]> |
ECAM: Spell "ACPI" in capitals in debug messages |
| 03b2f847 | 17-Feb-2024 |
Pali Rohár <[email protected]> |
libpci: Document physmem API |
| ff9f39c7 | 08-May-2023 |
Pali Rohár <[email protected]> |
libpci: Add Windows physmem support for PCIe ECAM access
It requires either access to NT Section \Device\PhysicalMemory (or compatible) or to have available kernel32.dll VxDCall2 function or w32skrn
libpci: Add Windows physmem support for PCIe ECAM access
It requires either access to NT Section \Device\PhysicalMemory (or compatible) or to have available kernel32.dll VxDCall2 function or w32skrnl.dll DPMI function.
show more ...
|