root/arch/x86/mm/pat_internal.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. cattr_name
  2. rbt_memtype_check_insert
  3. rbt_memtype_erase
  4. rbt_memtype_lookup
  5. rbt_memtype_copy_nth_element

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __PAT_INTERNAL_H_
   3 #define __PAT_INTERNAL_H_
   4 
   5 extern int pat_debug_enable;
   6 
   7 #define dprintk(fmt, arg...) \
   8         do { if (pat_debug_enable) pr_info("x86/PAT: " fmt, ##arg); } while (0)
   9 
  10 struct memtype {
  11         u64                     start;
  12         u64                     end;
  13         u64                     subtree_max_end;
  14         enum page_cache_mode    type;
  15         struct rb_node          rb;
  16 };
  17 
  18 static inline char *cattr_name(enum page_cache_mode pcm)
  19 {
  20         switch (pcm) {
  21         case _PAGE_CACHE_MODE_UC:               return "uncached";
  22         case _PAGE_CACHE_MODE_UC_MINUS:         return "uncached-minus";
  23         case _PAGE_CACHE_MODE_WB:               return "write-back";
  24         case _PAGE_CACHE_MODE_WC:               return "write-combining";
  25         case _PAGE_CACHE_MODE_WT:               return "write-through";
  26         case _PAGE_CACHE_MODE_WP:               return "write-protected";
  27         default:                                return "broken";
  28         }
  29 }
  30 
  31 #ifdef CONFIG_X86_PAT
  32 extern int rbt_memtype_check_insert(struct memtype *new,
  33                                         enum page_cache_mode *new_type);
  34 extern struct memtype *rbt_memtype_erase(u64 start, u64 end);
  35 extern struct memtype *rbt_memtype_lookup(u64 addr);
  36 extern int rbt_memtype_copy_nth_element(struct memtype *out, loff_t pos);
  37 #else
  38 static inline int rbt_memtype_check_insert(struct memtype *new,
  39                                         enum page_cache_mode *new_type)
  40 { return 0; }
  41 static inline struct memtype *rbt_memtype_erase(u64 start, u64 end)
  42 { return NULL; }
  43 static inline struct memtype *rbt_memtype_lookup(u64 addr)
  44 { return NULL; }
  45 static inline int rbt_memtype_copy_nth_element(struct memtype *out, loff_t pos)
  46 { return 0; }
  47 #endif
  48 
  49 #endif /* __PAT_INTERNAL_H_ */

/* [<][>][^][v][top][bottom][index][help] */