Closed KeganHollern closed 3 months ago
Some psuedocode from v2 api:
// connect to FPGA device
auto gFPGA = new memstream::v2::FPGA();
// print device information (version, configspace ect)
std::cout << gFPGA->getConfiguration()->to_string() << std::endl;
std::cout << "config space: " << std::endl;
memstream::v2::log::buffer(gFPGA->getConfiguration()->configSpace, 0x1000);
std::cout << std::endl;
// initialize v2 memstream input (more stable!)
gInput = new memstream::v2::Input(gFPGA);
gInput->OnKeyStateChange(victim_key_change); // set keyboard callback
gInput->OnMouseMove(victim_mouse_move);
You can also feed in an existing VMM handle if you want to reuse an already constructed handle
auto gFPGA = new memstream::v2::FPGA(hVMM);
So you can see I am trying to make it very very similar to the v1 api - but the whole namespace separation stuff I am throwing out for now.
I am also upgrading to the latest version of VMM/MemProcFS- this will support ZDMA devices (Thunderbolt).
Updating memstream to support the latest windows 11 kernel
Hi All,
I have been at work on a major version change (breaking) for this library.
I found the version you see here to be a fairly poor outline of what is needed when writing DMA apps. I also found it to be unstable at times.
The new version, I am happy to say, is very stable on Win 10 through 11 (latest) and provides a much friendlier API.
The focus will remain on Windows for some time, but porting to Linux will be a goal of mine after I reach feature parity and update this repository.
Stay tuned. Thanks!