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

# Override select.S in parent directory:
select		-	select		C:5	__select	select
accept		-	accept		C:3	__libc_accept	__accept accept
bind		-	bind		3	__bind		bind
connect		-	connect		C:3	__libc_connect	__connect_internal __connect connect
getpeername	-	getpeername	3	__getpeername	getpeername
getsockname	-	getsockname	3	__getsockname	getsockname
getsockopt	-	getsockopt	5	__getsockopt	getsockopt
listen		-	listen		2	__listen	listen
recv		-	recv		C:4	__libc_recv	__recv recv
recvfrom	-	recvfrom	C:6	__libc_recvfrom	__recvfrom recvfrom
recvmsg		-	recvmsg		C:3	__libc_recvmsg	__recvmsg recvmsg
send		-	send		C:4	__libc_send	__send send
sendmsg		-	sendmsg		C:3	__libc_sendmsg	__sendmsg sendmsg
sendto		-	sendto		C:6	__libc_sendto	__sendto sendto
setsockopt	-	setsockopt	5	__setsockopt	setsockopt
shutdown	-	shutdown	2	__shutdown	shutdown
socketpair	-	socketpair	4	__socketpair	socketpair
