/********************************************************/ /* ntapi: Native API core library */ /* Copyright (C) 2013--2017 Z. Gilboa */ /* Released under GPLv2 and GPLv3; see COPYING.NTAPI. */ /********************************************************/ #include #if (__COMPILER__ == __MSVC__) && defined(__X86_MODEL) intptr_t __fastcall __tt_fork_impl_v1( __in uintptr_t saved_regs_stack_pointer, __in uintptr_t stack_adjustment); int32_t __declspec(naked) __cdecl __tt_fork_v1(void) { __asm { push ebp mov ebp, esp push ecx push edx push ebx push esi push edi mov ecx, esp call __tt_fork_impl_v1 pop edi pop esi pop ebx pop edx pop ecx mov esp, ebp pop ebp ret }; } void __declspec(naked) __fastcall __tt_fork_child_entry_point(uintptr_t esp_saved) { __asm { xor eax, eax mov esp, ecx pop edi pop esi pop ebx pop edx pop ecx pop ebp ret }; } void __declspec(naked) __fastcall __tt_fork_child_entry_point_adj(uintptr_t esp_saved) { __asm { jmp __tt_fork_child_entry_point }; } #endif