# File name	Caller	Syscall name	Args	Strong name	Weak names

#
# Calls for compatibility with existing MIPS OS implementations and
# compilers.
#
cachectl	-	cachectl	i:pii	__cachectl	cachectl
cacheflush	-	cacheflush	i:pii	_flush_cache	cacheflush
sysmips		-	sysmips		i:iiii	__sysmips	sysmips

#
# Socket functions; Linux/MIPS doesn't use the socketcall(2) wrapper;
# it's provided for compatibility, though.
#
accept		-	accept		Ci:iBN	__libc_accept	__accept accept
bind		-	bind		i:ipi	__bind		bind
connect		-	connect		Ci:ipi	__libc_connect	__connect connect
getpeername	-	getpeername	i:ipp	__getpeername	getpeername
getsockname	-	getsockname	i:ipp	__getsockname	getsockname
getsockopt	-	getsockopt	i:iiiBN	__getsockopt	getsockopt
listen		-	listen		i:ii	__listen	listen
recv		-	recv		Ci:ibni	__libc_recv	__recv recv
recvfrom	-	recvfrom	Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
recvmsg		-	recvmsg		Ci:ipi	__libc_recvmsg	__recvmsg recvmsg
send		-	send		Ci:ibni	__libc_send	__send send
sendmsg		-	sendmsg		Ci:ipi	__libc_sendmsg	__sendmsg sendmsg
sendto		-	sendto		Ci:ibnibn __libc_sendto	__sendto sendto
setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
shutdown	-	shutdown	i:ii	__shutdown	shutdown
socket		-	socket		i:iii	__socket	socket
socketpair	-	socketpair	i:iiif	__socketpair	socketpair
