Trying to figure out how to implement my WINC like compatibility layer. Going the emulation way is probably not so smart. We should not use the kernel but rather hook native functions in the Exec calls.
//
// HAL_GCC_SHIM.CIA - generated by GENSHIMSRC.BAT
//
#include <e32def.h>
#include <e32const.h>
#include <cpudefs.h>
EXPORT_C __NAKED__ int export_at_ordinal_1()
//
// HAL::Get(HALData::TAttribute, int &)
//
{
asm("stmfd sp!, {r4,lr} ");
asm("mov r4, sp ");
asm("bic sp, sp, #4 ");
asm("bl _ZN3HAL3GetEN7HALData10TAttributeERi ");
asm("mov sp, r4 ");
asm("ldmfd sp!, {r4,pc} ");
}
EXPORT_C __NAKED__ int export_at_ordinal_2()
//
// HAL::Set(HALData::TAttribute, int)
//
{
asm("stmfd sp!, {r4,lr} ");
asm("mov r4, sp ");
asm("bic sp, sp, #4 ");
asm("bl _ZN3HAL3SetEN7HALData10TAttributeEi ");
asm("mov sp, r4 ");
asm("ldmfd sp!, {r4,pc} ");
}
EXPORT_C __NAKED__ int export_at_ordinal_3()
//
// HAL::GetAll(int &, HAL::SEntry *&)
//
{
asm("stmfd sp!, {r4,lr} ");
asm("mov r4, sp ");
asm("bic sp, sp, #4 ");
asm("bl _ZN3HAL6GetAllERiRPNS_6SEntryE ");
asm("mov sp, r4 ");
asm("ldmfd sp!, {r4,pc} ");
}