vx32

Local 9vx git repository for patches.
git clone git://r-36.net/vx32
Log | Files | Refs

vxsys.h (867B)


      1 //
      2 // Definitions used within VX environments
      3 // to invoke VX system calls and parent calls.
      4 //
      5 #ifndef _VXSYS_H_
      6 #define _VXSYS_H_
      7 
      8 
      9 // VX parent-calls take the parent-call code and flags in EAX,
     10 // If the VXPC_SENDBUF flag is set, EBX points to a message to send
     11 // and EDX contains the message's length in bytes.
     12 // The ECX register cannot be used for call or return arguments,
     13 // as it is used as a temporary by the SYSCALL instruction.
     14 // All other registers are simple register arguments to the parent.
     15 #define VXPCALL(a, s1, s2, r1, r2) \
     16 	asm volatile("syscall" \
     17 		: "=a" (a), "=b" (s1), "=d" (s2) \
     18 		: "a" (a), "b" (s1), "d" (s2), "S" (r1), "D" (r2) \
     19 		: "ecx");
     20 
     21 
     22 static inline void vxsetperm(void *addr, size_t size, int perm)
     23 {
     24 	asm volatile("syscall"
     25 		: 
     26 		: "a" (VXSYS_SETPERM), "b" (addr), "d" (size), "S" (perm)
     27 		: "ecx");
     28 }
     29 
     30 #endif	// _VXSYS_H_