Annotation of ntddk/src/vdd/com_vdd/nt_com.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * NT_com.h
        !             3:  *
        !             4:  * function and structure definitions used external to NT_com.c
        !             5:  *
        !             6:  * copyright 1992, 1993 by Microsoft Corporation
        !             7:  * portions copyright 1991 by Insignia Solutions Ltd., used by permission.
        !             8:  *
        !             9:  * revision history:
        !            10:  *  24-Dec-1992 John Morgan:  written based on  nt_com.h  written by D.A.Bartlett
        !            11:  *   4-Jan-1993 John Morgan:  added support for buffered transmits
        !            12:  *
        !            13:  */
        !            14: 
        !            15: #define XMIT_BUFFER 1
        !            16: 
        !            17: typedef enum 
        !            18: {
        !            19:     HOST_ADAPTER_NOT_OPEN,
        !            20:     HOST_ADAPTER_OPEN,
        !            21:     HOST_ADAPTER_SUSPENDED,
        !            22:     HOST_ADAPTER_DISABLED
        !            23: } host_adapter_status_t;
        !            24: 
        !            25: // the maximum size of the receive buffer
        !            26: #define RX_BUFFER_SIZE  250
        !            27: 
        !            28: // the maximum size of a transmit buffer
        !            29: #define TX_BUFFER_SIZE  250
        !            30: 
        !            31: #if (XMIT_BUFFER)
        !            32: 
        !            33: typedef struct tTX_buffer
        !            34: {
        !            35:     HANDLE wait[2];                 // mutal exclusion & FULL buffer signal
        !            36:     tAdapter adapter;               // signal what port is using buffer
        !            37:     DWORD byte_count;               // number of characters in buffer
        !            38:     BYTE bytes[TX_BUFFER_SIZE];     // the bytes to be output
        !            39:     OVERLAPPED Overlap;             // Overlapped I/O structure
        !            40: } tTX_buffer, *pTX_buffer;
        !            41: 
        !            42: #endif
        !            43: 
        !            44: typedef struct
        !            45: {
        !            46:     UART_STATE uart;                    // state of simulated UART
        !            47: 
        !            48:     /*...................................................... Host interface */
        !            49:     host_adapter_status_t host_adapter_status;
        !            50:     int ReOpenCounter;                  // Counter to restrict open attempts
        !            51:     HANDLE handle;                      // Device handle
        !            52:     DCB dcb;                            // device control block
        !            53: 
        !            54:     long modem_status;                  // modem status line settings
        !            55:     HANDLE ModemEvent;                  // Get modem status control event
        !            56: 
        !            57:     /*.............................................. Access control objects */
        !            58:     int AdapterLockCnt;                 // Adapter lock count
        !            59:     CRITICAL_SECTION AdapterLock;
        !            60: 
        !            61:     DWORD EvtMask;                      // Communication events
        !            62:     OVERLAPPED WaitOverlap;
        !            63:     OVERLAPPED RXOverlap;
        !            64: 
        !            65: #if (!XMIT_BUFFER)
        !            66:     /*......................................... TX overlapped I/O structure */
        !            67:     OVERLAPPED TXOverlap;
        !            68: 
        !            69: #else
        !            70:     /*......................................... TX buffer control variables */
        !            71:     int TX_full_length;                 // how many characters before xmit full
        !            72:     volatile pTX_buffer tx_buffer;      // TX transmit buffer
        !            73: 
        !            74:     /*............................................. TX thread handle and ID */
        !            75:     DWORD TXThreadID;                   // RX thread ID
        !            76:     HANDLE TXThreadHandle;              // RX thread handle
        !            77: 
        !            78: #endif
        !            79: 
        !            80:     /*......................................... RX buffer control variables */
        !            81:     DWORD rx_error;                     // error for char at end of buffer
        !            82:     char  rx_buffer[RX_BUFFER_SIZE];    // RX character buffer
        !            83:     char *rx_end;                       // end of current chars
        !            84:     char *rx_curr;                      // Next character to read
        !            85:     BOOLEAN rx_waiting;                 // Waiting for rx interrupt
        !            86: 
        !            87:     /*............................................. RX thread handle and ID */
        !            88:     volatile BOOL TerminateRXThread;
        !            89:     DWORD RXThreadID;                   // RX thread ID
        !            90:     HANDLE RXThreadHandle;              // RX thread handle
        !            91: 
        !            92: } tHostCom, *pHostCom;
        !            93: 
        !            94: extern tHostCom host_com[NUM_SERIAL_PORTS];
        !            95: #define UART_ADAPTER(x) host_com[x].uart
        !            96: 
        !            97: /*:::::::::::::::::::::::::::::::::::::::::::::::::::::: host com interface */
        !            98: 
        !            99: void host_com_lock( tAdapter );
        !           100: void host_com_unlock( tAdapter );
        !           101: void host_com_rx_wait( tAdapter );
        !           102: 
        !           103: void host_com_init();
        !           104: void host_com_exit();
        !           105: 
        !           106: void host_com_close( tAdapter );
        !           107: //void host_com_reset( tAdapter );         // not used
        !           108: #define host_com_reset(x)
        !           109: ULONG host_com_ioctl( tAdapter, int, long );
        !           110: DWORD host_com_get_error( tAdapter );
        !           111: BOOL host_com_data_avail( tAdapter );
        !           112: BOOL host_com_read_rx( tAdapter, BYTE* );
        !           113: BOOL host_com_write_tx( tAdapter, BYTE );
        !           114: 
        !           115: void host_com_char_read( tAdapter, int );
        !           116: 
        !           117: // short host_com_valid
        !           118: //    ( BYTE hostID, ConfigValues *val, NameTable *dummy, CHAR *errString );
        !           119: void host_com_change( BYTE hostID, BOOL apply );
        !           120: short host_com_active( BYTE hostID, BOOL active, CHAR *errString );
        !           121: 
        !           122: 
        !           123: /*:::::::::::::::::::::::::::::::::::::::::::::::::: Enumeration definitions */
        !           124: 
        !           125: #define HOST_COM_MODEM_CTRL     0000001
        !           126: #define HOST_COM_LINE_CTRL      0000002
        !           127: #define HOST_COM_BAUD           0000003 
        !           128: #define HOST_COM_CBRK           0000004
        !           129: #define HOST_COM_SBRK           0000005
        !           130: #define HOST_COM_MSTATUS        0000010
        !           131: //#define HOST_COM_FLUSH          0000011
        !           132: //#define HOST_COM_INPUT_READY    0000012
        !           133: 
        !           134: // bit masks for defining host modem status
        !           135: #define HOST_MS_CTS             (1 << 0)
        !           136: #define HOST_MS_RI              (1 << 1)
        !           137: #define HOST_MS_DSR             (1 << 2)
        !           138: #define HOST_MS_RLSD            (1 << 3)
        !           139: 
        !           140: // bit masks for defining host modem control
        !           141: #define HOST_MC_RTS             (1 << 0)
        !           142: #define HOST_MC_DTR             (1 << 1)
        !           143: 
        !           144: // bit masks for defining host line control
        !           145: #define HOST_LC_DATABITS       0x00F
        !           146: #define HOST_LC_DATA_5         0x005
        !           147: #define HOST_LC_DATA_6         0x006
        !           148: #define HOST_LC_DATA_7         0x007
        !           149: #define HOST_LC_DATA_8         0x008
        !           150: 
        !           151: #define HOST_LC_STOPBITS       0x0F0
        !           152: #define HOST_LC_STOP_1         0x010
        !           153: #define HOST_LC_STOP_2         0x020
        !           154: #define HOST_LC_STOP_15        0x030
        !           155: 
        !           156: #define HOST_LC_PARITY         0xF00
        !           157: #define HOST_LC_PARITY_NONE    0xF00
        !           158: #define HOST_LC_PARITY_EVEN    0x000
        !           159: #define HOST_LC_PARITY_ODD     0x100
        !           160: #define HOST_LC_PARITY_SPACE   0x200
        !           161: #define HOST_LC_PARITY_MARK    0x300
        !           162: 

unix.superglobalmegacorp.com

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