26 lines
No EOL
526 B
HolyC
26 lines
No EOL
526 B
HolyC
U0 @function_insert_call(U32 from, U32 to)
|
|
{
|
|
*(from(U8*)) = 0xE8;
|
|
*((from + 1)(I32*)) = to - from - 5;
|
|
}
|
|
|
|
U0 @function_patch(U32 from, U32 to)
|
|
{
|
|
*(from(U8*)) = 0xE9;
|
|
*((from + 1)(I32*)) = to - from - 5;
|
|
}
|
|
|
|
class @function
|
|
{
|
|
U0 (*InsertCall)(U32 from, U32 to);
|
|
U0 (*Patch)(U32 from, U32 to);
|
|
};
|
|
|
|
@function Function;
|
|
Function.InsertCall = &@function_insert_call;
|
|
Function.Patch = &@function_patch;
|
|
|
|
// usage: Function.InsertCall(addr, &func);
|
|
// usage: Function.Patch(&old_func, &new_func);
|
|
|
|
"function "; |