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