~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/ia64/include/asm/sn/geo.h

Version: ~ [ linux-5.13-rc5 ] ~ [ linux-5.12.9 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.42 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.124 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.193 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.235 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.271 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.271 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * This file is subject to the terms and conditions of the GNU General Public
  3  * License.  See the file "COPYING" in the main directory of this archive
  4  * for more details.
  5  *
  6  * Copyright (C) 1992 - 1997, 2000-2005 Silicon Graphics, Inc. All rights reserved.
  7  */
  8 
  9 #ifndef _ASM_IA64_SN_GEO_H
 10 #define _ASM_IA64_SN_GEO_H
 11 
 12 /* The geoid_t implementation below is based loosely on the pcfg_t
 13    implementation in sys/SN/promcfg.h. */
 14 
 15 /* Type declaractions */
 16 
 17 /* Size of a geoid_t structure (must be before decl. of geoid_u) */
 18 #define GEOID_SIZE      8       /* Would 16 be better?  The size can
 19                                    be different on different platforms. */
 20 
 21 #define MAX_SLOTS       0xf     /* slots per module */
 22 #define MAX_SLABS       0xf     /* slabs per slot */
 23 
 24 typedef unsigned char   geo_type_t;
 25 
 26 /* Fields common to all substructures */
 27 typedef struct geo_common_s {
 28     moduleid_t  module;         /* The module (box) this h/w lives in */
 29     geo_type_t  type;           /* What type of h/w is named by this geoid_t */
 30     slabid_t    slab:4;         /* slab (ASIC), 0 .. 15 within slot */
 31     slotid_t    slot:4;         /* slot (Blade), 0 .. 15 within module */
 32 } geo_common_t;
 33 
 34 /* Additional fields for particular types of hardware */
 35 typedef struct geo_node_s {
 36     geo_common_t        common;         /* No additional fields needed */
 37 } geo_node_t;
 38 
 39 typedef struct geo_rtr_s {
 40     geo_common_t        common;         /* No additional fields needed */
 41 } geo_rtr_t;
 42 
 43 typedef struct geo_iocntl_s {
 44     geo_common_t        common;         /* No additional fields needed */
 45 } geo_iocntl_t;
 46 
 47 typedef struct geo_pcicard_s {
 48     geo_iocntl_t        common;
 49     char                bus;    /* Bus/widget number */
 50     char                slot;   /* PCI slot number */
 51 } geo_pcicard_t;
 52 
 53 /* Subcomponents of a node */
 54 typedef struct geo_cpu_s {
 55     geo_node_t  node;
 56     char        slice;          /* Which CPU on the node */
 57 } geo_cpu_t;
 58 
 59 typedef struct geo_mem_s {
 60     geo_node_t  node;
 61     char        membus;         /* The memory bus on the node */
 62     char        memslot;        /* The memory slot on the bus */
 63 } geo_mem_t;
 64 
 65 
 66 typedef union geoid_u {
 67     geo_common_t        common;
 68     geo_node_t          node;
 69     geo_iocntl_t        iocntl;
 70     geo_pcicard_t       pcicard;
 71     geo_rtr_t           rtr;
 72     geo_cpu_t           cpu;
 73     geo_mem_t           mem;
 74     char                padsize[GEOID_SIZE];
 75 } geoid_t;
 76 
 77 
 78 /* Preprocessor macros */
 79 
 80 #define GEO_MAX_LEN     48      /* max. formatted length, plus some pad:
 81                                    module/001c07/slab/5/node/memory/2/slot/4 */
 82 
 83 /* Values for geo_type_t */
 84 #define GEO_TYPE_INVALID        0
 85 #define GEO_TYPE_MODULE         1
 86 #define GEO_TYPE_NODE           2
 87 #define GEO_TYPE_RTR            3
 88 #define GEO_TYPE_IOCNTL         4
 89 #define GEO_TYPE_IOCARD         5
 90 #define GEO_TYPE_CPU            6
 91 #define GEO_TYPE_MEM            7
 92 #define GEO_TYPE_MAX            (GEO_TYPE_MEM+1)
 93 
 94 /* Parameter for hwcfg_format_geoid_compt() */
 95 #define GEO_COMPT_MODULE        1
 96 #define GEO_COMPT_SLAB          2
 97 #define GEO_COMPT_IOBUS         3
 98 #define GEO_COMPT_IOSLOT        4
 99 #define GEO_COMPT_CPU           5
100 #define GEO_COMPT_MEMBUS        6
101 #define GEO_COMPT_MEMSLOT       7
102 
103 #define GEO_INVALID_STR         "<invalid>"
104 
105 #define INVALID_NASID           ((nasid_t)-1)
106 #define INVALID_CNODEID         ((cnodeid_t)-1)
107 #define INVALID_PNODEID         ((pnodeid_t)-1)
108 #define INVALID_SLAB            (slabid_t)-1
109 #define INVALID_SLOT            (slotid_t)-1
110 #define INVALID_MODULE          ((moduleid_t)-1)
111 
112 static inline slabid_t geo_slab(geoid_t g)
113 {
114         return (g.common.type == GEO_TYPE_INVALID) ?
115                 INVALID_SLAB : g.common.slab;
116 }
117 
118 static inline slotid_t geo_slot(geoid_t g)
119 {
120         return (g.common.type == GEO_TYPE_INVALID) ?
121                 INVALID_SLOT : g.common.slot;
122 }
123 
124 static inline moduleid_t geo_module(geoid_t g)
125 {
126         return (g.common.type == GEO_TYPE_INVALID) ?
127                 INVALID_MODULE : g.common.module;
128 }
129 
130 extern geoid_t cnodeid_get_geoid(cnodeid_t cnode);
131 
132 #endif /* _ASM_IA64_SN_GEO_H */
133 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp