# This interface desciption corresponds to the POSIX.1 description.  The
# 4.4BSD interface is slightly different since the `msync' function takes
# only 2 arguments.

# File name	Caller	Syscall name	# args	Strong name	Weak names

madvise		-	madvise		i:pii	madvise
mmap		-	mmap		b:aniiii __mmap		mmap
mprotect	-	mprotect	i:aii	__mprotect	mprotect
msync		-	msync		Ci:aii	__libc_msync	msync
munmap		-	munmap		i:ai	__munmap	munmap
