motorola_pgalloc.h
来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 110 行
H
110 行
#ifndef _MOTOROLA_PGALLOC_H#define _MOTOROLA_PGALLOC_H#include <asm/tlb.h>#include <asm/tlbflush.h>extern pmd_t *get_pointer_table(void);extern int free_pointer_table(pmd_t *);static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address){ pte_t *pte; pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT); if (pte) { clear_page(pte); __flush_page_to_ram(pte); flush_tlb_kernel_page(pte); nocache_page(pte); } return pte;}static inline void pte_free_kernel(pte_t *pte){ cache_page(pte); free_page((unsigned long) pte);}static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address){ struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0); pte_t *pte; if(!page) return NULL; pte = kmap(page); if (pte) { clear_page(pte); __flush_page_to_ram(pte); flush_tlb_kernel_page(pte); nocache_page(pte); } kunmap(pte); return page;}static inline void pte_free(struct page *page){ cache_page(kmap(page)); kunmap(page); __free_page(page);}static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *page){ cache_page(kmap(page)); kunmap(page); __free_page(page);}static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address){ return get_pointer_table();}static inline int pmd_free(pmd_t *pmd){ return free_pointer_table(pmd);}static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd){ return free_pointer_table(pmd);}static inline void pgd_free(pgd_t *pgd){ pmd_free((pmd_t *)pgd);}static inline pgd_t *pgd_alloc(struct mm_struct *mm){ return (pgd_t *)get_pointer_table();}static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte){ pmd_set(pmd, pte);}static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *page){ pmd_set(pmd, page_address(page));}static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd){ pgd_set(pgd, pmd);}#endif /* _MOTOROLA_PGALLOC_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?