basic-lib.h 432 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 ("movl %3, %%eax\n\
  7. movl %1, %%edi\n\
  8. movl %2, %%esi\n\
  9. int $0x80\n\
  10. movl %%eax, %0"
  11. :"=r"(num)
  12. :"0"(arg1), "r"(arg2), "r"(num)
  13. :"eax", "edi", "esi"
  14. );
  15. return num;
  16. }