RPCEmu on Genode

Norman Feske norman.feske at genode-labs.com
Thu Oct 15 13:33:20 CEST 2020


Hi Michael,

> I am working on getting the RPCEmu (RiscPC emulator) to run on Genode.

that is super cool! I was a proud owner of a RiscPC 600 once and loved
RiscOS. So your screenshot evokes fond memories. ;-)

> 1) Graphics doesn't update without exposing it. I have used testnit as
> a base and uses blit function to push out pixels to screen. How can I
> make it redraw?

You will have to call 'Framebuffer::Session::refresh' to inform the GUI
server about the changed portions of your virtual framebuffer.

> 2) When trying ro use the JIT version Genode complains about non
> executable memory. Any idea what that might be?

By default, data stored in RAM is not executable on Genode. For the
instructions generated by the JIT compiler, however, the underlying
memory must be mapped as executable. In cases like this, you can
explicitly request executable memory mapping using 'mmap' for allocating
an anonymous chunk of memory by passing both the MAP_ANONYMOUS and
PROT_EXEC flags as argument.

Should you not use the libc but the raw Genode API, you can create
executable mappings via 'env.rm().attach_executable' [1].

[1]
https://github.com/genodelabs/genode/blob/master/repos/base/include/region_map/region_map.h#L132

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

https://www.genode-labs.com · https://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list