power.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <linux/suspend.h>
  2. #include <linux/utsname.h>
  3. struct swsusp_info {
  4. struct new_utsname uts;
  5. u32 version_code;
  6. unsigned long num_physpages;
  7. int cpus;
  8. unsigned long image_pages;
  9. unsigned long pages;
  10. } __attribute__((aligned(PAGE_SIZE)));
  11. #ifdef CONFIG_SOFTWARE_SUSPEND
  12. extern int pm_suspend_disk(void);
  13. #else
  14. static inline int pm_suspend_disk(void)
  15. {
  16. return -EPERM;
  17. }
  18. #endif
  19. extern struct semaphore pm_sem;
  20. #define power_attr(_name) \
  21. static struct subsys_attribute _name##_attr = { \
  22. .attr = { \
  23. .name = __stringify(_name), \
  24. .mode = 0644, \
  25. }, \
  26. .show = _name##_show, \
  27. .store = _name##_store, \
  28. }
  29. extern struct subsystem power_subsys;
  30. /* References to section boundaries */
  31. extern const void __nosave_begin, __nosave_end;
  32. extern unsigned int nr_copy_pages;
  33. extern struct pbe *pagedir_nosave;
  34. /* Preferred image size in bytes (default 500 MB) */
  35. extern unsigned long image_size;
  36. extern asmlinkage int swsusp_arch_suspend(void);
  37. extern asmlinkage int swsusp_arch_resume(void);
  38. extern unsigned int count_data_pages(void);
  39. extern void free_pagedir(struct pbe *pblist);
  40. extern void release_eaten_pages(void);
  41. extern struct pbe *alloc_pagedir(unsigned nr_pages, gfp_t gfp_mask, int safe_needed);
  42. extern void swsusp_free(void);
  43. extern int alloc_data_pages(struct pbe *pblist, gfp_t gfp_mask, int safe_needed);
  44. extern unsigned int snapshot_nr_pages(void);
  45. extern struct pbe *snapshot_pblist(void);
  46. extern void snapshot_pblist_set(struct pbe *pblist);