tuxonice_alloc.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * kernel/power/tuxonice_alloc.h
  3. *
  4. * Copyright (C) 2008-2014 Nigel Cunningham (nigel at tuxonice net)
  5. *
  6. * This file is released under the GPLv2.
  7. *
  8. */
  9. #include <linux/slab.h>
  10. #define TOI_WAIT_GFP (GFP_NOFS | __GFP_NOWARN)
  11. #define TOI_ATOMIC_GFP (GFP_ATOMIC | __GFP_NOWARN)
  12. #ifdef CONFIG_PM_DEBUG
  13. extern void *toi_kzalloc(int fail_num, size_t size, gfp_t flags);
  14. extern void toi_kfree(int fail_num, const void *arg, int size);
  15. extern unsigned long toi_get_free_pages(int fail_num, gfp_t mask,
  16. unsigned int order);
  17. #define toi_get_free_page(FAIL_NUM, MASK) toi_get_free_pages(FAIL_NUM, MASK, 0)
  18. extern unsigned long toi_get_zeroed_page(int fail_num, gfp_t mask);
  19. extern void toi_free_page(int fail_num, unsigned long buf);
  20. extern void toi__free_page(int fail_num, struct page *page);
  21. extern void toi_free_pages(int fail_num, struct page *page, int order);
  22. extern struct page *toi_alloc_page(int fail_num, gfp_t mask);
  23. extern int toi_alloc_init(void);
  24. extern void toi_alloc_exit(void);
  25. extern void toi_alloc_print_debug_stats(void);
  26. #else /* CONFIG_PM_DEBUG */
  27. #define toi_kzalloc(FAIL, SIZE, FLAGS) (kzalloc(SIZE, FLAGS))
  28. #define toi_kfree(FAIL, ALLOCN, SIZE) (kfree(ALLOCN))
  29. #define toi_get_free_pages(FAIL, FLAGS, ORDER) __get_free_pages(FLAGS, ORDER)
  30. #define toi_get_free_page(FAIL, FLAGS) __get_free_page(FLAGS)
  31. #define toi_get_zeroed_page(FAIL, FLAGS) get_zeroed_page(FLAGS)
  32. #define toi_free_page(FAIL, ALLOCN) free_page(ALLOCN)
  33. #define toi__free_page(FAIL, PAGE) __free_page(PAGE)
  34. #define toi_free_pages(FAIL, PAGE, ORDER) __free_pages(PAGE, ORDER)
  35. #define toi_alloc_page(FAIL, MASK) alloc_page(MASK)
  36. static inline int toi_alloc_init(void)
  37. {
  38. return 0;
  39. }
  40. static inline void toi_alloc_exit(void) { }
  41. static inline void toi_alloc_print_debug_stats(void) { }
  42. #endif
  43. extern int toi_trace_allocs;