summaryrefslogtreecommitdiff
path: root/include/linux/serial_core.h
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-01-21 22:50:36 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-01-21 22:50:36 +0000
commit747c8a55946ed037bf7d62454c3c599c02af2262 (patch)
tree4c20f97a7700da30efa6e6e5f88ca13fe2b8470c /include/linux/serial_core.h
parentba899dbc036d24ab6b45faf64e3648a268721cc9 (diff)
downloadlwn-747c8a55946ed037bf7d62454c3c599c02af2262.tar.gz
lwn-747c8a55946ed037bf7d62454c3c599c02af2262.zip
[SERIAL] Make uart_info flags a bitwise type
The potential for confusing the flags is fairly high. Make uart_info's flags a bitwise type so sparse can check that the right flag definitions are used with the right structure. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/linux/serial_core.h')
-rw-r--r--include/linux/serial_core.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index b74ff34469b9..90f681789a64 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -287,6 +287,9 @@ struct uart_state {
};
#define UART_XMIT_SIZE PAGE_SIZE
+
+typedef unsigned int __bitwise__ uif_t;
+
/*
* This is the state information which is only valid when the port
* is open; it may be freed by the core driver once the device has
@@ -296,17 +299,16 @@ struct uart_state {
struct uart_info {
struct tty_struct *tty;
struct circ_buf xmit;
- unsigned int flags;
+ uif_t flags;
/*
- * These are the flags that specific to info->flags, and reflect our
- * internal state. They can not be accessed via port->flags. Low
- * level drivers must not change these, but may query them instead.
+ * Definitions for info->flags. These are _private_ to serial_core, and
+ * are specific to this structure. They may be queried by low level drivers.
*/
-#define UIF_CHECK_CD (1 << 25)
-#define UIF_CTS_FLOW (1 << 26)
-#define UIF_NORMAL_ACTIVE (1 << 29)
-#define UIF_INITIALIZED (1 << 31)
+#define UIF_CHECK_CD ((__force uif_t) (1 << 25))
+#define UIF_CTS_FLOW ((__force uif_t) (1 << 26))
+#define UIF_NORMAL_ACTIVE ((__force uif_t) (1 << 29))
+#define UIF_INITIALIZED ((__force uif_t) (1 << 31))
int blocked_open;