5 #define munmap_text _munmap_text
6 #define vm_remap _vm_remap
7 #define vm_unmap _vm_unmap
8 #define vm_getphys _vm_getphys
9 #define vm_getrefcount _vm_getrefcount
15 PUBLIC
void *mmap(void *addr
, size_t len
, int prot
, int flags
,
21 m
.VMM_ADDR
= (vir_bytes
) addr
;
26 m
.VMM_OFFSET
= offset
;
28 r
= _syscall(VM_PROC_NR
, VM_MMAP
, &m
);
34 return (void *) m
.VMM_RETADDR
;
37 PUBLIC
int munmap(void *addr
, size_t len
)
44 return _syscall(VM_PROC_NR
, VM_MUNMAP
, &m
);
48 PUBLIC
int munmap_text(void *addr
, size_t len
)
55 return _syscall(VM_PROC_NR
, VM_MUNMAP_TEXT
, &m
);
58 PUBLIC
void *vm_remap(int d
, int s
, void *da
, void *sa
, size_t size
)
65 m
.VMRE_DA
= (char *) da
;
66 m
.VMRE_SA
= (char *) sa
;
69 r
= _syscall(VM_PROC_NR
, VM_REMAP
, &m
);
72 return (void *) m
.VMRE_RETA
;
75 PUBLIC
int vm_unmap(int endpt
, void *addr
)
80 m
.VMUN_ADDR
= (long) addr
;
82 return _syscall(VM_PROC_NR
, VM_SHM_UNMAP
, &m
);
85 PUBLIC
unsigned long vm_getphys(int endpt
, void *addr
)
90 m
.VMPHYS_ENDPT
= endpt
;
91 m
.VMPHYS_ADDR
= (long) addr
;
93 r
= _syscall(VM_PROC_NR
, VM_GETPHYS
, &m
);
99 PUBLIC u8_t
vm_getrefcount(int endpt
, void *addr
)
104 m
.VMREFCNT_ENDPT
= endpt
;
105 m
.VMREFCNT_ADDR
= (long) addr
;
107 r
= _syscall(VM_PROC_NR
, VM_GETREF
, &m
);
110 return (u8_t
) m
.VMREFCNT_RETC
;