ia64/linux-2.6.18-xen.hg

annotate drivers/char/rio/route.h @ 893:f994bfe9b93b

linux/blktap2: reduce TLB flush scope

c/s 885 added very coarse TLB flushing. Since these flushes always
follow single page updates, single page flushes (when available) are
sufficient.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Jun 04 10:32:57 2009 +0100 (2009-06-04)
parents 831230e53067
children
rev   line source
ian@0 1 /****************************************************************************
ian@0 2 ******* *******
ian@0 3 ******* R O U T E H E A D E R
ian@0 4 ******* *******
ian@0 5 ****************************************************************************
ian@0 6
ian@0 7 Author : Ian Nandhra / Jeremy Rolls
ian@0 8 Date :
ian@0 9
ian@0 10 *
ian@0 11 * (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
ian@0 12 *
ian@0 13 * This program is free software; you can redistribute it and/or modify
ian@0 14 * it under the terms of the GNU General Public License as published by
ian@0 15 * the Free Software Foundation; either version 2 of the License, or
ian@0 16 * (at your option) any later version.
ian@0 17 *
ian@0 18 * This program is distributed in the hope that it will be useful,
ian@0 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ian@0 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ian@0 21 * GNU General Public License for more details.
ian@0 22 *
ian@0 23 * You should have received a copy of the GNU General Public License
ian@0 24 * along with this program; if not, write to the Free Software
ian@0 25 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
ian@0 26
ian@0 27 Version : 0.01
ian@0 28
ian@0 29
ian@0 30 Mods
ian@0 31 ----------------------------------------------------------------------------
ian@0 32 Date By Description
ian@0 33 ----------------------------------------------------------------------------
ian@0 34
ian@0 35 ***************************************************************************/
ian@0 36
ian@0 37 #ifndef _route_h
ian@0 38 #define _route_h
ian@0 39
ian@0 40 #ifdef SCCS_LABELS
ian@0 41 #ifndef lint
ian@0 42 /* static char *_rio_route_h_sccs = "@(#)route.h 1.3"; */
ian@0 43 #endif
ian@0 44 #endif
ian@0 45
ian@0 46 #define MAX_LINKS 4
ian@0 47 #define MAX_NODES 17 /* Maximum nodes in a subnet */
ian@0 48 #define NODE_BYTES ((MAX_NODES / 8) + 1) /* Number of bytes needed for
ian@0 49 1 bit per node */
ian@0 50 #define ROUTE_DATA_SIZE (NODE_BYTES + 2) /* Number of bytes for complete
ian@0 51 info about cost etc. */
ian@0 52 #define ROUTES_PER_PACKET ((PKT_MAX_DATA_LEN -2)/ ROUTE_DATA_SIZE)
ian@0 53 /* Number of nodes we can squeeze
ian@0 54 into one packet */
ian@0 55 #define MAX_TOPOLOGY_PACKETS (MAX_NODES / ROUTES_PER_PACKET + 1)
ian@0 56 /************************************************
ian@0 57 * Define the types of command for the ROUTE RUP.
ian@0 58 ************************************************/
ian@0 59 #define ROUTE_REQUEST 0 /* Request an ID */
ian@0 60 #define ROUTE_FOAD 1 /* Kill the RTA */
ian@0 61 #define ROUTE_ALREADY 2 /* ID given already */
ian@0 62 #define ROUTE_USED 3 /* All ID's used */
ian@0 63 #define ROUTE_ALLOCATE 4 /* Here it is */
ian@0 64 #define ROUTE_REQ_TOP 5 /* I bet you didn't expect....
ian@0 65 the Topological Inquisition */
ian@0 66 #define ROUTE_TOPOLOGY 6 /* Topology request answered FD */
ian@0 67 /*******************************************************************
ian@0 68 * Define the Route Map Structure
ian@0 69 *
ian@0 70 * The route map gives a pointer to a Link Structure to use.
ian@0 71 * This allows Disconnected Links to be checked quickly
ian@0 72 ******************************************************************/
ian@0 73 typedef struct COST_ROUTE COST_ROUTE;
ian@0 74 struct COST_ROUTE {
ian@0 75 unsigned char cost; /* Cost down this link */
ian@0 76 unsigned char route[NODE_BYTES]; /* Nodes thorough this route */
ian@0 77 };
ian@0 78
ian@0 79 typedef struct ROUTE_STR ROUTE_STR;
ian@0 80 struct ROUTE_STR {
ian@0 81 COST_ROUTE cost_route[MAX_LINKS];
ian@0 82 /* cost / route for this link */
ian@0 83 ushort favoured; /* favoured link */
ian@0 84 };
ian@0 85
ian@0 86
ian@0 87 #define NO_LINK (short) 5 /* Link unattached */
ian@0 88 #define ROUTE_NO_ID (short) 100 /* No Id */
ian@0 89 #define ROUTE_DISCONNECT (ushort) 0xff /* Not connected */
ian@0 90 #define ROUTE_INTERCONNECT (ushort) 0x40 /* Sub-net interconnect */
ian@0 91
ian@0 92
ian@0 93 #define SYNC_RUP (ushort) 255
ian@0 94 #define COMMAND_RUP (ushort) 254
ian@0 95 #define ERROR_RUP (ushort) 253
ian@0 96 #define POLL_RUP (ushort) 252
ian@0 97 #define BOOT_RUP (ushort) 251
ian@0 98 #define ROUTE_RUP (ushort) 250
ian@0 99 #define STATUS_RUP (ushort) 249
ian@0 100 #define POWER_RUP (ushort) 248
ian@0 101
ian@0 102 #define HIGHEST_RUP (ushort) 255 /* Set to Top one */
ian@0 103 #define LOWEST_RUP (ushort) 248 /* Set to bottom one */
ian@0 104
ian@0 105 #endif
ian@0 106
ian@0 107 /*********** end of file ***********/