30.3.3 EBC Virtual Machine Driver Example

The following example shows the directory structure for another driver that includes instruction set architecture-specific files for three of the supported instruction sets. The files EbcLowLevel.asm and EbcLowLevel.s contain logic that must be implemented in assembly to handle the transitions between native execution and the EBC interpreter. Doing so makes the driver work on all three supported architectures, but the UEFI driver takes longer to develop and is more difficult to maintain if any changes are required in the instruction set architecture-specific components.

If possible, a UEFI driver should be implemented in C with no instruction set architecture-specific files, which reduces the development time, reduces maintenance costs, and increases portability.

Example 262-EBC driver with instruction set architecture-specific files

MdeModulePkg\ Universal\ EbcDxe\
EbcDxe.inf
EbcExecute.c
EbcExecute.h EbcInt.c
EbcInt.h
Ia32\
EbcSupport.c
EbcLowLevel.asm
EbcLowLevel.S Ipf\
EbcSupport.c
EbcSupport.h
EbcLowLevel.s X64\
EbcSupport.c
EbcLowLevel.asm
EbcLowLevel.S