Annotation of ntddk/src/vdd/com_vdd/uart.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * UART.h
                      3:  *
                      4:  * Definitions for the NS8250 & compatible UARTs
                      5:  *
                      6:  * copyright 1990 by Insignia Solutions Ltd. Used by permission.
                      7:  *
                      8:  * revision history:
                      9:  *  24-Dec-1992 John Morgan:  written based on  UART.h  written by Paul Huckle
                     10:  *
                     11:  */
                     12: 
                     13: #ifndef _UART_H
                     14: #define _UART_H
                     15: 
                     16: /*
                     17:  * ============================================================================
                     18:  * Structure/Data definitions
                     19:  * ============================================================================
                     20:  */
                     21: 
                     22: /* register type definitions follow: */
                     23: #ifndef WORD_BIT_FIELD
                     24: #define WORD_BIT_FIELD WORD
                     25: #endif
                     26: 
                     27: #ifndef BYTE_BIT_FIELD
                     28: #define BYTE_BIT_FIELD BYTE
                     29: #endif
                     30: 
                     31: typedef BYTE BUFFER_REG;
                     32: 
                     33: typedef union {
                     34:    WORD all;
                     35:    struct {
                     36:       WORD_BIT_FIELD LSB:8;
                     37:       WORD_BIT_FIELD MSB:8;
                     38:    } byte;
                     39: } DIVISOR_LATCH;
                     40: 
                     41: typedef union {
                     42:     struct {
                     43:          BYTE_BIT_FIELD data_available:1;
                     44:          BYTE_BIT_FIELD tx_holding:1;
                     45:          BYTE_BIT_FIELD rx_line:1;
                     46:          BYTE_BIT_FIELD modem_status:1;
                     47:          BYTE_BIT_FIELD pad:4;
                     48:            } bits;
                     49:     BYTE all;
                     50:       } INT_ENABLE_REG;
                     51: 
                     52: // define the meaning of IIR values instead of defining its structure
                     53: #define UART_RLS_INT    6
                     54: #define UART_RDA_INT    4
                     55: #define UART_THRE_INT   2
                     56: #define UART_MS_INT     0
                     57: #define UART_NO_INT     1
                     58: 
                     59: typedef union {
                     60:     struct {
                     61:          BYTE_BIT_FIELD word_length:2;
                     62:          BYTE_BIT_FIELD no_of_stop_bits:1;
                     63:          BYTE_BIT_FIELD parity_enabled:1;
                     64:          BYTE_BIT_FIELD even_parity:1;
                     65:          BYTE_BIT_FIELD stick_parity:1;
                     66:          BYTE_BIT_FIELD set_break:1;
                     67:          BYTE_BIT_FIELD DLAB:1;
                     68:            } bits;
                     69:     BYTE all;
                     70:       } LINE_CONTROL_REG;
                     71: 
                     72: typedef union {
                     73:     struct {
                     74:          BYTE_BIT_FIELD DTR:1;
                     75:          BYTE_BIT_FIELD RTS:1;
                     76:          BYTE_BIT_FIELD OUT1:1;
                     77:          BYTE_BIT_FIELD OUT2:1;
                     78:          BYTE_BIT_FIELD loop:1;
                     79:          BYTE_BIT_FIELD pad:3;
                     80:            } bits;
                     81:     BYTE all;
                     82:       } MODEM_CONTROL_REG;
                     83: 
                     84: typedef union {
                     85:     struct {
                     86:          BYTE_BIT_FIELD data_ready:1;
                     87:          BYTE_BIT_FIELD overrun_error:1;
                     88:          BYTE_BIT_FIELD parity_error:1;
                     89:          BYTE_BIT_FIELD framing_error:1;
                     90:          BYTE_BIT_FIELD break_interrupt:1;
                     91:          BYTE_BIT_FIELD tx_holding_empty:1;
                     92:          BYTE_BIT_FIELD tx_shift_empty:1;
                     93:          BYTE_BIT_FIELD pad:1;
                     94:            } bits;
                     95:     BYTE all;
                     96:       } LINE_STATUS_REG;
                     97: 
                     98: typedef union {
                     99:     struct {
                    100:          BYTE_BIT_FIELD delta_CTS:1;
                    101:          BYTE_BIT_FIELD delta_DSR:1;
                    102:          BYTE_BIT_FIELD TERI:1;
                    103:          BYTE_BIT_FIELD delta_RLSD:1;
                    104:          BYTE_BIT_FIELD CTS:1;
                    105:          BYTE_BIT_FIELD DSR:1;
                    106:          BYTE_BIT_FIELD RI:1;
                    107:          BYTE_BIT_FIELD RLSD:1;
                    108:            } bits;
                    109:     BYTE all;
                    110:       } MODEM_STATUS_REG;
                    111: 
                    112: /* register select code definitions follow: */
                    113: 
                    114: #define UART_TX_RX     0
                    115: #define UART_THR       0
                    116: #define UART_RBR       0
                    117: #define UART_IER       1
                    118: #define UART_IIR       2
                    119: #define UART_LCR       3
                    120: #define UART_MCR       4
                    121: #define UART_LSR       5
                    122: #define UART_MSR       6
                    123: #define UART_SCRATCH   7
                    124: 
                    125: #define UART_PARITY_ON 1   /* line control setting for parity enabled */
                    126: #define UART_PARITY_OFF 0  /* line control setting for parity disabled */
                    127: 
                    128: #define UART_PARITY_ODD 0  /* line control setting for odd parity */
                    129: #define UART_PARITY_EVEN 1 /* line control setting for even parity */
                    130: 
                    131: #define UART_PARITY_STICK 1  /* line control setting for stick(y) parity */
                    132: 
                    133: #endif /* _UART_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.