2005-04-16 15:20:36 -07:00
/*
* * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* *
* * Perle Specialix driver for Linux
* * Ported from existing RIO Driver for SCO sources .
*
* ( C ) 1990 - 2000 Specialix International Ltd . , Byfleet , Surrey , UK .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
* *
* * Module : map . h
* * SID : 1.2
* * Last Modified : 11 / 6 / 98 11 : 34 : 11
* * Retrieved : 11 / 6 / 98 11 : 34 : 21
* *
* * ident @ ( # ) map . h 1.2
* *
* * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
# ifndef __rio_map_h__
# define __rio_map_h__
# ifdef SCCS_LABELS
static char * _map_h_sccs_ = " @(#)map.h 1.2 " ;
# endif
/*
* * mapping structure passed to and from the config . rio program to
* * determine the current topology of the world
*/
# define MAX_MAP_ENTRY 17
# define TOTAL_MAP_ENTRIES (MAX_MAP_ENTRY*RIO_SLOTS)
# define MAX_NAME_LEN 32
2006-01-11 12:17:49 -08:00
struct Map {
2006-03-24 03:18:31 -08:00
unsigned int HostUniqueNum ; /* Supporting hosts unique number */
unsigned int RtaUniqueNum ; /* Unique number */
2005-04-16 15:20:36 -07:00
/*
2006-01-11 12:17:49 -08:00
* * The next two IDs must be swapped on big - endian architectures
* * when using a v2 .04 / etc / rio / config with a v3 .00 driver ( when
* * upgrading for example ) .
*/
2006-03-24 03:18:31 -08:00
unsigned short ID ; /* ID used in the subnet */
unsigned short ID2 ; /* ID of 2nd block of 8 for 16 port */
unsigned long Flags ; /* Booted, ID Given, Disconnected */
unsigned long SysPort ; /* First tty mapped to this port */
2006-01-11 12:17:49 -08:00
struct Top Topology [ LINKS_PER_UNIT ] ; /* ID connected to each link */
char Name [ MAX_NAME_LEN ] ; /* Cute name by which RTA is known */
2005-04-16 15:20:36 -07:00
} ;
/*
* * Flag values :
*/
# define RTA_BOOTED 0x00000001
# define RTA_NEWBOOT 0x00000010
# define MSG_DONE 0x00000020
# define RTA_INTERCONNECT 0x00000040
# define RTA16_SECOND_SLOT 0x00000080
# define BEEN_HERE 0x00000100
# define SLOT_TENTATIVE 0x40000000
# define SLOT_IN_USE 0x80000000
/*
* * HostUniqueNum is the unique number from the host card that this RTA
* * is to be connected to .
* * RtaUniqueNum is the unique number of the RTA concerned . It will be ZERO
* * if the slot in the table is unused . If it is the same as the HostUniqueNum
* * then this slot represents a host card .
* * Flags contains current boot / route state info
* * SysPort is a value in the range 0 - 504 , being the number of the first tty
* * on this RTA . Each RTA supports 8 ports . The SysPort value must be modulo 8.
* * SysPort 0 - 127 correspond to / dev / ttyr001 to / dev / ttyr128 , with minor
* * numbers 0 - 127. SysPort 128 - 255 correspond to / dev / ttyr129 to / dev / ttyr256 ,
* * again with minor numbers 0 - 127 , and so on for SysPorts 256 - 383 and 384 - 511
* * ID will be in the range 0 - 16 for a ` known ' RTA . ID will be 0xFFFF for an
* * unused slot / unknown ID etc .
* * The Topology array contains the ID of the unit connected to each of the
* * four links on this unit . The entry will be 0xFFFF if NOTHING is connected
* * to the link , or will be 0xFF00 if an UNKNOWN unit is connected to the link .
* * The Name field is a null - terminated string , upto 31 characters , containing
* * the ' cute ' name that the sysadmin / users know the RTA by . It is permissible
* * for this string to contain any character in the range \ 040 to \ 176 inclusive .
* * In particular , ctrl sequences and DEL ( 0x7F , \ 177 ) are not allowed . The
* * special character ' % ' IS allowable , and needs no special action .
* *
*/
# endif