serial: Add non-fileio interface to serial binding

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Change-Id: I86d04368bdb5b2348f947717c1806cbbbdd29b17
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