libpciaccess has now Windows support through WinIo and Cygwin

libpciaccess is the most famous generic library which allows us to access to PCI drivers under Linux and BSD systems.

As you may know, libpciaccess is not supported under Windows for various reasons that I don’t really know, but the most important one is probably because almost all developers of open source drivers use Linux only.

However, I need to use Windows in order to reverse engineer GPU graphics counters which are only available through NVPerfKit as part of my Google Summer of Code.

These counters are programmed using PCOUNTER, the hardware unit that contains performance monitoring counters, and they are exposed by MMIO. So, I need to have a full access to PCI drivers in order to map physical memory of the blob into the virtual address space.

So, I added Windows support into libpciaccess that now allows me to use the NVA tools (nvapeek, nvapoke…). That support is for Cygwin only mainly because I didn’t test my implementation under MinGW, but I believe that may be really easy to port it.

See you soon!