diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/linux/suspend.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/linux/suspend.h')
-rw-r--r-- | include/linux/suspend.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h new file mode 100644 index 00000000000..2bf0d5fabcd --- /dev/null +++ b/include/linux/suspend.h @@ -0,0 +1,75 @@ +#ifndef _LINUX_SWSUSP_H +#define _LINUX_SWSUSP_H + +#if defined(CONFIG_X86) || defined(CONFIG_FRV) || defined(CONFIG_PPC32) +#include <asm/suspend.h> +#endif +#include <linux/swap.h> +#include <linux/notifier.h> +#include <linux/config.h> +#include <linux/init.h> +#include <linux/pm.h> + +/* page backup entry */ +typedef struct pbe { + unsigned long address; /* address of the copy */ + unsigned long orig_address; /* original address of page */ + swp_entry_t swap_address; + + struct pbe *next; /* also used as scratch space at + * end of page (see link, diskpage) + */ +} suspend_pagedir_t; + +#define for_each_pbe(pbe, pblist) \ + for (pbe = pblist ; pbe ; pbe = pbe->next) + +#define PBES_PER_PAGE (PAGE_SIZE/sizeof(struct pbe)) +#define PB_PAGE_SKIP (PBES_PER_PAGE-1) + +#define for_each_pb_page(pbe, pblist) \ + for (pbe = pblist ; pbe ; pbe = (pbe+PB_PAGE_SKIP)->next) + + +#define SWAP_FILENAME_MAXLENGTH 32 + + +extern dev_t swsusp_resume_device; + +/* mm/vmscan.c */ +extern int shrink_mem(void); + +/* mm/page_alloc.c */ +extern void drain_local_pages(void); +extern void mark_free_pages(struct zone *zone); + +#ifdef CONFIG_PM +/* kernel/power/swsusp.c */ +extern int software_suspend(void); + +extern int pm_prepare_console(void); +extern void pm_restore_console(void); + +#else +static inline int software_suspend(void) +{ + printk("Warning: fake suspend called\n"); + return -EPERM; +} +#endif + +#ifdef CONFIG_SMP +extern void disable_nonboot_cpus(void); +extern void enable_nonboot_cpus(void); +#else +static inline void disable_nonboot_cpus(void) {} +static inline void enable_nonboot_cpus(void) {} +#endif + +void save_processor_state(void); +void restore_processor_state(void); +struct saved_context; +void __save_processor_state(struct saved_context *ctxt); +void __restore_processor_state(struct saved_context *ctxt); + +#endif /* _LINUX_SWSUSP_H */ |