blob: ffabca173fc8b66b3441828eb28e3365872b84b0 [file] [log] [blame]
Fei Jie258a2252016-04-08 15:59:15 +08001#include "tests.h"
2#include <sys/syscall.h>
3
Dmitry V. Levin6d440122016-05-09 21:46:17 +00004#ifdef __NR_epoll_ctl
Fei Jie258a2252016-04-08 15:59:15 +08005
Fei Jie258a2252016-04-08 15:59:15 +08006# include <inttypes.h>
7# include <stdio.h>
8# include <sys/epoll.h>
9# include <unistd.h>
10
11int
12main(void)
13{
14 struct epoll_event *const ev = tail_alloc(sizeof(*ev));
15 ev->events = EPOLLIN;
16
Dmitry V. Levinbecfc0e2016-04-21 20:37:50 +000017 long rc = syscall(__NR_epoll_ctl, -1, EPOLL_CTL_ADD, -2, ev);
Fei Jie258a2252016-04-08 15:59:15 +080018 printf("epoll_ctl(-1, EPOLL_CTL_ADD, -2, {EPOLLIN,"
Dmitry V. Levinbecfc0e2016-04-21 20:37:50 +000019 " {u32=%u, u64=%" PRIu64 "}}) = %ld %s (%m)\n",
20 ev->data.u32, ev->data.u64, rc, errno2name());
Fei Jie258a2252016-04-08 15:59:15 +080021
Dmitry V. Levin2399a602016-04-10 22:38:00 +000022 rc = syscall(__NR_epoll_ctl, -3, EPOLL_CTL_DEL, -4, ev);
Dmitry V. Levinbecfc0e2016-04-21 20:37:50 +000023 printf("epoll_ctl(-3, EPOLL_CTL_DEL, -4, %p) = %ld %s (%m)\n",
Dmitry V. Levin9f6611b2016-04-21 17:49:32 +000024 ev, rc, errno2name());
Dmitry V. Levin2399a602016-04-10 22:38:00 +000025
26 rc = syscall(__NR_epoll_ctl, -1L, EPOLL_CTL_MOD, -16L, 0);
Dmitry V. Levinbecfc0e2016-04-21 20:37:50 +000027 printf("epoll_ctl(-1, EPOLL_CTL_MOD, -16, NULL) = %ld %s (%m)\n",
Dmitry V. Levin9f6611b2016-04-21 17:49:32 +000028 rc, errno2name());
Dmitry V. Levin2399a602016-04-10 22:38:00 +000029
Fei Jie258a2252016-04-08 15:59:15 +080030 puts("+++ exited with 0 +++");
31 return 0;
32}
33
34#else
35
Dmitry V. Levin6d440122016-05-09 21:46:17 +000036SKIP_MAIN_UNDEFINED("__NR_epoll_ctl")
Fei Jie258a2252016-04-08 15:59:15 +080037
38#endif