|
|
1.1 ! root 1: /* ! 2: * PC_com.h ! 3: * ! 4: * function and structure definitions used external to PC_com.c ! 5: * ! 6: * copyright 1992 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 com.h from Insignia Solutions ! 11: * ! 12: */ ! 13: ! 14: #define NUM_SERIAL_PORTS 4 ! 15: ! 16: typedef unsigned tAdapter; ! 17: #define INVALID_UART ((tAdapter) ~0) ! 18: #define adapter_for_port(port) \ ! 19: (((port & 0x3F8) == 0x3F8) ? COM1 : \ ! 20: ((port & 0x3F8) == 0x2F8) ? COM2 : \ ! 21: ((port & 0x3F8) == 0x3E8) ? COM3 : \ ! 22: ((port & 0x3F8) == 0x2E8) ? COM4 : INVALID_UART) ! 23: ! 24: #include "UART.h" ! 25: ! 26: typedef struct ! 27: { ! 28: BUFFER_REG rx_buff_reg; ! 29: DIVISOR_LATCH divisor_latch; ! 30: INT_ENABLE_REG int_enable_reg; ! 31: LINE_CONTROL_REG line_control_reg; ! 32: MODEM_CONTROL_REG modem_control_reg; ! 33: LINE_STATUS_REG line_status_reg; ! 34: MODEM_STATUS_REG modem_status_reg; ! 35: BYTE scratch; /* scratch register */ ! 36: ! 37: MODEM_STATUS_REG last_modem_status_value; ! 38: BOOLEAN modem_status_changed; ! 39: BOOLEAN divisor_latch_state; ! 40: BOOLEAN baud_rate_changed; ! 41: ! 42: BOOLEAN break_state; /* either OFF or ON */ ! 43: ! 44: BYTE modem_ctrl_state; ! 45: BOOLEAN loopback_state; /* either OFF or ON */ ! 46: BOOLEAN out2_state; /* either OFF or ON */ ! 47: ! 48: BOOLEAN receiver_line_status_interrupt_state; ! 49: BOOLEAN data_available_interrupt_state; ! 50: BOOLEAN tx_holding_register_empty_interrupt_state; ! 51: BOOLEAN modem_status_interrupt_state; ! 52: BOOLEAN interrupt_line_state; ! 53: ! 54: BYTE hw_interrupt_priority; ! 55: BYTE com_baud_ind; ! 56: BOOLEAN had_first_read; ! 57: ! 58: } UART_STATE; ! 59: ! 60: ! 61: extern void com_init( tAdapter ); ! 62: extern void com_close( tAdapter ); ! 63: extern void com_reset( tAdapter ); ! 64: ! 65: extern void com_flush_printer( tAdapter ); ! 66: ! 67: extern void com_inb( WORD, BYTE * ); ! 68: extern void com_outb( WORD, BYTE ); ! 69: ! 70: extern void com_recv_char( tAdapter ); ! 71: extern void com_modem_change( tAdapter ); ! 72: ! 73: extern void com_int_data( tAdapter, int *, int * ); ! 74: ! 75: extern void clear_tbr_flag( UART_STATE * ); ! 76: extern void set_modem_control( tAdapter ); ! 77: ! 78: extern void raise_rls_interrupt( UART_STATE * ); ! 79: extern void raise_rda_interrupt( UART_STATE * ); ! 80: extern void raise_ms_interrupt( UART_STATE * ); ! 81: extern void raise_thre_interrupt( UART_STATE * ); ! 82: ! 83: #if 0 ! 84: extern BOOL check_rda_interrupt( UART_STATE * ); ! 85: #endif ! 86: #define check_rda_interrupt(pUART) ((pUART)->data_available_interrupt_state) ! 87: ! 88: #define COM1 0 ! 89: #define COM2 1 ! 90: #define COM3 2 ! 91: #define COM4 3 ! 92:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.