code for them is shared between amd64-linux and x86-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3257
SET_RESULT( 0 );
}
+/* --- BEGIN socketcall unwrappers for amd64-linux. --- */
+
+PRE(sys_socketcall, MayBlock)
+{
+# define ARG2_0 (ARG2)
+# define ARG2_1 (ARG3)
+# define ARG2_2 (ARG4)
+# define ARG2_3 (ARG5)
+# define ARG2_4 (ARG6)
+
+ PRINT("sys_socketcall(amd64) %lld (0x%llx, 0x%llx, "
+ "0x%llx, 0x%llx, 0x%llx, )",
+ ARG1,ARG2_0,ARG2_1,ARG2_2,ARG2_3,ARG2_4);
+
+ PRE_REG_READ2(long, "socketcall", int, call, unsigned long *, args);
+
+ switch (ARG1 /* request */) {
+
+// case VKI_SYS_SOCKETPAIR:
+// /* int socketpair(int d, int type, int protocol, int sv[2]); */
+// PRE_MEM_READ( "socketcall.socketpair(args)", ARG2, 4*sizeof(Addr) );
+// generic_PRE_sys_socketpair( tid, ARG2_0, ARG2_1, ARG2_2, ARG2_3 );
+// break;
+
+ case VKI_SYS_SOCKET:
+ /* int socket(int domain, int type, int protocol); */
+ PRE_MEM_READ( "socketcall.socket(args)", ARG2, 3*sizeof(Addr) );
+ break;
+
+// case VKI_SYS_BIND:
+// /* int bind(int sockfd, struct sockaddr *my_addr,
+// int addrlen); */
+// PRE_MEM_READ( "socketcall.bind(args)", ARG2, 3*sizeof(Addr) );
+// generic_PRE_sys_bind( tid, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_LISTEN:
+// /* int listen(int s, int backlog); */
+// PRE_MEM_READ( "socketcall.listen(args)", ARG2, 2*sizeof(Addr) );
+// break;
+//
+// case VKI_SYS_ACCEPT: {
+// /* int accept(int s, struct sockaddr *addr, int *addrlen); */
+// PRE_MEM_READ( "socketcall.accept(args)", ARG2, 3*sizeof(Addr) );
+// generic_PRE_sys_accept( tid, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+// }
+//
+// case VKI_SYS_SENDTO:
+// /* int sendto(int s, const void *msg, int len,
+// unsigned int flags,
+// const struct sockaddr *to, int tolen); */
+// PRE_MEM_READ( "socketcall.sendto(args)", ARG2, 6*sizeof(Addr) );
+// generic_PRE_sys_sendto( tid, ARG2_0, ARG2_1, ARG2_2,
+// ARG2_3, ARG2_4, ARG2_5 );
+// break;
+//
+// case VKI_SYS_SEND:
+// /* int send(int s, const void *msg, size_t len, int flags); */
+// PRE_MEM_READ( "socketcall.send(args)", ARG2, 4*sizeof(Addr) );
+// generic_PRE_sys_send( tid, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_RECVFROM:
+// /* int recvfrom(int s, void *buf, int len, unsigned int flags,
+// struct sockaddr *from, int *fromlen); */
+// PRE_MEM_READ( "socketcall.recvfrom(args)", ARG2, 6*sizeof(Addr) );
+// generic_PRE_sys_recvfrom( tid, ARG2_0, ARG2_1, ARG2_2,
+// ARG2_3, ARG2_4, ARG2_5 );
+// break;
+
+ case VKI_SYS_RECV:
+ /* int recv(int s, void *buf, int len, unsigned int flags); */
+ /* man 2 recv says:
+ The recv call is normally used only on a connected socket
+ (see connect(2)) and is identical to recvfrom with a NULL
+ from parameter.
+ */
+ PRE_MEM_READ( "socketcall.recv(args)", ARG2, 4*sizeof(Addr) );
+ VG_(generic_PRE_sys_recv)( tid, ARG2_0, ARG2_1, ARG2_2 );
+ break;
+
+// case VKI_SYS_CONNECT:
+// /* int connect(int sockfd,
+// struct sockaddr *serv_addr, int addrlen ); */
+// PRE_MEM_READ( "socketcall.connect(args)", ARG2, 3*sizeof(Addr) );
+// generic_PRE_sys_connect( tid, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_SETSOCKOPT:
+// /* int setsockopt(int s, int level, int optname,
+// const void *optval, int optlen); */
+// PRE_MEM_READ( "socketcall.setsockopt(args)", ARG2, 5*sizeof(Addr) );
+// generic_PRE_sys_setsockopt( tid, ARG2_0, ARG2_1, ARG2_2,
+// ARG2_3, ARG2_4 );
+// break;
+//
+// case VKI_SYS_GETSOCKOPT:
+// /* int getsockopt(int s, int level, int optname,
+// void *optval, socklen_t *optlen); */
+// PRE_MEM_READ( "socketcall.getsockopt(args)", ARG2, 5*sizeof(Addr) );
+// generic_PRE_sys_getsockopt( tid, ARG2_0, ARG2_1, ARG2_2,
+// ARG2_3, ARG2_4 );
+// break;
+//
+// case VKI_SYS_GETSOCKNAME:
+// /* int getsockname(int s, struct sockaddr* name, int* namelen) */
+// PRE_MEM_READ( "socketcall.getsockname(args)", ARG2, 3*sizeof(Addr) );
+// generic_PRE_sys_getsockname( tid, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_GETPEERNAME:
+// /* int getpeername(int s, struct sockaddr* name, int* namelen) */
+// PRE_MEM_READ( "socketcall.getpeername(args)", ARG2, 3*sizeof(Addr) );
+// generic_PRE_sys_getpeername( tid, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_SHUTDOWN:
+// /* int shutdown(int s, int how); */
+// PRE_MEM_READ( "socketcall.shutdown(args)", ARG2, 2*sizeof(Addr) );
+// break;
+//
+// case VKI_SYS_SENDMSG: {
+// /* int sendmsg(int s, const struct msghdr *msg, int flags); */
+//
+// /* this causes warnings, and I don't get why. glibc bug?
+// * (after all it's glibc providing the arguments array)
+// PRE_MEM_READ( "socketcall.sendmsg(args)", ARG2, 3*sizeof(Addr) );
+// */
+// generic_PRE_sys_sendmsg( tid, ARG2_0, ARG2_1 );
+// break;
+// }
+//
+// case VKI_SYS_RECVMSG: {
+// /* int recvmsg(int s, struct msghdr *msg, int flags); */
+//
+// /* this causes warnings, and I don't get why. glibc bug?
+// * (after all it's glibc providing the arguments array)
+// PRE_MEM_READ("socketcall.recvmsg(args)", ARG2, 3*sizeof(Addr) );
+// */
+// generic_PRE_sys_recvmsg( tid, ARG2_0, ARG2_1 );
+// break;
+// }
+
+ default:
+ VG_(message)(Vg_DebugMsg,"Warning: amd64-linux: "
+ "unhandled socketcall %lld",ARG1);
+ SET_RESULT( -VKI_EINVAL );
+ break;
+ }
+# undef ARG2_0
+# undef ARG2_1
+# undef ARG2_2
+# undef ARG2_3
+# undef ARG2_4
+}
+
+POST(sys_socketcall)
+{
+# define ARG2_0 (ARG2)
+# define ARG2_1 (ARG3)
+# define ARG2_2 (ARG4)
+# define ARG2_3 (ARG5)
+# define ARG2_4 (ARG6)
+ UWord r;
+ switch (ARG1 /* request */) {
+
+// case VKI_SYS_SOCKETPAIR:
+// generic_POST_sys_socketpair( tid, RES, ARG2_0,
+// ARG2_1, ARG2_2, ARG2_3 );
+// break;
+
+ case VKI_SYS_SOCKET:
+ r = VG_(generic_POST_sys_socket)( tid, RES );
+ SET_RESULT(r);
+ break;
+
+// case VKI_SYS_BIND:
+// /* int bind(int sockfd, struct sockaddr *my_addr,
+// int addrlen); */
+// break;
+//
+// case VKI_SYS_LISTEN:
+// /* int listen(int s, int backlog); */
+// break;
+//
+// case VKI_SYS_ACCEPT:
+// /* int accept(int s, struct sockaddr *addr, int *addrlen); */
+// r = generic_POST_sys_accept( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+// SET_RESULT(r);
+// break;
+//
+// case VKI_SYS_SENDTO:
+// break;
+//
+// case VKI_SYS_SEND:
+// break;
+//
+// case VKI_SYS_RECVFROM:
+// generic_POST_sys_recvfrom( tid, RES, ARG2_0, ARG2_1, ARG2_2,
+// ARG2_3, ARG2_4, ARG2_5 );
+// break;
+
+ case VKI_SYS_RECV:
+ VG_(generic_POST_sys_recv)( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+ break;
+
+// case VKI_SYS_CONNECT:
+// break;
+//
+// case VKI_SYS_SETSOCKOPT:
+// break;
+//
+// case VKI_SYS_GETSOCKOPT:
+// generic_POST_sys_getsockopt( tid, RES, ARG2_0, ARG2_1,
+// ARG2_2, ARG2_3, ARG2_4 );
+// break;
+//
+// case VKI_SYS_GETSOCKNAME:
+// generic_POST_sys_getsockname( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_GETPEERNAME:
+// generic_POST_sys_getpeername( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+// break;
+//
+// case VKI_SYS_SHUTDOWN:
+// break;
+//
+// case VKI_SYS_SENDMSG:
+// break;
+//
+// case VKI_SYS_RECVMSG:
+// generic_POST_sys_recvmsg( tid, RES, ARG2_0, ARG2_1 );
+// break;
+
+ default:
+ VG_(message)(Vg_DebugMsg,"FATAL: amd64-linux: "
+ "unhandled socketcall %lld",ARG1);
+ VG_(core_panic)("... bye!\n");
+ break; /*NOTREACHED*/
+ }
+# undef ARG2_0
+# undef ARG2_1
+# undef ARG2_2
+# undef ARG2_3
+# undef ARG2_4
+}
+
+/* --- END socketcall unwrappers for amd64-linux. --- */
+
+PRE(sys_setsockopt, 0)
+{
+ /* int setsockopt(int s, int level, int optname,
+ const void *optval, int optlen); */
+ VG_(generic_PRE_sys_setsockopt)(tid, ARG1,ARG2,ARG3,ARG4,ARG5);
+}
+
+PRE(sys_connect, MayBlock)
+{
+ /* int connect(int sockfd,
+ struct sockaddr *serv_addr, int addrlen ); */
+ VG_(generic_PRE_sys_connect)(tid, ARG1,ARG2,ARG3);
+}
+
+PRE(sys_recvmsg, MayBlock)
+{
+ /* int recvmsg(int s, struct msghdr *msg, int flags); */
+ VG_(generic_PRE_sys_recvmsg)(tid, ARG1,ARG2);
+}
+POST(sys_recvmsg)
+{
+ VG_(generic_POST_sys_recvmsg)(tid, RES,ARG1,ARG2);
+}
+
+
#undef PRE
#undef POST
+
/* ---------------------------------------------------------------------
The AMD64/Linux syscall table
------------------------------------------------------------------ */
GENXY(__NR_fstat, sys_newfstat), // 5
GENXY(__NR_lstat, sys_newlstat), // 6
- // (__NR_poll, sys_poll), // 7
+ GENXY(__NR_poll, sys_poll), // 7
GENX_(__NR_lseek, sys_lseek), // 8
GENXY(__NR_mmap, sys_mmap2), // 9
GENX_(__NR_getpid, sys_getpid), // 39
// (__NR_sendfile, sys_sendfile64), // 40
- // (__NR_socket, sys_socket), // 41
- // (__NR_connect, sys_connect), // 42
+ PLAXY(__NR_socket, sys_socketcall), // 41
+ PLAX_(__NR_connect, sys_connect), // 42
// (__NR_accept, sys_accept), // 43
// (__NR_sendto, sys_sendto), // 44
// (__NR_recvfrom, sys_recvfrom), // 45
// (__NR_sendmsg, sys_sendmsg), // 46
- // (__NR_recvmsg, sys_recvmsg), // 47
+ PLAXY(__NR_recvmsg, sys_recvmsg), // 47
// (__NR_shutdown, sys_shutdown), // 48
// (__NR_bind, sys_bind), // 49
// (__NR_getsockname, sys_getsockname), // 51
// (__NR_getpeername, sys_getpeername), // 52
// (__NR_socketpair, sys_socketpair), // 53
- // (__NR_setsockopt, sys_setsockopt), // 54
+ PLAX_(__NR_setsockopt, sys_setsockopt), // 54
// (__NR_getsockopt, sys_getsockopt), // 55
// (__NR_clone, stub_clone), // 56
// (__NR_umask, sys_umask), // 95
// (__NR_gettimeofday, sys_gettimeofday), // 96
- // (__NR_getrlimit, sys_getrlimit), // 97
+ GENXY(__NR_getrlimit, sys_getrlimit), // 97
// (__NR_getrusage, sys_getrusage), // 98
// (__NR_sysinfo, sys_sysinfo), // 99
#define POST_MEM_WRITE(zzaddr, zzlen) \
VG_TRACK( post_mem_write, Vg_CoreSysCall, tid, zzaddr, zzlen)
+
+//////////////////////////////////////////////////////////
+
+#define TId ThreadId
+#define UW UWord
+
+extern void VG_(generic_PRE_sys_socketpair) ( TId, UW, UW, UW, UW );
+extern UWord VG_(generic_POST_sys_socketpair) ( TId, UW, UW, UW, UW, UW );
+extern UWord VG_(generic_POST_sys_socket) ( TId, UW );
+extern void VG_(generic_PRE_sys_bind) ( TId, UW, UW, UW );
+extern void VG_(generic_PRE_sys_accept) ( TId, UW, UW, UW );
+extern UWord VG_(generic_POST_sys_accept) ( TId, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_sendto) ( TId, UW, UW, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_send) ( TId, UW, UW, UW );
+extern void VG_(generic_PRE_sys_recvfrom) ( TId, UW, UW, UW, UW, UW, UW );
+extern void VG_(generic_POST_sys_recvfrom) ( TId, UW, UW, UW, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_recv) ( TId, UW, UW, UW );
+extern void VG_(generic_POST_sys_recv) ( TId, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_connect) ( TId, UW, UW, UW );
+extern void VG_(generic_PRE_sys_setsockopt) ( TId, UW, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_getsockopt) ( TId, UW, UW, UW, UW, UW );
+extern void VG_(generic_POST_sys_getsockopt) ( TId, UW, UW, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_getsockname) ( TId, UW, UW, UW );
+extern void VG_(generic_POST_sys_getsockname) ( TId, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_getpeername) ( TId, UW, UW, UW );
+extern void VG_(generic_POST_sys_getpeername) ( TId, UW, UW, UW, UW );
+extern void VG_(generic_PRE_sys_sendmsg) ( TId, UW, UW );
+extern void VG_(generic_PRE_sys_recvmsg) ( TId, UW, UW );
+extern void VG_(generic_POST_sys_recvmsg) ( TId, UW, UW, UW );
+
+#undef TID
+#undef UW
+
+
/* ---------------------------------------------------------------------
Exports of vg_transtab.c
------------------------------------------------------------------ */
/* ------ */
-void generic_PRE_sys_socketpair ( ThreadId tid,
+void
+VG_(generic_PRE_sys_socketpair) ( ThreadId tid,
UWord arg0, UWord arg1,
UWord arg2, UWord arg3 )
{
arg3, 2*sizeof(int) );
}
-UWord generic_POST_sys_socketpair ( ThreadId tid,
- UWord res,
- UWord arg0, UWord arg1,
- UWord arg2, UWord arg3 )
+UWord
+VG_(generic_POST_sys_socketpair) ( ThreadId tid,
+ UWord res,
+ UWord arg0, UWord arg1,
+ UWord arg2, UWord arg3 )
{
UWord r = res;
Int fd1 = ((Int*)arg3)[0];
/* ------ */
-UWord generic_POST_sys_socket ( ThreadId tid, UWord res )
+UWord
+VG_(generic_POST_sys_socket) ( ThreadId tid, UWord res )
{
UWord r = res;
if (!VG_(fd_allowed)(res, "socket", tid, True)) {
/* ------ */
-void generic_PRE_sys_bind ( ThreadId tid,
+void
+VG_(generic_PRE_sys_bind) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int bind(int sockfd, struct sockaddr *my_addr,
/* ------ */
-void generic_PRE_sys_accept ( ThreadId tid,
+void
+VG_(generic_PRE_sys_accept) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int accept(int s, struct sockaddr *addr, int *addrlen); */
"socketcall.accept(addrlen_in)" );
}
-UWord generic_POST_sys_accept ( ThreadId tid,
- UWord res,
- UWord arg0, UWord arg1, UWord arg2 )
+UWord
+VG_(generic_POST_sys_accept) ( ThreadId tid,
+ UWord res,
+ UWord arg0, UWord arg1, UWord arg2 )
{
UWord r = res;
if (!VG_(fd_allowed)(res, "accept", tid, True)) {
/* ------ */
-void generic_PRE_sys_sendto ( ThreadId tid,
+void
+VG_(generic_PRE_sys_sendto) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2,
UWord arg3, UWord arg4, UWord arg5 )
{
/* ------ */
-void generic_PRE_sys_send ( ThreadId tid,
+void
+VG_(generic_PRE_sys_send) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int send(int s, const void *msg, size_t len, int flags); */
/* ------ */
-void generic_PRE_sys_recvfrom ( ThreadId tid,
+void
+VG_(generic_PRE_sys_recvfrom) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2,
UWord arg3, UWord arg4, UWord arg5 )
{
"socketcall.recvfrom(fromlen_in)" );
}
-void generic_POST_sys_recvfrom ( ThreadId tid,
+void
+VG_(generic_POST_sys_recvfrom) ( ThreadId tid,
UWord res,
UWord arg0, UWord arg1, UWord arg2,
UWord arg3, UWord arg4, UWord arg5 )
/* ------ */
-void generic_PRE_sys_recv ( ThreadId tid,
+void
+VG_(generic_PRE_sys_recv) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int recv(int s, void *buf, int len, unsigned int flags); */
arg2 /* len */ );
}
-void generic_POST_sys_recv ( ThreadId tid,
+void
+VG_(generic_POST_sys_recv) ( ThreadId tid,
UWord res,
UWord arg0, UWord arg1, UWord arg2 )
{
/* ------ */
-void generic_PRE_sys_connect ( ThreadId tid,
+void
+VG_(generic_PRE_sys_connect) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int connect(int sockfd,
/* ------ */
-void generic_PRE_sys_setsockopt ( ThreadId tid,
+void
+VG_(generic_PRE_sys_setsockopt) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2,
UWord arg3, UWord arg4 )
{
/* ------ */
-void generic_PRE_sys_getsockopt ( ThreadId tid,
+void
+VG_(generic_PRE_sys_getsockopt) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2,
UWord arg3, UWord arg4 )
{
"socketcall.getsockopt(optlen)" );
}
-void generic_POST_sys_getsockopt ( ThreadId tid,
+void
+VG_(generic_POST_sys_getsockopt) ( ThreadId tid,
UWord res,
UWord arg0, UWord arg1, UWord arg2,
UWord arg3, UWord arg4 )
/* ------ */
-void generic_PRE_sys_getsockname ( ThreadId tid,
+void
+VG_(generic_PRE_sys_getsockname) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int getsockname(int s, struct sockaddr* name, int* namelen) */
"socketcall.getsockname(namelen_in)" );
}
-void generic_POST_sys_getsockname ( ThreadId tid,
+void
+VG_(generic_POST_sys_getsockname) ( ThreadId tid,
UWord res,
UWord arg0, UWord arg1, UWord arg2 )
{
/* ------ */
-void generic_PRE_sys_getpeername ( ThreadId tid,
+void
+VG_(generic_PRE_sys_getpeername) ( ThreadId tid,
UWord arg0, UWord arg1, UWord arg2 )
{
/* int getpeername(int s, struct sockaddr* name, int* namelen) */
"socketcall.getpeername(namelen_in)" );
}
-void generic_POST_sys_getpeername ( ThreadId tid,
+void
+VG_(generic_POST_sys_getpeername) ( ThreadId tid,
UWord res,
UWord arg0, UWord arg1, UWord arg2 )
{
/* ------ */
-void generic_PRE_sys_sendmsg ( ThreadId tid,
+void
+VG_(generic_PRE_sys_sendmsg) ( ThreadId tid,
UWord arg0, UWord arg1 )
{
/* int sendmsg(int s, const struct msghdr *msg, int flags); */
/* ------ */
-void generic_PRE_sys_recvmsg ( ThreadId tid,
+void
+VG_(generic_PRE_sys_recvmsg) ( ThreadId tid,
UWord arg0, UWord arg1 )
{
/* int recvmsg(int s, struct msghdr *msg, int flags); */
msghdr_foreachfield ( tid, msg, pre_mem_write_recvmsg );
}
-void generic_POST_sys_recvmsg ( ThreadId tid,
+void
+VG_(generic_POST_sys_recvmsg) ( ThreadId tid,
UWord res,
UWord arg0, UWord arg1 )
{
case VKI_SYS_SOCKETPAIR:
/* int socketpair(int d, int type, int protocol, int sv[2]); */
PRE_MEM_READ( "socketcall.socketpair(args)", ARG2, 4*sizeof(Addr) );
- generic_PRE_sys_socketpair( tid, ARG2_0, ARG2_1, ARG2_2, ARG2_3 );
+ VG_(generic_PRE_sys_socketpair)( tid, ARG2_0, ARG2_1, ARG2_2, ARG2_3 );
break;
case VKI_SYS_SOCKET:
/* int bind(int sockfd, struct sockaddr *my_addr,
int addrlen); */
PRE_MEM_READ( "socketcall.bind(args)", ARG2, 3*sizeof(Addr) );
- generic_PRE_sys_bind( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_bind)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_LISTEN:
case VKI_SYS_ACCEPT: {
/* int accept(int s, struct sockaddr *addr, int *addrlen); */
PRE_MEM_READ( "socketcall.accept(args)", ARG2, 3*sizeof(Addr) );
- generic_PRE_sys_accept( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_accept)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
}
unsigned int flags,
const struct sockaddr *to, int tolen); */
PRE_MEM_READ( "socketcall.sendto(args)", ARG2, 6*sizeof(Addr) );
- generic_PRE_sys_sendto( tid, ARG2_0, ARG2_1, ARG2_2,
+ VG_(generic_PRE_sys_sendto)( tid, ARG2_0, ARG2_1, ARG2_2,
ARG2_3, ARG2_4, ARG2_5 );
break;
case VKI_SYS_SEND:
/* int send(int s, const void *msg, size_t len, int flags); */
PRE_MEM_READ( "socketcall.send(args)", ARG2, 4*sizeof(Addr) );
- generic_PRE_sys_send( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_send)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_RECVFROM:
/* int recvfrom(int s, void *buf, int len, unsigned int flags,
struct sockaddr *from, int *fromlen); */
PRE_MEM_READ( "socketcall.recvfrom(args)", ARG2, 6*sizeof(Addr) );
- generic_PRE_sys_recvfrom( tid, ARG2_0, ARG2_1, ARG2_2,
+ VG_(generic_PRE_sys_recvfrom)( tid, ARG2_0, ARG2_1, ARG2_2,
ARG2_3, ARG2_4, ARG2_5 );
break;
from parameter.
*/
PRE_MEM_READ( "socketcall.recv(args)", ARG2, 4*sizeof(Addr) );
- generic_PRE_sys_recv( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_recv)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_CONNECT:
/* int connect(int sockfd,
struct sockaddr *serv_addr, int addrlen ); */
PRE_MEM_READ( "socketcall.connect(args)", ARG2, 3*sizeof(Addr) );
- generic_PRE_sys_connect( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_connect)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_SETSOCKOPT:
/* int setsockopt(int s, int level, int optname,
const void *optval, int optlen); */
PRE_MEM_READ( "socketcall.setsockopt(args)", ARG2, 5*sizeof(Addr) );
- generic_PRE_sys_setsockopt( tid, ARG2_0, ARG2_1, ARG2_2,
+ VG_(generic_PRE_sys_setsockopt)( tid, ARG2_0, ARG2_1, ARG2_2,
ARG2_3, ARG2_4 );
break;
/* int getsockopt(int s, int level, int optname,
void *optval, socklen_t *optlen); */
PRE_MEM_READ( "socketcall.getsockopt(args)", ARG2, 5*sizeof(Addr) );
- generic_PRE_sys_getsockopt( tid, ARG2_0, ARG2_1, ARG2_2,
+ VG_(generic_PRE_sys_getsockopt)( tid, ARG2_0, ARG2_1, ARG2_2,
ARG2_3, ARG2_4 );
break;
case VKI_SYS_GETSOCKNAME:
/* int getsockname(int s, struct sockaddr* name, int* namelen) */
PRE_MEM_READ( "socketcall.getsockname(args)", ARG2, 3*sizeof(Addr) );
- generic_PRE_sys_getsockname( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_getsockname)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_GETPEERNAME:
/* int getpeername(int s, struct sockaddr* name, int* namelen) */
PRE_MEM_READ( "socketcall.getpeername(args)", ARG2, 3*sizeof(Addr) );
- generic_PRE_sys_getpeername( tid, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_PRE_sys_getpeername)( tid, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_SHUTDOWN:
* (after all it's glibc providing the arguments array)
PRE_MEM_READ( "socketcall.sendmsg(args)", ARG2, 3*sizeof(Addr) );
*/
- generic_PRE_sys_sendmsg( tid, ARG2_0, ARG2_1 );
+ VG_(generic_PRE_sys_sendmsg)( tid, ARG2_0, ARG2_1 );
break;
}
* (after all it's glibc providing the arguments array)
PRE_MEM_READ("socketcall.recvmsg(args)", ARG2, 3*sizeof(Addr) );
*/
- generic_PRE_sys_recvmsg( tid, ARG2_0, ARG2_1 );
+ VG_(generic_PRE_sys_recvmsg)( tid, ARG2_0, ARG2_1 );
break;
}
switch (ARG1 /* request */) {
case VKI_SYS_SOCKETPAIR:
- generic_POST_sys_socketpair( tid, RES, ARG2_0,
+ VG_(generic_POST_sys_socketpair)( tid, RES, ARG2_0,
ARG2_1, ARG2_2, ARG2_3 );
break;
case VKI_SYS_SOCKET:
- r = generic_POST_sys_socket( tid, RES );
+ r = VG_(generic_POST_sys_socket)( tid, RES );
SET_RESULT(r);
break;
case VKI_SYS_ACCEPT:
/* int accept(int s, struct sockaddr *addr, int *addrlen); */
- r = generic_POST_sys_accept( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+ r = VG_(generic_POST_sys_accept)( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
SET_RESULT(r);
break;
break;
case VKI_SYS_RECVFROM:
- generic_POST_sys_recvfrom( tid, RES, ARG2_0, ARG2_1, ARG2_2,
+ VG_(generic_POST_sys_recvfrom)( tid, RES, ARG2_0, ARG2_1, ARG2_2,
ARG2_3, ARG2_4, ARG2_5 );
break;
case VKI_SYS_RECV:
- generic_POST_sys_recv( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_POST_sys_recv)( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_CONNECT:
break;
case VKI_SYS_GETSOCKOPT:
- generic_POST_sys_getsockopt( tid, RES, ARG2_0, ARG2_1,
+ VG_(generic_POST_sys_getsockopt)( tid, RES, ARG2_0, ARG2_1,
ARG2_2, ARG2_3, ARG2_4 );
break;
case VKI_SYS_GETSOCKNAME:
- generic_POST_sys_getsockname( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_POST_sys_getsockname)( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_GETPEERNAME:
- generic_POST_sys_getpeername( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
+ VG_(generic_POST_sys_getpeername)( tid, RES, ARG2_0, ARG2_1, ARG2_2 );
break;
case VKI_SYS_SHUTDOWN:
break;
case VKI_SYS_RECVMSG:
- generic_POST_sys_recvmsg( tid, RES, ARG2_0, ARG2_1 );
+ VG_(generic_POST_sys_recvmsg)( tid, RES, ARG2_0, ARG2_1 );
break;
default: