basic-lib.h 442 B

1234567891011121314151617
  1. typedef __UINT32_TYPE__ uint32_t;
  2. typedef __UINT16_TYPE__ uint16_t;
  3. typedef __UINT8_TYPE__ uint8_t;
  4. static inline uint32_t syscall(uint32_t num, uint32_t arg1, uint32_t arg2)
  5. {
  6. asm volatile(
  7. "movl %1, %%edi\n"
  8. "movl %2, %%esi\n"
  9. "movl %3, %%eax\n"
  10. "int $0x80\n"
  11. "movl %%eax, %0"
  12. : "=g"(num)
  13. : "g"(arg1), "g"(arg2), "g"(num)
  14. : "eax", "edx", "edi", "esi");
  15. return num;
  16. }