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