[Top][All Lists]
[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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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] Export functions to allow any module to perform primitive operations on serial port devices,
Shea Levy <=