| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _LINUX_SWSUSP_H | 
|  | 2 | #define _LINUX_SWSUSP_H | 
|  | 3 |  | 
|  | 4 | #if defined(CONFIG_X86) || defined(CONFIG_FRV) || defined(CONFIG_PPC32) | 
|  | 5 | #include <asm/suspend.h> | 
|  | 6 | #endif | 
|  | 7 | #include <linux/swap.h> | 
|  | 8 | #include <linux/notifier.h> | 
|  | 9 | #include <linux/config.h> | 
|  | 10 | #include <linux/init.h> | 
|  | 11 | #include <linux/pm.h> | 
|  | 12 |  | 
|  | 13 | /* page backup entry */ | 
|  | 14 | typedef struct pbe { | 
|  | 15 | unsigned long address;		/* address of the copy */ | 
|  | 16 | unsigned long orig_address;	/* original address of page */ | 
|  | 17 | swp_entry_t swap_address; | 
|  | 18 |  | 
|  | 19 | struct pbe *next;	/* also used as scratch space at | 
|  | 20 | * end of page (see link, diskpage) | 
|  | 21 | */ | 
|  | 22 | } suspend_pagedir_t; | 
|  | 23 |  | 
|  | 24 | #define for_each_pbe(pbe, pblist) \ | 
|  | 25 | for (pbe = pblist ; pbe ; pbe = pbe->next) | 
|  | 26 |  | 
|  | 27 | #define PBES_PER_PAGE      (PAGE_SIZE/sizeof(struct pbe)) | 
|  | 28 | #define PB_PAGE_SKIP       (PBES_PER_PAGE-1) | 
|  | 29 |  | 
|  | 30 | #define for_each_pb_page(pbe, pblist) \ | 
|  | 31 | for (pbe = pblist ; pbe ; pbe = (pbe+PB_PAGE_SKIP)->next) | 
|  | 32 |  | 
|  | 33 |  | 
|  | 34 | #define SWAP_FILENAME_MAXLENGTH	32 | 
|  | 35 |  | 
|  | 36 |  | 
|  | 37 | extern dev_t swsusp_resume_device; | 
|  | 38 |  | 
|  | 39 | /* mm/vmscan.c */ | 
|  | 40 | extern int shrink_mem(void); | 
|  | 41 |  | 
|  | 42 | /* mm/page_alloc.c */ | 
|  | 43 | extern void drain_local_pages(void); | 
|  | 44 | extern void mark_free_pages(struct zone *zone); | 
|  | 45 |  | 
|  | 46 | #ifdef CONFIG_PM | 
|  | 47 | /* kernel/power/swsusp.c */ | 
|  | 48 | extern int software_suspend(void); | 
|  | 49 |  | 
|  | 50 | extern int pm_prepare_console(void); | 
|  | 51 | extern void pm_restore_console(void); | 
|  | 52 |  | 
|  | 53 | #else | 
|  | 54 | static inline int software_suspend(void) | 
|  | 55 | { | 
|  | 56 | printk("Warning: fake suspend called\n"); | 
|  | 57 | return -EPERM; | 
|  | 58 | } | 
|  | 59 | #endif | 
|  | 60 |  | 
| Li Shaohua | 5a72e04 | 2005-06-25 14:55:06 -0700 | [diff] [blame] | 61 | #ifdef CONFIG_SUSPEND_SMP | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 62 | extern void disable_nonboot_cpus(void); | 
|  | 63 | extern void enable_nonboot_cpus(void); | 
|  | 64 | #else | 
|  | 65 | static inline void disable_nonboot_cpus(void) {} | 
|  | 66 | static inline void enable_nonboot_cpus(void) {} | 
|  | 67 | #endif | 
|  | 68 |  | 
|  | 69 | void save_processor_state(void); | 
|  | 70 | void restore_processor_state(void); | 
|  | 71 | struct saved_context; | 
|  | 72 | void __save_processor_state(struct saved_context *ctxt); | 
|  | 73 | void __restore_processor_state(struct saved_context *ctxt); | 
|  | 74 |  | 
|  | 75 | #endif /* _LINUX_SWSUSP_H */ |