| Viewing file:  serial.h (3.06 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/** include/linux/serial.h
 *
 * Copyright (C) 1992 by Theodore Ts'o.
 *
 * Redistribution of this file is permitted under the terms of the GNU
 * Public License (GPL)
 */
 
 #ifndef _UAPI_LINUX_SERIAL_H
 #define _UAPI_LINUX_SERIAL_H
 
 #include <linux/types.h>
 
 #include <linux/tty_flags.h>
 
 
 struct serial_struct {
 int    type;
 int    line;
 unsigned int    port;
 int    irq;
 int    flags;
 int    xmit_fifo_size;
 int    custom_divisor;
 int    baud_base;
 unsigned short    close_delay;
 char    io_type;
 char    reserved_char[1];
 int    hub6;
 unsigned short    closing_wait; /* time to wait before closing */
 unsigned short    closing_wait2; /* no longer used... */
 unsigned char    *iomem_base;
 unsigned short    iomem_reg_shift;
 unsigned int    port_high;
 unsigned long    iomap_base;    /* cookie passed into ioremap */
 };
 
 /*
 * For the close wait times, 0 means wait forever for serial port to
 * flush its output.  65535 means don't wait at all.
 */
 #define ASYNC_CLOSING_WAIT_INF    0
 #define ASYNC_CLOSING_WAIT_NONE    65535
 
 /*
 * These are the supported serial types.
 */
 #define PORT_UNKNOWN    0
 #define PORT_8250    1
 #define PORT_16450    2
 #define PORT_16550    3
 #define PORT_16550A    4
 #define PORT_CIRRUS     5    /* usurped by cyclades.c */
 #define PORT_16650    6
 #define PORT_16650V2    7
 #define PORT_16750    8
 #define PORT_STARTECH    9    /* usurped by cyclades.c */
 #define PORT_16C950    10    /* Oxford Semiconductor */
 #define PORT_16654    11
 #define PORT_16850    12
 #define PORT_RSA    13    /* RSA-DV II/S card */
 #define PORT_MAX    13
 
 #define SERIAL_IO_PORT    0
 #define SERIAL_IO_HUB6    1
 #define SERIAL_IO_MEM    2
 
 #define UART_CLEAR_FIFO        0x01
 #define UART_USE_FIFO        0x02
 #define UART_STARTECH        0x04
 #define UART_NATSEMI        0x08
 
 
 /*
 * Multiport serial configuration structure --- external structure
 */
 struct serial_multiport_struct {
 int        irq;
 int        port1;
 unsigned char    mask1, match1;
 int        port2;
 unsigned char    mask2, match2;
 int        port3;
 unsigned char    mask3, match3;
 int        port4;
 unsigned char    mask4, match4;
 int        port_monitor;
 int    reserved[32];
 };
 
 /*
 * Serial input interrupt line counters -- external structure
 * Four lines can interrupt: CTS, DSR, RI, DCD
 */
 struct serial_icounter_struct {
 int cts, dsr, rng, dcd;
 int rx, tx;
 int frame, overrun, parity, brk;
 int buf_overrun;
 int reserved[9];
 };
 
 /*
 * Serial interface for controlling RS485 settings on chips with suitable
 * support. Set with TIOCSRS485 and get with TIOCGRS485 if supported by your
 * platform. The set function returns the new state, with any unsupported bits
 * reverted appropriately.
 */
 
 struct serial_rs485 {
 __u32    flags;            /* RS485 feature flags */
 #define SER_RS485_ENABLED        (1 << 0)    /* If enabled */
 #define SER_RS485_RTS_ON_SEND        (1 << 1)    /* Logical level for
 RTS pin when
 sending */
 #define SER_RS485_RTS_AFTER_SEND    (1 << 2)    /* Logical level for
 RTS pin after sent*/
 #define SER_RS485_RX_DURING_TX        (1 << 4)
 __u32    delay_rts_before_send;    /* Delay before send (milliseconds) */
 __u32    delay_rts_after_send;    /* Delay after send (milliseconds) */
 __u32    padding[5];        /* Memory is cheap, new structs
 are a royal PITA .. */
 };
 
 #endif /* _UAPI_LINUX_SERIAL_H */
 
 |