map.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2. ** -----------------------------------------------------------------------------
  3. **
  4. **  Perle Specialix driver for Linux
  5. **  Ported from existing RIO Driver for SCO sources.
  6.  *
  7.  *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
  8.  *
  9.  *      This program is free software; you can redistribute it and/or modify
  10.  *      it under the terms of the GNU General Public License as published by
  11.  *      the Free Software Foundation; either version 2 of the License, or
  12.  *      (at your option) any later version.
  13.  *
  14.  *      This program is distributed in the hope that it will be useful,
  15.  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *      GNU General Public License for more details.
  18.  *
  19.  *      You should have received a copy of the GNU General Public License
  20.  *      along with this program; if not, write to the Free Software
  21.  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22. **
  23. ** Module : map.h
  24. ** SID : 1.2
  25. ** Last Modified : 11/6/98 11:34:11
  26. ** Retrieved : 11/6/98 11:34:21
  27. **
  28. **  ident @(#)map.h 1.2
  29. **
  30. ** -----------------------------------------------------------------------------
  31. */
  32. #ifndef __rio_map_h__
  33. #define __rio_map_h__
  34. #ifdef SCCS_LABELS
  35. static char *_map_h_sccs_ = "@(#)map.h 1.2";
  36. #endif
  37. /*
  38. ** mapping structure passed to and from the config.rio program to
  39. ** determine the current topology of the world
  40. */
  41. #define MAX_MAP_ENTRY 17
  42. #define TOTAL_MAP_ENTRIES (MAX_MAP_ENTRY*RIO_SLOTS)
  43. #define MAX_NAME_LEN 32
  44. struct Map
  45. {
  46. uint HostUniqueNum;         /* Supporting hosts unique number */
  47. uint RtaUniqueNum;         /* Unique number */
  48. /*
  49. ** The next two IDs must be swapped on big-endian architectures
  50. ** when using a v2.04 /etc/rio/config with a v3.00 driver (when
  51. ** upgrading for example).
  52. */
  53. ushort ID; /* ID used in the subnet */
  54. ushort ID2; /* ID of 2nd block of 8 for 16 port */
  55. ulong Flags; /* Booted, ID Given, Disconnected */
  56. ulong SysPort; /* First tty mapped to this port */
  57. struct Top   Topology[LINKS_PER_UNIT]; /* ID connected to each link */
  58. char Name[MAX_NAME_LEN];        /* Cute name by which RTA is known */
  59. };
  60. /*
  61. ** Flag values:
  62. */
  63. #define RTA_BOOTED 0x00000001
  64. #define RTA_NEWBOOT 0x00000010
  65. #define MSG_DONE 0x00000020
  66. #define RTA_INTERCONNECT 0x00000040
  67. #define RTA16_SECOND_SLOT 0x00000080
  68. #define BEEN_HERE 0x00000100
  69. #define SLOT_TENTATIVE 0x40000000
  70. #define SLOT_IN_USE 0x80000000
  71. /*
  72. ** HostUniqueNum is the unique number from the host card that this RTA
  73. ** is to be connected to.
  74. ** RtaUniqueNum is the unique number of the RTA concerned. It will be ZERO
  75. ** if the slot in the table is unused. If it is the same as the HostUniqueNum
  76. ** then this slot represents a host card.
  77. ** Flags contains current boot/route state info
  78. ** SysPort is a value in the range 0-504, being the number of the first tty
  79. ** on this RTA. Each RTA supports 8 ports. The SysPort value must be modulo 8.
  80. ** SysPort 0-127 correspond to /dev/ttyr001 to /dev/ttyr128, with minor
  81. ** numbers 0-127. SysPort 128-255 correspond to /dev/ttyr129 to /dev/ttyr256,
  82. ** again with minor numbers 0-127, and so on for SysPorts 256-383 and 384-511
  83. ** ID will be in the range 0-16 for a `known' RTA. ID will be 0xFFFF for an
  84. ** unused slot/unknown ID etc.
  85. ** The Topology array contains the ID of the unit connected to each of the
  86. ** four links on this unit. The entry will be 0xFFFF if NOTHING is connected
  87. ** to the link, or will be 0xFF00 if an UNKNOWN unit is connected to the link.
  88. ** The Name field is a null-terminated string, upto 31 characters, containing
  89. ** the 'cute' name that the sysadmin/users know the RTA by. It is permissible
  90. ** for this string to contain any character in the range 40 to 176 inclusive.
  91. ** In particular, ctrl sequences and DEL (0x7F, 177) are not allowed. The
  92. ** special character '%' IS allowable, and needs no special action.
  93. **
  94. */
  95. #endif