home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
usenet
/
altsrcs
/
1
/
1067
/
space-mux4
< prev
Wrap
Text File
|
1990-12-28
|
5KB
|
174 lines
/* Async device configuration file for the FAS async driver. */
/* This version is for the DFI MU440 mux board in expanded mode. This board
is reported to be compatible with the AST 4-port card.
*/
/* Originally written by
Jim Murray encore!cloud9!jjmhome!jjm
2 Mohawk Circle harvard!m2c!jjmhome!jjm
Westboro Mass 01581 jjm%jjmhome@m2c.m2c.org
USA voice (508) 366-2813
*/
/* Current author:
Uwe Doering gemini@geminix.mbx.sub.org
Billstedter Pfad 17 B
1000 Berlin 20
West Germany
*/
#ident "@(#)space.c 2.06"
#include <sys/fas.h>
/* This is the number of devices to be handled by this driver.
You may define up to 16 devices. If this number is changed
the arrays below must be filled in accordingly.
*/
#define NUM_PHYSICAL_UNITS 4
#if NUM_PHYSICAL_UNITS > MAX_UNITS
#undef NUM_PHYSICAL_UNITS
#define NUM_PHYSICAL_UNITS MAX_UNITS
#endif
/* let the driver know the number of devices */
uint fas_physical_units = NUM_PHYSICAL_UNITS;
/* array of base port addresses */
uint fas_port [NUM_PHYSICAL_UNITS] =
{
0x2a0, 0x2a8, 0x2b0, 0x2b8
};
/* array of interrupt vectors */
uint fas_vec [NUM_PHYSICAL_UNITS] =
{
0x4, 0x4, 0x4, 0x4
};
/* initial modem control port info
This value is ored into the modem control value for each UART. This is
normaly used to force out2 which is used to enable the interrupts of
the standard com1 and com2 ports. Several brands of cards have modes
that allow them to work in compatible mode like com1 and com2 or as a
mux. One of these cards is the MU-440 card by DFI. When this card is
used with the common interrupt out2 must not be set or there will be
a fight on the bus.
Note: This is one of the major trouble-spots with mux cards. Check
your manual.
*/
uint fas_mcb [NUM_PHYSICAL_UNITS] =
{
0, 0, 0, 0
};
/* array of modem control flags
You can choose which signals to use for modem control. See fas.h
for possible names and values. Whether or not modem control is
used is determined by the minor device number at open time.
*/
uint fas_modem [NUM_PHYSICAL_UNITS] =
{
EN_DTR | CA_DCD | UB_RING,
EN_DTR | CA_DCD | UB_RING,
EN_DTR | CA_DCD | UB_RING,
EN_DTR | CA_DCD | UB_RING
};
/* array of hardware flow control flags
You can choose which signals to use for hardware handshake. See fas.h
for possible names and values. Whether or not hardware handshake is
used is determined by the minor device number at open time.
*/
uint fas_flow [NUM_PHYSICAL_UNITS] =
{
HI_RTS | HO_CTS_ON_DSR,
HI_RTS | HO_CTS_ON_DSR,
HI_RTS | HO_CTS_ON_DSR,
HI_RTS | HO_CTS_ON_DSR
};
/* additional configurations for multiplexed interrupt boards
If you have a mux board, you may have to acknowledge interrupts
by writing to a special register. There may be a separate register
for every single port or for every interrupt vector or both.
The following arrays contain the special register addresses and
the corresponding values that are written to them in response
to an interrupt.
*/
/* array of int ack register addresses
These registers are written to every time after all interrupt
sources in the corresponding UART have been cleared.
Enter the addresses on a per unit base. An address of zero
disables this feature.
*/
uint fas_int_ack_port [NUM_PHYSICAL_UNITS] =
{
0, 0, 0, 0
};
/* array of int ack values
These values are written to the corresponding int ack register
in response to an interrupt.
*/
uint fas_int_ack [NUM_PHYSICAL_UNITS] =
{
0, 0, 0, 0
};
/* array of int ack mux register addresses
These registers are written to every time after all interrupt
sources in all of the UARTs that are tied to the corresponding
interrupt vector have been cleared.
Enter the addresses on a per vector base. An address of zero
disables this feature.
*/
uint fas_mux_ack_port [NUM_INT_VECTORS] =
{
0, 0, 0, 0,
0x2bf, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
};
/* array of int ack mux values
These values are written to the corresponding int ack mux register
in response to an interrupt.
*/
uint fas_mux_ack [NUM_INT_VECTORS] =
{
0, 0, 0, 0,
0x80, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
};
/* NOTHING NEEDS TO BE CHANGED BELOW THIS LINE.
============================================
*/
/* array of structures to hold all info for a physical minor device */
struct fas_info fas_info [NUM_PHYSICAL_UNITS];
/* array of ttys for logical minor devices */
struct tty fas_tty [NUM_PHYSICAL_UNITS * 2];
/* array of pointers to fas_info structures
this prevents time consuming multiplications for index calculation
*/
struct fas_info *fas_info_ptr [NUM_PHYSICAL_UNITS];
/* array of pointers to fas_tty structures
this prevents time consuming multiplications for index calculation
*/
struct tty *fas_tty_ptr [NUM_PHYSICAL_UNITS * 2];