syscall.h - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       syscall.h (883B)
       ---
            1 #include <errno.h>
            2 
            3 static inline int
            4 syscall(int num, unsigned a1, unsigned a2, unsigned a3, unsigned a4, unsigned a5)
            5 {
            6         int ret;
            7 
            8         asm volatile("syscall\n"
            9                 : "=a" (ret)
           10                 : "a" (num),
           11                   "d" (a1),
           12                   "c" (a2),
           13                   "b" (a3),
           14                   "D" (a4),
           15                   "S" (a5)
           16                 : "cc", "memory");
           17         
           18         if(ret < 0){
           19                 errno = -ret;
           20                 return -1;
           21         }
           22         return ret;
           23 }
           24 
           25 enum
           26 {
           27         VXSYSEXIT = 1,
           28         VXSYSBRK = 2,
           29         VXSYSREAD = 3,
           30         VXSYSWRITE = 4,
           31         VXSYSOPEN = 5,
           32         VXSYSCLOSE = 6,
           33         VXSYSLSEEK = 7,
           34         VXSYSREMOVE = 8,
           35         VXSYSTIME = 9,        // gettimeofday
           36         VXSYSCLOCK = 10,
           37         VXSYSSTAT = 11,
           38         VXSYSFSTAT = 12,
           39         VXSYSGETCWD = 13,
           40         VXSYSCHDIR = 14,
           41         VXSYSCHMOD = 15,
           42         VXSYSDUP = 16,
           43         VXSYSLINK = 17,
           44         VXSYSSELECT = 18,
           45         VXSYSMKDIR = 19,
           46         VXSYSFCNTL = 20,
           47         VXSYSTRUNCATE = 21,
           48         VXSYSFTRUNCATE = 22,
           49         VXSYSLSTAT = 23,
           50         VXSYSFORK = 24,
           51         VXSYSWAITPID = 25,
           52         VXSYSEXEC = 26,
           53         VXSYSPIPE = 27,
           54         VXSYSSLEEP = 28,
           55         VXSYSGETPID = 29,
           56 };
           57