mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
276 lines
7.9 KiB
276 lines
7.9 KiB
#ifndef _HOST_COM_H
|
|
#define _HOST_COM_H
|
|
|
|
/*[
|
|
Name: host_com.h
|
|
Derived From: Base 2.0
|
|
Author: Ross Beresford
|
|
Created On:
|
|
Sccs ID: 12/13/94 @(#)host_com.h 1.10
|
|
Purpose:
|
|
Definition of the interface between the generic communications
|
|
adapter emulation functions and the host specific functions.
|
|
THIS IS A BASE MODULE
|
|
|
|
Users of the comms emulation functions must provide an
|
|
implementation of the following host specific functions:
|
|
|
|
VOID host_com_reset(adapter)
|
|
int adapter;
|
|
{
|
|
Initialise communications channel for "adapter"
|
|
}
|
|
|
|
SHORT host_com_valid
|
|
(UTINY hostID, ConfigValues *val, NameTable *dummy, CHAR *errString)
|
|
{
|
|
Routine to validate a comms entry, called by config system.
|
|
}
|
|
|
|
VOID host_com_change(UTINY hostID, BOOL apply)
|
|
{
|
|
Routine called by config to clean up after validation depending
|
|
on if apply is true or not. If not then the validation files
|
|
are to be closed, otherwise the active adapter is to be shutdown and
|
|
the validation data transfered.
|
|
}
|
|
|
|
SHORT host_com_active(UTINY hostID, BOOL active, CHAR *errString)
|
|
{
|
|
Connect the adapter to the outside world. Open or close
|
|
the adapter as appropiate.
|
|
}
|
|
|
|
VOID host_com_close(adapter)
|
|
int adapter;
|
|
{
|
|
Close communications channel for "adapter"
|
|
}
|
|
|
|
VOID host_com_read(adapter, value, error_mask)
|
|
int adapter;
|
|
char *value;
|
|
int *error_mask;
|
|
{
|
|
Read communications channel for "adapter", placing the result in the
|
|
character address pointed to by "value". Bits in "error_mask" may be
|
|
set to indicate that the character is invalid for the following
|
|
reason(s):
|
|
|
|
HOST_COM_FRAMING_ERROR framing error
|
|
HOST_COM_OVERRUN_ERROR overrun error
|
|
HOST_COM_PARITY_ERROR parity error
|
|
HOST_COM_BREAK_RECEIVED break on input line
|
|
HOST_COM_NO_DATA value was not data
|
|
}
|
|
|
|
VOID host_com_write(adapter, value)
|
|
int adapter;
|
|
char value;
|
|
{
|
|
Write "value" to the communications channel for "adapter"
|
|
}
|
|
|
|
VOID host_com_ioctl(adapter, request, arg)
|
|
int adapter;
|
|
int request;
|
|
long arg;
|
|
{
|
|
Perform control function "request" qualified by "arg" on the
|
|
communications channel for "adapter".
|
|
|
|
Request may take the following values:
|
|
|
|
HOST_COM_SBRK :- Set break control for "adapter"; "arg" has no
|
|
significance
|
|
|
|
HOST_COM_CBRK :- Clear break control for "adapter"; "arg" has no
|
|
significance
|
|
|
|
HOST_COM_SDTR :- Set data terminal ready for "adapter"; "arg" has no
|
|
significance
|
|
|
|
HOST_COM_CDTR :- Clear data terminal ready for "adapter"; "arg" has
|
|
no significance
|
|
|
|
HOST_COM_SRTS :- Set request to send for "adapter"; "arg" has no
|
|
significance
|
|
|
|
HOST_COM_CRTS :- Clear request to send for "adapter"; "arg" has no
|
|
significance
|
|
|
|
HOST_COM_INPUT_READY :- Set the value pointed to by (int *) "arg" to
|
|
TRUE if there is input pending for "adapter"
|
|
|
|
|
|
HOST_COM_MODEM :- Set the value pointed to by (int *) "arg" to the
|
|
current modem status; the following bit fields are
|
|
significant and represent the state of the modem
|
|
input signals:
|
|
|
|
HOST_COM_MODEM_CTS clear to send
|
|
HOST_COM_MODEM_RI ring indicator
|
|
HOST_COM_MODEM_DSR data set ready
|
|
HOST_COM_MODEM_RLSD received line signal detect
|
|
|
|
HOST_COM_BAUD :- Change the baud rate to that corresponding to the
|
|
value of "arg"; the following values of "arg" are
|
|
significant:
|
|
|
|
HOST_COM_B50 50 baud
|
|
HOST_COM_B75 75 baud
|
|
HOST_COM_B110 110 baud
|
|
HOST_COM_B134 134.5 baud
|
|
HOST_COM_B150 150 baud
|
|
HOST_COM_B300 300 baud
|
|
HOST_COM_B600 600 baud
|
|
HOST_COM_B1200 1200 baud
|
|
HOST_COM_B1800 1800 baud
|
|
HOST_COM_B2000 2000 baud
|
|
HOST_COM_B2400 2400 baud
|
|
HOST_COM_B3600 3600 baud
|
|
HOST_COM_B4800 4800 baud
|
|
HOST_COM_B7200 7200 baud
|
|
HOST_COM_B9600 9600 baud
|
|
HOST_COM_B19200 19200 baud
|
|
HOST_COM_B38400 38400 baud
|
|
HOST_COM_B57600 57600 baud
|
|
HOST_COM_B115200 115200 baud
|
|
|
|
HOST_COM_FLUSH :- Flush output; "arg" has no significance
|
|
|
|
HOST_COM_DATABITS :- Set the line discipline to use "arg" data bits.
|
|
|
|
HOST_COM_STOPBITS :- Set the line discipline to use "arg" stop bits.
|
|
|
|
HOST_COM_PARITY :- Set the line discipline to the parity setting
|
|
implied by "arg", which may take one of the
|
|
following values:
|
|
|
|
HOST_COM_PARITY_NONE no parity
|
|
HOST_COM_PARITY_EVEN even parity
|
|
HOST_COM_PARITY_ODD odd parity
|
|
HOST_COM_PARITY_MARK parity stuck at 1
|
|
HOST_COM_PARITY_SPACE parity stuck at 0
|
|
}
|
|
|
|
GLOBAL void host_com_enable_autoflush IFN1(IS32,adapter)
|
|
{
|
|
Reset the autoflush disabled flag for the serial port.
|
|
}
|
|
|
|
GLOBAL void host_com_disable_autoflush IFN1(IS32,adapter)
|
|
{
|
|
Cancel any outstanding autoflush event for the serial port and set the
|
|
autoflush disabled flag for the serial port.
|
|
}
|
|
|
|
#ifndef macintosh
|
|
GLOBAL void host_com_xon_change IFN2(IU8,hostID, IBOOL,apply)
|
|
{
|
|
If the serial port is not active then do nothing.
|
|
If the serial port is active then change the flow control parameter of
|
|
the device.
|
|
If the serial port also has an asynchronous event manager defined then
|
|
change the mode of the event manager.
|
|
}
|
|
#endif macintosh
|
|
|
|
(c)Copyright Insignia Solutions Ltd., 1990. All rights reserved.
|
|
]*/
|
|
|
|
IMPORT VOID host_com_reset IPT1(int,adapter);
|
|
|
|
IMPORT SHORT host_com_valid
|
|
IPT4(UTINY,hostID,ConfigValues *,val,NameTable *,dummy,CHAR *,errString);
|
|
IMPORT VOID host_com_change IPT2(UTINY,hostID, BOOL,apply);
|
|
IMPORT SHORT host_com_active IPT3(UTINY,hostID, BOOL,active, CHAR *,errString);
|
|
IMPORT VOID host_com_close IPT1(int,adapter);
|
|
|
|
#if defined(NTVDM) && defined(FIFO_ON)
|
|
IMPORT UTINY host_com_read_char(int adapter, FIFORXDATA *buffer, UTINY count);
|
|
IMPORT VOID host_com_fifo_char_read(int adapter);
|
|
#endif
|
|
|
|
IMPORT VOID host_com_read IPT3(int,adapter,UTINY *,value, int *,error_mask);
|
|
IMPORT VOID host_com_write IPT2(int,adapter, char,value);
|
|
IMPORT VOID host_com_ioctl IPT3(int,adapter, int,request, LONG,arg);
|
|
|
|
#ifdef NTVDM
|
|
extern boolean host_com_check_adapter(int adapter);
|
|
extern void host_com_lock(int adapter);
|
|
extern void host_com_unlock(int adapter);
|
|
extern int host_com_char_read(int adapter, int da_int);
|
|
extern void host_com_disable_open(int adapter, int disableOpen);
|
|
extern void host_com_da_int_change(int adapter, int da_int_state, int da_data_state);
|
|
#define host_com_msr_callback(a,b)
|
|
#endif
|
|
|
|
#ifdef PS_FLUSHING
|
|
IMPORT void host_com_enable_autoflush IPT1(IS32,adapter);
|
|
IMPORT void host_com_disable_autoflush IPT1(IS32,adapter);
|
|
#endif /* PS_FLUSHING */
|
|
|
|
#ifndef macintosh
|
|
IMPORT void host_com_xon_change IPT2(IU8,hostID, IBOOL,apply);
|
|
#endif /* macintosh */
|
|
|
|
#define HOST_COM_SBRK 0000001
|
|
#define HOST_COM_CBRK 0000002
|
|
#define HOST_COM_SDTR 0000003
|
|
#define HOST_COM_CDTR 0000004
|
|
#define HOST_COM_SRTS 0000005
|
|
#define HOST_COM_CRTS 0000006
|
|
#define HOST_COM_MODEM 0000007
|
|
#define HOST_COM_BAUD 0000010
|
|
#define HOST_COM_FLUSH 0000011
|
|
#define HOST_COM_INPUT_READY 0000012
|
|
#define HOST_COM_DATABITS 0000013
|
|
#define HOST_COM_STOPBITS 0000014
|
|
#define HOST_COM_PARITY 0000015
|
|
|
|
#ifdef NTVDM
|
|
#define HOST_COM_LSR 0000016
|
|
#endif
|
|
|
|
#define HOST_COM_FRAMING_ERROR (1 << 0)
|
|
#define HOST_COM_OVERRUN_ERROR (1 << 1)
|
|
#define HOST_COM_BREAK_RECEIVED (1 << 2)
|
|
#define HOST_COM_PARITY_ERROR (1 << 3)
|
|
#define HOST_COM_NO_DATA (1 << 4)
|
|
#ifdef NTVDM
|
|
#define HOST_COM_FIFO_ERROR (1 << 7)
|
|
#endif
|
|
|
|
#define HOST_COM_MODEM_CTS (1 << 0)
|
|
#define HOST_COM_MODEM_RI (1 << 1)
|
|
#define HOST_COM_MODEM_DSR (1 << 2)
|
|
#define HOST_COM_MODEM_RLSD (1 << 3)
|
|
|
|
#define HOST_COM_B50 0000001
|
|
#define HOST_COM_B75 0000002
|
|
#define HOST_COM_B110 0000003
|
|
#define HOST_COM_B134 0000004
|
|
#define HOST_COM_B150 0000005
|
|
#define HOST_COM_B300 0000006
|
|
#define HOST_COM_B600 0000007
|
|
#define HOST_COM_B1200 0000010
|
|
#define HOST_COM_B1800 0000011
|
|
#define HOST_COM_B2000 0000012
|
|
#define HOST_COM_B2400 0000013
|
|
#define HOST_COM_B3600 0000014
|
|
#define HOST_COM_B4800 0000015
|
|
#define HOST_COM_B7200 0000016
|
|
#define HOST_COM_B9600 0000017
|
|
#define HOST_COM_B19200 0000020
|
|
#define HOST_COM_B38400 0000021
|
|
#define HOST_COM_B57600 0000022
|
|
#define HOST_COM_B115200 0000023
|
|
|
|
#define HOST_COM_PARITY_NONE 0000000
|
|
#define HOST_COM_PARITY_EVEN 0000001
|
|
#define HOST_COM_PARITY_ODD 0000002
|
|
#define HOST_COM_PARITY_MARK 0000003
|
|
#define HOST_COM_PARITY_SPACE 0000004
|
|
|
|
#endif /* _HOST_COM_H */
|