Hello Norman,
this question reminds me on the student project of Martin Stein several years ago. Martin's goal was to emulate I/O devices backed by an on-target VHDL simulation. Both the driver and the simulated I/O device would be hosted on the same machine. Each time the driver accesses a memory-mapped I/O register, the simulated device would need to handle that access.
the thesis indeed seems as a good starting point. I will try to get the original code to run under Genode 11.08, then change the code so that instead of MMIO-accesses, normal memory accesses within some special region are caught and make other first adjustments for my use-case; does this seem correct? Or is it more feasible to leave the MMIO mechanism as-is and then assign some emulated MMIO memory area to the target process (= the process to be monitored)? After that, I would then try to port that to a more recent version of Genode and then implement the rest.
Martin solved this problem on the base-hw kernel on ARM. Please refer to his thesis for more information. http://genode-labs.com/publications/mstein-device_emulation-2011.pdf
The thesis seems to implement it (albeit on an older version of) Fiasco.OC, which is what I'm using; is there any way to access the complete source code of the thesis or is it proprietary code? If not then I'll just try to make it work using the code-snippets inside the document.
Also, I found the follow-up thesis here: http://www.genode-labs.com/publications/mstein-hw-codesign-2013.pdf which now actually went back to implement it on bare-hw and made further improvements, but it seems that for my purposes the first thesis is more than enough (I admit having only peeked into the second one).
Thanks a lot for the quick help! Cheers, Josef