diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c
index 9998710..4ce916f 100644
--- a/src/mux_fcgi.c
+++ b/src/mux_fcgi.c
@@ -353,7 +353,8 @@
 
 static struct task *fcgi_timeout_task(struct task *t, void *context, unsigned short state);
 static int fcgi_process(struct fcgi_conn *fconn);
-static struct task *fcgi_io_cb(struct task *t, void *ctx, unsigned short state);
+/* fcgi_io_cb is exported to see it resolved in "show fd" */
+struct task *fcgi_io_cb(struct task *t, void *ctx, unsigned short state);
 static inline struct fcgi_strm *fcgi_conn_st_by_id(struct fcgi_conn *fconn, int id);
 static struct task *fcgi_deferred_shut(struct task *t, void *ctx, unsigned short state);
 static struct fcgi_strm *fcgi_conn_stream_new(struct fcgi_conn *fconn, struct conn_stream *cs, struct session *sess);
@@ -2926,7 +2927,7 @@
 }
 
 /* this is the tasklet referenced in fconn->wait_event.tasklet */
-static struct task *fcgi_io_cb(struct task *t, void *ctx, unsigned short status)
+struct task *fcgi_io_cb(struct task *t, void *ctx, unsigned short status)
 {
 	struct connection *conn;
 	struct fcgi_conn *fconn;
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 75eb5f7..857b1c3 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -258,7 +258,8 @@
 static int h1_recv(struct h1c *h1c);
 static int h1_send(struct h1c *h1c);
 static int h1_process(struct h1c *h1c);
-static struct task *h1_io_cb(struct task *t, void *ctx, unsigned short state);
+/* h1_io_cb is exported to see it resolved in "show fd" */
+struct task *h1_io_cb(struct task *t, void *ctx, unsigned short state);
 static struct task *h1_timeout_task(struct task *t, void *context, unsigned short state);
 static void h1_shutw_conn(struct connection *conn, enum cs_shw_mode mode);
 static void h1_wake_stream_for_recv(struct h1s *h1s);
@@ -2475,7 +2476,7 @@
 	return -1;
 }
 
-static struct task *h1_io_cb(struct task *t, void *ctx, unsigned short status)
+struct task *h1_io_cb(struct task *t, void *ctx, unsigned short status)
 {
 	struct connection *conn;
 	struct tasklet *tl = (struct tasklet *)t;
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 55ed8da..de8e097 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -545,7 +545,8 @@
 static int h2_send(struct h2c *h2c);
 static int h2_recv(struct h2c *h2c);
 static int h2_process(struct h2c *h2c);
-static struct task *h2_io_cb(struct task *t, void *ctx, unsigned short state);
+/* h2_io_cb is exported to see it resolved in "show fd" */
+struct task *h2_io_cb(struct task *t, void *ctx, unsigned short state);
 static inline struct h2s *h2c_st_by_id(struct h2c *h2c, int id);
 static int h2c_decode_headers(struct h2c *h2c, struct buffer *rxbuf, uint32_t *flags, unsigned long long *body_len);
 static int h2_frt_transfer_data(struct h2s *h2s);
@@ -3696,7 +3697,7 @@
 }
 
 /* this is the tasklet referenced in h2c->wait_event.tasklet */
-static struct task *h2_io_cb(struct task *t, void *ctx, unsigned short status)
+struct task *h2_io_cb(struct task *t, void *ctx, unsigned short status)
 {
 	struct connection *conn;
 	struct tasklet *tl = (struct tasklet *)t;
diff --git a/src/mux_pt.c b/src/mux_pt.c
index 1530996..4191ee6 100644
--- a/src/mux_pt.c
+++ b/src/mux_pt.c
@@ -53,8 +53,10 @@
 	}
 }
 
-/* Callback, used when we get I/Os while in idle mode */
-static struct task *mux_pt_io_cb(struct task *t, void *tctx, unsigned short status)
+/* Callback, used when we get I/Os while in idle mode. This one is exported so
+ * that "show fd" can resolve it.
+ */
+struct task *mux_pt_io_cb(struct task *t, void *tctx, unsigned short status)
 {
 	struct mux_pt_ctx *ctx = tctx;
 
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index f866bfd..483662e 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -182,7 +182,8 @@
 
 INITCALL1(STG_REGISTER, stats_register_module, &ssl_stats_module);
 
-static struct task *ssl_sock_io_cb(struct task *, void *, unsigned short);
+/* ssl_sock_io_cb is exported to see it resolved in "show fd" */
+struct task *ssl_sock_io_cb(struct task *, void *, unsigned short);
 static int ssl_sock_handshake(struct connection *conn, unsigned int flag);
 
 /* Methods to implement OpenSSL BIO */
@@ -5578,7 +5579,7 @@
 	return (ctx->xprt->remove_xprt(conn, ctx->xprt_ctx, toremove_ctx, newops, newctx));
 }
 
-static struct task *ssl_sock_io_cb(struct task *t, void *context, unsigned short state)
+struct task *ssl_sock_io_cb(struct task *t, void *context, unsigned short state)
 {
 	struct tasklet *tl = (struct tasklet *)t;
 	struct ssl_sock_ctx *ctx = context;
diff --git a/src/xprt_handshake.c b/src/xprt_handshake.c
index 752a4f3..15e2a8f 100644
--- a/src/xprt_handshake.c
+++ b/src/xprt_handshake.c
@@ -36,7 +36,8 @@
 	return 0;
 }
 
-static struct task *xprt_handshake_io_cb(struct task *t, void *bctx, unsigned short state)
+/* xprt_handshake_io_cb is exported to see it resolved in "show fd" */
+struct task *xprt_handshake_io_cb(struct task *t, void *bctx, unsigned short state)
 {
 	struct xprt_handshake_ctx *ctx = bctx;
 	struct connection *conn = ctx->conn;
diff --git a/src/xprt_quic.c b/src/xprt_quic.c
index a690b2f..f8e807c 100644
--- a/src/xprt_quic.c
+++ b/src/xprt_quic.c
@@ -3852,7 +3852,7 @@
 }
 
 /* QUIC connection packet handler task. */
-static struct task *quic_conn_io_cb(struct task *t, void *context, unsigned short state)
+struct task *quic_conn_io_cb(struct task *t, void *context, unsigned short state)
 {
 	struct quic_conn_ctx *ctx = context;
 
