* Use F-Stack stack by default. * * If fdsize set SOCK_KERNEL(0x01000000) and not set SOCK_FSTACK(0x02000000), means use kernel stack. * And the max fdsize shoud be <= (SOCK_KERNEL - 1). * * If fdsize set [1, 16], means use kernel stack, need to consider a better implementation. */
| 1915 | * If fdsize set [1, 16], means use kernel stack, need to consider a better implementation. |
| 1916 | */ |
| 1917 | int |
| 1918 | ff_hook_epoll_create(int fdsize) |
| 1919 | { |
| 1920 | |
| 1921 | ERR_LOG("ff_hook_epoll_create, fdsize:%d\n", fdsize); |
| 1922 | if (inited == 0 || ((fdsize & SOCK_KERNEL) && !(fdsize & SOCK_FSTACK))/* || (fdsize >= 1 && fdsize <= 16)*/) { |
| 1923 | fdsize &= ~SOCK_KERNEL; |
| 1924 | return ff_linux_epoll_create(fdsize); |
| 1925 | } |
| 1926 | |
| 1927 | DEFINE_REQ_ARGS(epoll_create); |
| 1928 | |
| 1929 | args->size = size; |
| 1930 | |
| 1931 | SYSCALL(FF_SO_EPOLL_CREATE, args); |
| 1932 | |
| 1933 | if (ret >= 0) { |
| 1934 | #ifdef FF_KERNEL_EVENT |
| 1935 | int kernel_fd; |
| 1936 | |
| 1937 | kernel_fd = ff_linux_epoll_create(fdsize); |
| 1938 | fstack_kernel_fd_map[ret] = kernel_fd; |
| 1939 | ERR_LOG("ff_hook_epoll_create fstack fd:%d, FF_KERNEL_EVENT kernel_fd:%d:\n", ret, kernel_fd); |
| 1940 | #endif |
| 1941 | ret = convert_fstack_fd(ret); |
| 1942 | } |
| 1943 | |
| 1944 | ERR_LOG("ff_hook_epoll_create return fd:%d\n", ret); |
| 1945 | |
| 1946 | RETURN(); |
| 1947 | } |
| 1948 | |
| 1949 | int |
| 1950 | ff_hook_epoll_ctl(int epfd, int op, int fd, |
nothing calls this directly
no test coverage detected