diff --git a/libmctp-serial.h b/libmctp-serial.h
index 994173d..5504864 100644
--- a/libmctp-serial.h
+++ b/libmctp-serial.h
@@ -12,14 +12,24 @@
 struct mctp_binding_serial;
 
 struct mctp_binding_serial *mctp_serial_init(void);
-int mctp_serial_get_fd(struct mctp_binding_serial *serial);
+
 void mctp_serial_register_bus(struct mctp_binding_serial *serial,
 		struct mctp *mctp, mctp_eid_t eid);
+
+/* file-based IO */
+int mctp_serial_get_fd(struct mctp_binding_serial *serial);
 int mctp_serial_read(struct mctp_binding_serial *serial);
 int mctp_serial_open_path(struct mctp_binding_serial *serial,
 		const char *path);
 void mctp_serial_open_fd(struct mctp_binding_serial *serial, int fd);
 
+/* direct function call IO */
+typedef int (*mctp_serial_tx_fn)(void *data, void *buf, size_t len);
+void mctp_serial_set_tx_fn(struct mctp_binding_serial *serial,
+		mctp_serial_tx_fn fn, void *data);
+int mctp_serial_rx(struct mctp_binding_serial *serial,
+		const void *buf, size_t len);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/serial.c b/serial.c
index 081538f..f673a52 100644
--- a/serial.c
+++ b/serial.c
@@ -12,6 +12,11 @@
 
 #ifdef MCTP_HAVE_FILEIO
 #include <fcntl.h>
+#else
+static const size_t write(int fd, void *buf, size_t len)
+{
+	return -1;
+}
 #endif
 
 #define pr_fmt(x) "serial: " x
@@ -26,6 +31,9 @@
 	int			fd;
 	unsigned long		bus_id;
 
+	mctp_serial_tx_fn	tx_fn;
+	void			*tx_fn_data;
+
 	/* receive buffer and state */
 	uint8_t			rxbuf[1024];
 	struct mctp_pktbuf	*rx_pkt;
@@ -129,7 +137,12 @@
 	tlr->fcs_msb = 0;
 	tlr->fcs_lsb = 0;
 
-	write(serial->fd, serial->txbuf, sizeof(*hdr) + len + sizeof(*tlr));
+	len += sizeof(*hdr) + sizeof(*tlr);
+
+	if (serial->tx_fn)
+		serial->tx_fn(serial->tx_fn_data, serial->txbuf, len);
+	else
+		write(serial->fd, serial->txbuf, len);
 
 	return 0;
 }
@@ -237,8 +250,8 @@
 
 	mctp_prdebug(" -> state: %d", serial->rx_state);
 }
-static void __attribute__((used)) mctp_rx_consume(struct mctp_binding_serial *serial,
-		void *buf, size_t len)
+static void mctp_rx_consume(struct mctp_binding_serial *serial,
+		const void *buf, size_t len)
 {
 	size_t i;
 
@@ -286,6 +299,19 @@
 }
 #endif
 
+void mctp_serial_set_tx_fn(struct mctp_binding_serial *serial,
+		mctp_serial_tx_fn fn, void *data)
+{
+	serial->tx_fn = fn;
+	serial->tx_fn_data = data;
+}
+
+int mctp_serial_rx(struct mctp_binding_serial *serial,
+		const void *buf, size_t len)
+{
+	mctp_rx_consume(serial, buf, len);
+}
+
 void mctp_serial_register_bus(struct mctp_binding_serial *serial,
 		struct mctp *mctp, mctp_eid_t eid)
 {
