root/drivers/misc/sgi-gru/gru.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  *  Copyright (c) 2008 Silicon Graphics, Inc.  All Rights Reserved.
   3  *
   4  *  This program is free software; you can redistribute it and/or modify
   5  *  it under the terms of the GNU Lesser General Public License as published by
   6  *  the Free Software Foundation; either version 2.1 of the License, or
   7  *  (at your option) any later version.
   8  *
   9  *  This program is distributed in the hope that it will be useful,
  10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  *  GNU Lesser General Public License for more details.
  13  *
  14  *  You should have received a copy of the GNU Lesser General Public License
  15  *  along with this program; if not, write to the Free Software
  16  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  17  */
  18 
  19 #ifndef __GRU_H__
  20 #define __GRU_H__
  21 
  22 /*
  23  * GRU architectural definitions
  24  */
  25 #define GRU_CACHE_LINE_BYTES            64
  26 #define GRU_HANDLE_STRIDE               256
  27 #define GRU_CB_BASE                     0
  28 #define GRU_DS_BASE                     0x20000
  29 
  30 /*
  31  * Size used to map GRU GSeg
  32  */
  33 #if defined(CONFIG_IA64)
  34 #define GRU_GSEG_PAGESIZE       (256 * 1024UL)
  35 #elif defined(CONFIG_X86_64)
  36 #define GRU_GSEG_PAGESIZE       (256 * 1024UL)          /* ZZZ 2MB ??? */
  37 #else
  38 #error "Unsupported architecture"
  39 #endif
  40 
  41 /*
  42  * Structure for obtaining GRU resource information
  43  */
  44 struct gru_chiplet_info {
  45         int     node;
  46         int     chiplet;
  47         int     blade;
  48         int     total_dsr_bytes;
  49         int     total_cbr;
  50         int     total_user_dsr_bytes;
  51         int     total_user_cbr;
  52         int     free_user_dsr_bytes;
  53         int     free_user_cbr;
  54 };
  55 
  56 /*
  57  * Statictics kept for each context.
  58  */
  59 struct gru_gseg_statistics {
  60         unsigned long   fmm_tlbmiss;
  61         unsigned long   upm_tlbmiss;
  62         unsigned long   tlbdropin;
  63         unsigned long   context_stolen;
  64         unsigned long   reserved[10];
  65 };
  66 
  67 /* Flags for GRU options on the gru_create_context() call */
  68 /* Select one of the follow 4 options to specify how TLB misses are handled */
  69 #define GRU_OPT_MISS_DEFAULT    0x0000  /* Use default mode */
  70 #define GRU_OPT_MISS_USER_POLL  0x0001  /* User will poll CB for faults */
  71 #define GRU_OPT_MISS_FMM_INTR   0x0002  /* Send interrupt to cpu to
  72                                            handle fault */
  73 #define GRU_OPT_MISS_FMM_POLL   0x0003  /* Use system polling thread */
  74 #define GRU_OPT_MISS_MASK       0x0003  /* Mask for TLB MISS option */
  75 
  76 
  77 
  78 #endif          /* __GRU_H__ */

/* [<][>][^][v][top][bottom][index][help] */