#ifndef __VIRTUALIZER_H #define __VIRTUALIZER_H #include "Code.h" #include "VmCode.h" #include "NativeCode.h" /* * Structure: * * Instructions: * - Two byte opcode * - * * * LOC register(Frame pointer): * - A register for which all local variables are addressed from * - Specific instructions for quick access of stuff around this ptr * - Example Frame: * - [Previous function variables * - [Return Address * - [Previous Functions LOC * - LOC->[Empty Stack Space * * * -VmEnter will essentially "call into" the vm and will be created using a function to rearrange and push arguments based on the arguments passed to said function. */ BOOL ViCanHandleInst(PNATIVE_CODE_LINK Link); BOOL ViValidateNativeCodeBlock(PNATIVE_CODE_BLOCK Block); BOOL VmEmitEnter(ULONG ArgumentCount, PNATIVE_CODE_BLOCK Block); BOOL VmEmitExit(ULONG ArgumentCount, PNATIVE_CODE_BLOCK Block); #endif