1 \
   2 \ Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
   3 \ Use is subject to license terms.
   4 \
   5 \ CDDL HEADER START
   6 \
   7 \ The contents of this file are subject to the terms of the
   8 \ Common Development and Distribution License, Version 1.0 only
   9 \ (the "License").  You may not use this file except in compliance
  10 \ with the License.
  11 \
  12 \ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  13 \ or http://www.opensolaris.org/os/licensing.
  14 \ See the License for the specific language governing permissions
  15 \ and limitations under the License.
  16 \
  17 \ When distributing Covered Code, include this CDDL HEADER in each
  18 \ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  19 \ If applicable, add the following below this CDDL HEADER, with the
  20 \ fields enclosed by brackets "[]" replaced with your own identifying
  21 \ information: Portions Copyright [yyyy] [name of copyright owner]
  22 \
  23 \ CDDL HEADER END
  24 \
  25 
  26 #pragma ident   "%Z%%M% %I%     %E% SMI"
  27 
  28 #include <sys/types.h>
  29 #include <sys/sunddi.h>
  30 #include <sys/zulumod.h>
  31 #include <sys/zulu_hat.h>
  32 
  33 zulu_hat
  34         zulu_tsb        ZULU_HAT_TSB
  35         zulu_tsb_size   ZULU_HAT_TSB_SZ
  36         zulu_ctx        ZULU_HAT_CTX
  37 
  38 #ifdef ZULUVM_STATS
  39 zuluvm_miss_t
  40         idata           ZULUVM_IDATA
  41         arg             ZULUVM_ARG
  42         mmu_pa          ZULUVM_PAMMU
  43         state           ZULUVM_STATE
  44         intr_num        ZULUVM_INTRNUM
  45         cancel          ZULUVM_ST_TLBCANCEL
  46         tlb_miss        ZULUVM_ST_MISS
  47         pagefault       ZULUVM_ST_PGFAULT
  48         no_mapping      ZULUVM_ST_NOMAP 
  49         preload         ZULUVM_ST_PRELOAD
  50         migrate         ZULUVM_ST_MIGRATE
  51         pagesize        ZULUVM_ST_PAGESIZE
  52         itlb1miss       ZULUVM_ST_ITLB1MISS
  53         dtlb1miss       ZULUVM_ST_DTLB1MISS
  54         itlb2miss       ZULUVM_ST_ITLB2MISS
  55         dtlb2miss       ZULUVM_ST_DTLB2MISS
  56         demap_page      ZULUVM_ST_DEMAP_PAGE
  57         demap_ctx       ZULUVM_ST_DEMAP_CTX
  58         pfnbuf          ZULUVM_PFNBUF
  59         pfncnt          ZULUVM_PFNCNT
  60 
  61 #else
  62 
  63 zuluvm_miss_t
  64         idata           ZULUVM_IDATA
  65         arg             ZULUVM_ARG
  66         mmu_pa          ZULUVM_PAMMU
  67         state           ZULUVM_STATE
  68         intr_num        ZULUVM_INTRNUM
  69         pfnbuf          ZULUVM_PFNBUF
  70         pfncnt          ZULUVM_PFNCNT
  71 #endif
  72 
  73 \#define ZULUVM_OFFSET(a) (ZULUVM_IDATA + ((a) * ZULUVM_IDATA_INCR))
  74 \#define ZULUVM_ASM_TLB_TTE     ZULUVM_OFFSET(ZULUVM_TLB_TTE_IDX)
  75 \#define ZULUVM_ASM_TLB_ADDR    ZULUVM_OFFSET(ZULUVM_TLB_ADDR_IDX)
  76 \#define ZULUVM_ASM_TLB_TYPE    ZULUVM_OFFSET(ZULUVM_TLB_TYPE_IDX)
  77 \#define ZULUVM_ASM_TLB_ERRCODE ZULUVM_OFFSET(ZULUVM_TLB_ERRCODE_IDX)