diff options
author | marcel <marcel@FreeBSD.org> | 2007-04-02 22:00:22 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2007-04-02 22:00:22 +0000 |
commit | f30daf4b49b0b9e3c8eeb46082244bf7a7f354ae (patch) | |
tree | b3ad51f3cb65c3badfb015aea4f71d800157abb8 /sys/dev/uart/uart_bus.h | |
parent | 5f0f57215ba83757397d27e8dcc686612e48e921 (diff) | |
download | FreeBSD-src-f30daf4b49b0b9e3c8eeb46082244bf7a7f354ae.zip FreeBSD-src-f30daf4b49b0b9e3c8eeb46082244bf7a7f354ae.tar.gz |
Don't expose the uart_ops structure directly, but instead have
it obtained through the uart_class structure. This allows us
to declare the uart_class structure as weak and as such allows
us to reference it even when it's not compiled-in.
It also allows is to get the uart_ops structure by name, which
makes it possible to implement the dt tag handling in uart_getenv().
The side-effect of all this is that we're using the uart_class
structure more consistently which means that we now also have
access to the size of the bus space block needed by the hardware
when we map the bus space, eliminating any hardcoding.
Diffstat (limited to 'sys/dev/uart/uart_bus.h')
-rw-r--r-- | sys/dev/uart/uart_bus.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/dev/uart/uart_bus.h b/sys/dev/uart/uart_bus.h index 5396515..7154d85 100644 --- a/sys/dev/uart/uart_bus.h +++ b/sys/dev/uart/uart_bus.h @@ -67,14 +67,11 @@ */ struct uart_class { KOBJ_CLASS_FIELDS; + struct uart_ops *uc_ops; /* Low-level console operations. */ u_int uc_range; /* Bus space address range. */ u_int uc_rclk; /* Default rclk for this device. */ }; -extern struct uart_class uart_ns8250_class; -extern struct uart_class uart_sab82532_class; -extern struct uart_class uart_z8530_class; - struct uart_softc { KOBJ_FIELDS; struct uart_class *sc_class; |