]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Allow all modules to perform serial IO
authorShea Levy <slevy@tieronedesign.com>
Thu, 10 Nov 2011 08:41:07 +0000 (09:41 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 10 Nov 2011 08:41:07 +0000 (09:41 +0100)
* grub-core/term-serial.c (grub_serial_find): Remove static qualifier
* include/grub/serial.h (grub_serial_port_configure): New inline
function.
(grub_serial_port_fetch): Likewise.
(grub_serial_port_put): Likewise.
(grub_serial_port_fini): Likewise.
(grub_serial_find): New proto.

ChangeLog
grub-core/term/serial.c
include/grub/serial.h

index f293e07733dd807b804b7ca9847f15befad698dd..6c73043878b2148b7e31e21892e89f96d0dfdf4f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2011-11-10  Shea Levy  <slevy@tieronedesign.com>
+
+       Allow all modules to perform serial IO
+
+       * grub-core/term-serial.c (grub_serial_find): Remove static qualifier
+       * include/grub/serial.h (grub_serial_port_configure): New inline
+       function.
+       (grub_serial_port_fetch): Likewise.
+       (grub_serial_port_put): Likewise.
+       (grub_serial_port_fini): Likewise.
+       (grub_serial_find): New proto.
+
 2011-11-10  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Put symlink at the end of the node and fix a potential
index 306694192a430346c0f9447c24354cb92a053ebd..86935626c01a9719910659473e0598d1bf0445ed 100644 (file)
@@ -125,7 +125,7 @@ static struct grub_term_output grub_serial_term_output =
 
 \f
 
-static struct grub_serial_port *
+struct grub_serial_port *
 grub_serial_find (char *name)
 {
   struct grub_serial_port *port;
index 41b720891f063e0bb5d5493c324f11698e8f7376..49ac0623adbf79de6f1e32ee5a33cf8b71b28da8 100644 (file)
@@ -96,6 +96,32 @@ grub_err_t EXPORT_FUNC(grub_serial_register) (struct grub_serial_port *port);
 
 void EXPORT_FUNC(grub_serial_unregister) (struct grub_serial_port *port);
 
+  /* Convenience functions to perform primitive operations on a port.  */
+static inline grub_err_t
+grub_serial_port_configure (struct grub_serial_port *port,
+                           struct grub_serial_config *config)
+{
+  return port->driver->configure (port, config);
+}
+
+static inline int
+grub_serial_port_fetch (struct grub_serial_port *port)
+{
+  return port->driver->fetch (port);
+}
+
+static inline void
+grub_serial_port_put (struct grub_serial_port *port, const int c)
+{
+  port->driver->put (port, c);
+}
+
+static inline void
+grub_serial_port_fini (struct grub_serial_port *port)
+{
+  port->driver->fini (port);
+}
+
   /* Set default settings.  */
 static inline grub_err_t
 grub_serial_config_defaults (struct grub_serial_port *port)
@@ -117,6 +143,7 @@ grub_serial_config_defaults (struct grub_serial_port *port)
 
 void grub_ns8250_init (void);
 char *grub_serial_ns8250_add_port (grub_port_t port);
+struct grub_serial_port *grub_serial_find (char *name);
 extern struct grub_serial_driver grub_ns8250_driver;
 void EXPORT_FUNC(grub_serial_unregister_driver) (struct grub_serial_driver *driver);