16ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/****************************************************************************
26ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
36ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
46ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   This header was automatically generated from a Linux kernel header
56ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   of the same name, to make information necessary for userspace to
66ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   call into the kernel available to libc.  It contains only constants,
76ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   structures, and macros generated from the original header, and thus,
86ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   contains no copyrightable information.
96ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************/
126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef _ASM_GENERIC__TLB_H
136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _ASM_GENERIC__TLB_H
146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <linux/swap.h>
166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <asm/pgalloc.h>
176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <asm/tlbflush.h>
186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FREE_PTE_NR 1
206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define tlb_fast_mode(tlb) 1
216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct mmu_gather {
236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct mm_struct *mm;
246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int nr;
256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int need_flush;
266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int fullmm;
276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct page * pages[FREE_PTE_NR];
286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define tlb_remove_tlb_entry(tlb, ptep, address)   do {   tlb->need_flush = 1;   __tlb_remove_tlb_entry(tlb, ptep, address);   } while (0)
316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define pte_free_tlb(tlb, ptep)   do {   tlb->need_flush = 1;   __pte_free_tlb(tlb, ptep);   } while (0)
326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef __ARCH_HAS_4LEVEL_HACK
336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define pud_free_tlb(tlb, pudp)   do {   tlb->need_flush = 1;   __pud_free_tlb(tlb, pudp);   } while (0)
346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif
356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define pmd_free_tlb(tlb, pmdp)   do {   tlb->need_flush = 1;   __pmd_free_tlb(tlb, pmdp);   } while (0)
366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define tlb_migrate_finish(mm) do {} while (0)
376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif
38