|
@@ -50,6 +50,65 @@ static inline int hash__hugepd_ok(hugepd_t hpd)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
|
|
+
|
|
|
+static inline char *get_hpte_slot_array(pmd_t *pmdp)
|
|
|
+{
|
|
|
+ BUG();
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+static inline unsigned int hpte_valid(unsigned char *hpte_slot_array, int index)
|
|
|
+{
|
|
|
+ BUG();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static inline unsigned int hpte_hash_index(unsigned char *hpte_slot_array,
|
|
|
+ int index)
|
|
|
+{
|
|
|
+ BUG();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static inline void mark_hpte_slot_valid(unsigned char *hpte_slot_array,
|
|
|
+ unsigned int index, unsigned int hidx)
|
|
|
+{
|
|
|
+ BUG();
|
|
|
+}
|
|
|
+
|
|
|
+static inline int hash__pmd_trans_huge(pmd_t pmd)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static inline int hash__pmd_same(pmd_t pmd_a, pmd_t pmd_b)
|
|
|
+{
|
|
|
+ BUG();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static inline pmd_t hash__pmd_mkhuge(pmd_t pmd)
|
|
|
+{
|
|
|
+ BUG();
|
|
|
+ return pmd;
|
|
|
+}
|
|
|
+
|
|
|
+extern unsigned long hash__pmd_hugepage_update(struct mm_struct *mm,
|
|
|
+ unsigned long addr, pmd_t *pmdp,
|
|
|
+ unsigned long clr, unsigned long set);
|
|
|
+extern pmd_t hash__pmdp_collapse_flush(struct vm_area_struct *vma,
|
|
|
+ unsigned long address, pmd_t *pmdp);
|
|
|
+extern void hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
|
|
|
+ pgtable_t pgtable);
|
|
|
+extern pgtable_t hash__pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp);
|
|
|
+extern void hash__pmdp_huge_split_prepare(struct vm_area_struct *vma,
|
|
|
+ unsigned long address, pmd_t *pmdp);
|
|
|
+extern pmd_t hash__pmdp_huge_get_and_clear(struct mm_struct *mm,
|
|
|
+ unsigned long addr, pmd_t *pmdp);
|
|
|
+extern int hash__has_transparent_hugepage(void);
|
|
|
+#endif
|
|
|
+
|
|
|
#endif /* !__ASSEMBLY__ */
|
|
|
|
|
|
#endif /* _ASM_POWERPC_BOOK3S_64_HASH_4K_H */
|