diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c
index 46c77cb..afc6423 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 80af533..aee86c9 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -2264,7 +2264,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 f9b0805..084cac5 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -547,7 +547,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);
@@ -3703,7 +3704,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 57c1b9e..9981ba8 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 e42f647..4b4ab21 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -140,6 +140,10 @@
 DECLARE_STATIC_POOL(ssl_sock_ctx_pool, "ssl_sock_ctx_pool", sizeof(struct ssl_sock_ctx));
 
 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 */
@@ -5470,7 +5474,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;
