tuxonice_pagedir.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * kernel/power/tuxonice_pagedir.h
  3. *
  4. * Copyright (C) 2006-2014 Nigel Cunningham (nigel at tuxonice net)
  5. *
  6. * This file is released under the GPLv2.
  7. *
  8. * Declarations for routines for handling pagesets.
  9. */
  10. #ifndef KERNEL_POWER_PAGEDIR_H
  11. #define KERNEL_POWER_PAGEDIR_H
  12. /* Pagedir
  13. *
  14. * Contains the metadata for a set of pages saved in the image.
  15. */
  16. struct pagedir {
  17. int id;
  18. unsigned long size;
  19. #ifdef CONFIG_HIGHMEM
  20. unsigned long size_high;
  21. #endif
  22. };
  23. #ifdef CONFIG_HIGHMEM
  24. #define get_highmem_size(pagedir) (pagedir.size_high)
  25. #define set_highmem_size(pagedir, sz) (pagedir.size_high = sz)
  26. #define inc_highmem_size(pagedir) (pagedir.size_high++)
  27. #define get_lowmem_size(pagedir) (pagedir.size - pagedir.size_high)
  28. #else
  29. #define get_highmem_size(pagedir) (0)
  30. #define set_highmem_size(pagedir, sz) do { } while (0)
  31. #define inc_highmem_size(pagedir) do { } while (0)
  32. #define get_lowmem_size(pagedir) (pagedir.size)
  33. #endif
  34. extern struct pagedir pagedir1, pagedir2;
  35. extern void toi_copy_pageset1(void);
  36. extern int toi_get_pageset1_load_addresses(void);
  37. extern unsigned long __toi_get_nonconflicting_page(void);
  38. struct page *___toi_get_nonconflicting_page(int can_be_highmem);
  39. extern void toi_reset_alt_image_pageset2_pfn(void);
  40. extern int add_boot_kernel_data_pbe(void);
  41. #endif