From 8b791da005656c45a4f7d73a561a824614ae609d Mon Sep 17 00:00:00 2001 From: Octavian Soldea Date: Fri, 28 Jul 2017 07:52:58 -0400 Subject: [PATCH] Enabling system calls hijacking when using Node.js applications - tested with lkl only Signed-off-by: Octavian Soldea --- tools/lkl/lib/hijack/hijack.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/lkl/lib/hijack/hijack.c b/tools/lkl/lib/hijack/hijack.c index 6faa869cd0d228..a07d56b5ed7ff4 100644 --- a/tools/lkl/lib/hijack/hijack.c +++ b/tools/lkl/lib/hijack/hijack.c @@ -160,6 +160,19 @@ HOOK_FD_CALL(splice) HOOK_FD_CALL(vmsplice) HOOK_CALL_USE_HOST_BEFORE_START(pipe); +HOOK_CALL_USE_HOST_BEFORE_START(accept4); +int accept4(int fd, struct sockaddr *addr, socklen_t *addrlen, int flags) +{ + return lkl_call(__lkl__NR_accept4, 4, fd, addr, addrlen, flags); +} + + +HOOK_CALL_USE_HOST_BEFORE_START(pipe2); +int pipe2(int pipefd[2], int flags) +{ + return lkl_call(__lkl__NR_pipe2, 2, pipefd, flags); +} + HOST_CALL(setsockopt); int setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen) @@ -292,6 +305,24 @@ int select(int nfds, fd_set *r, fd_set *w, fd_set *e, struct timeval *t) } HOOK_CALL_USE_HOST_BEFORE_START(epoll_create); +int epoll_create(int flags) +{ + int res; + + if (!lkl_running) + res = host_epoll_create(flags); + else + res = lkl_call(__lkl__NR_epoll_create, 1, flags); + + return res; +} + +HOOK_CALL_USE_HOST_BEFORE_START(epoll_create1); +int epoll_create1(int flags) +{ + return lkl_call(__lkl__NR_epoll_create1, 1, flags); +} + HOST_CALL(epoll_ctl); int epoll_ctl(int epollfd, int op, int fd, struct epoll_event *event)