grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Export functions to allow any module to perform primitive operat


From: Shea Levy
Subject: [PATCH] Export functions to allow any module to perform primitive operations on serial port devices
Date: Thu, 27 Oct 2011 14:31:46 -0400

Hello all,

These two commits make it straightforward for any module to interact
with serial devices. The essential change is making grub_serial_find
non-static and declaring it in serial.h, but I also added some inline
convenience functions so you can call grub_serial_port_whatever(port,
other-args) instead of port -> driver -> whatever(port, other-args).

Cheers,
Shea Levy

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: address@hidden
# target_branch: http://bzr.savannah.gnu.org/r/grub/trunk/grub/
# testament_sha1: 8aca8d33bc1fbdcfd66d4082429c751629561875
# timestamp: 2011-10-27 14:11:36 -0400
# base_revision_id: address@hidden
#
# Begin patch
=== modified file 'grub-core/term/serial.c'
--- grub-core/term/serial.c     2011-10-14 17:16:37 +0000
+++ grub-core/term/serial.c     2011-10-27 17:14:47 +0000
@@ -125,7 +125,7 @@

 

-static struct grub_serial_port *
+struct grub_serial_port *
 grub_serial_find (char *name)
 {
   struct grub_serial_port *port;

=== modified file 'include/grub/serial.h'
--- include/grub/serial.h       2011-02-19 12:18:05 +0000
+++ include/grub/serial.h       2011-10-27 17:46:03 +0000
@@ -96,6 +96,29 @@

 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 +140,7 @@

 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);


# Begin bundle
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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]