#ifndef _STDC_COMMON_H #define _STDC_COMMON_H #define signed #define volatile #define register #define const typedef unsigned char uint8_t; typedef char int8_t; typedef unsigned short uint16_t; typedef short int16_t; typedef unsigned int uint32_t; typedef int int32_t; typedef unsigned long uint64_t; typedef long int64_t; typedef unsigned long size_t; typedef long ptrdiff_t; typedef unsigned long uintptr_t; typedef long intptr_t; static unsigned char __syscall_data[] = { // mov rax, [rsp+24] 0x48, 0x8b, 0x84, 0x24, 24, 0, 0, 0, // mov rdi, rax 0x48, 0x89, 0xc7, // mov rax, [rsp+32] 0x48, 0x8b, 0x84, 0x24, 32, 0, 0, 0, // mov rsi, rax 0x48, 0x89, 0xc6, // mov rax, [rsp+40] 0x48, 0x8b, 0x84, 0x24, 40, 0, 0, 0, // mov rdx, rax 0x48, 0x89, 0xc2, // mov rax, [rsp+48] 0x48, 0x8b, 0x84, 0x24, 48, 0, 0, 0, // mov r10, rax 0x49, 0x89, 0xc2, // mov rax, [rsp+56] 0x48, 0x8b, 0x84, 0x24, 56, 0, 0, 0, // mov r8, rax 0x49, 0x89, 0xc0, // mov rax, [rsp+64] 0x48, 0x8b, 0x84, 0x24, 64, 0, 0, 0, // mov r9, rax 0x49, 0x89, 0xc1, // mov rax, [rsp+16] 0x48, 0x8b, 0x84, 0x24, 16, 0, 0, 0, // syscall 0x0f, 0x05, // mov [rsp+8], rax 0x48, 0x89, 0x84, 0x24, 8, 0, 0, 0, // ret 0xc3 }; #define __syscall(no, arg1, arg2, arg3, arg4, arg5, arg6)\ (((unsigned long (*)(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long))__syscall_data)\ (no, arg1, arg2, arg3, arg4, arg5, arg6)) long write(int fd, void *buf, size_t count) { __syscall(1, fd, buf, count, 0, 0, 0); } #endif // _STDC_COMMON_H