Okay, so I'll start with something more concrete that should help me understand a few things. Let's say I wanted to implement a hypercall and for the purposes of this discussion, let's assume ARM.
A user process on the Linux VM can issue a hypercall with the HVC instruction, right? Where would I need to add code to the VMM to handle this hypercall? Also, it is my understanding that certain instructions will cause a trap into the VMM. Where is that handled? Thanks! On Thu, Jun 8, 2017 at 8:10 PM, <adrian.da...@data61.csiro.au> wrote: > Hi Mike, > > Unfortunately we haven't yet written any documentation on the VMM internals > or how it works. You are actually the first person to express interest in > this. Will try to make it a higher priority to write at least a brief > overview of the structure. For now my advice is to be familiar with CAmkES, > have a built version of the VMM so that you can code search for generated > code and then start exploring from either > https://github.com/seL4/camkes-vm/blob/master/components/Init/src/main.c#L525 > or > https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/components/VM/src/main.c#L472 > depending on whether you are asking about the arm or x86 VMM. > > Adrian > > > On Fri 09-Jun-2017 2:26 AM, Mike Clark wrote: > > Is there any documentation on how the VMM works? If I wanted to start > hacking on the VMM and extend its capability, where should I start > looking to learn how it works, etc? > > That might be a pretty broad topic, because there are lots of ways the > VMM can be extended, I'm sure. Broad is fine, until I get things more > figured out. > > _______________________________________________ > Devel mailing list > Devel@sel4.systems > https://sel4.systems/lists/listinfo/devel > > _______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel