map.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. unsigned int HostUniqueNum; /* Supporting hosts unique number */
  46. unsigned int RtaUniqueNum; /* Unique number */
  47. /*
  48. ** The next two IDs must be swapped on big-endian architectures
  49. ** when using a v2.04 /etc/rio/config with a v3.00 driver (when
  50. ** upgrading for example).
  51. */
  52. unsigned short ID; /* ID used in the subnet */
  53. unsigned short ID2; /* ID of 2nd block of 8 for 16 port */
  54. unsigned long Flags; /* Booted, ID Given, Disconnected */
  55. unsigned long SysPort; /* First tty mapped to this port */
  56. struct Top Topology[LINKS_PER_UNIT]; /* ID connected to each link */
  57. char Name[MAX_NAME_LEN]; /* Cute name by which RTA is known */
  58. };
  59. /*
  60. ** Flag values:
  61. */
  62. #define RTA_BOOTED 0x00000001
  63. #define RTA_NEWBOOT 0x00000010
  64. #define MSG_DONE 0x00000020
  65. #define RTA_INTERCONNECT 0x00000040
  66. #define RTA16_SECOND_SLOT 0x00000080
  67. #define BEEN_HERE 0x00000100
  68. #define SLOT_TENTATIVE 0x40000000
  69. #define SLOT_IN_USE 0x80000000
  70. /*
  71. ** HostUniqueNum is the unique number from the host card that this RTA
  72. ** is to be connected to.
  73. ** RtaUniqueNum is the unique number of the RTA concerned. It will be ZERO
  74. ** if the slot in the table is unused. If it is the same as the HostUniqueNum
  75. ** then this slot represents a host card.
  76. ** Flags contains current boot/route state info
  77. ** SysPort is a value in the range 0-504, being the number of the first tty
  78. ** on this RTA. Each RTA supports 8 ports. The SysPort value must be modulo 8.
  79. ** SysPort 0-127 correspond to /dev/ttyr001 to /dev/ttyr128, with minor
  80. ** numbers 0-127. SysPort 128-255 correspond to /dev/ttyr129 to /dev/ttyr256,
  81. ** again with minor numbers 0-127, and so on for SysPorts 256-383 and 384-511
  82. ** ID will be in the range 0-16 for a `known' RTA. ID will be 0xFFFF for an
  83. ** unused slot/unknown ID etc.
  84. ** The Topology array contains the ID of the unit connected to each of the
  85. ** four links on this unit. The entry will be 0xFFFF if NOTHING is connected
  86. ** to the link, or will be 0xFF00 if an UNKNOWN unit is connected to the link.
  87. ** The Name field is a null-terminated string, upto 31 characters, containing
  88. ** the 'cute' name that the sysadmin/users know the RTA by. It is permissible
  89. ** for this string to contain any character in the range \040 to \176 inclusive.
  90. ** In particular, ctrl sequences and DEL (0x7F, \177) are not allowed. The
  91. ** special character '%' IS allowable, and needs no special action.
  92. **
  93. */
  94. #endif