linux/arch/xtensa/include/asm/tlb.h
<<
>>
Prefs
   1/*
   2 * include/asm-xtensa/tlb.h
   3 *
   4 * This file is subject to the terms and conditions of the GNU General Public
   5 * License.  See the file "COPYING" in the main directory of this archive
   6 * for more details.
   7 *
   8 * Copyright (C) 2001 - 2005 Tensilica Inc.
   9 */
  10
  11#ifndef _XTENSA_TLB_H
  12#define _XTENSA_TLB_H
  13
  14#include <asm/cache.h>
  15#include <asm/page.h>
  16
  17#if (DCACHE_WAY_SIZE <= PAGE_SIZE)
  18
  19/* Note, read http://lkml.org/lkml/2004/1/15/6 */
  20
  21# define tlb_start_vma(tlb,vma)                 do { } while (0)
  22# define tlb_end_vma(tlb,vma)                   do { } while (0)
  23
  24#else
  25
  26# define tlb_start_vma(tlb, vma)                                              \
  27        do {                                                                  \
  28                if (!tlb->fullmm)                                             \
  29                        flush_cache_range(vma, vma->vm_start, vma->vm_end);   \
  30        } while(0)
  31
  32# define tlb_end_vma(tlb, vma)                                                \
  33        do {                                                                  \
  34                if (!tlb->fullmm)                                             \
  35                        flush_tlb_range(vma, vma->vm_start, vma->vm_end);     \
  36        } while(0)
  37
  38#endif
  39
  40#define __tlb_remove_tlb_entry(tlb,pte,addr)    do { } while (0)
  41#define tlb_flush(tlb)                          flush_tlb_mm((tlb)->mm)
  42
  43#include <asm-generic/tlb.h>
  44
  45#define __pte_free_tlb(tlb, pte, address)       pte_free((tlb)->mm, pte)
  46
  47#endif  /* _XTENSA_TLB_H */
  48