Getting from an epoll event to the relevant handler function is currently several levels of functions and tests. This series simplifies this to be pretty close to a single switch on a value in the epoll ref dispatching directly to the appropriate handler. Based on the tap reset series. David Gibson (9): epoll: Generalize epoll_ref to cover things other than sockets epoll: Always use epoll_ref for the epoll data variable epoll: Fold sock_handler into general switch on epoll event fd epoll: Split handling of ICMP and ICMPv6 sockets epoll: Tiny cleanup to udp_sock_handler() epoll: Split handling of TCP timerfds into its own handler function epoll: Split handling of listening TCP sockets into their own handler epoll: Split listening Unix domain socket into its own type epoll: Use different epoll types for passt and pasta tap fds icmp.c | 118 +++++++++++++++++++++++++++++---------------------- icmp.h | 9 ++-- passt.c | 90 +++++++++++++++++++++++---------------- passt.h | 52 ++++++++++++++++++----- pasta.c | 8 +++- tap.c | 63 +++++++++++++-------------- tap.h | 7 ++- tcp.c | 64 ++++++++++------------------ tcp.h | 11 +++-- tcp_conn.h | 4 +- tcp_splice.c | 4 +- udp.c | 16 +++---- util.c | 27 +++++++++--- 13 files changed, 263 insertions(+), 210 deletions(-) -- 2.41.0