Detailed Description

It contains (nearly?) all the VM data which have to be available in all contexts. Even if it contains all the data the idea is to use APIs not to modify all the members all around the place. Therefore we make use of unions to hide everything which isn't local to the current source module. This means we'll have to pay a little bit of attention when adding new members to structures in the unions and make sure to keep the padding sizes up to date.