home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / suspend.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.1 KB  |  82 lines

  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/init.h>
  10. #include <linux/pm.h>
  11.  
  12. /* page backup entry */
  13. typedef struct pbe {
  14.     unsigned long address;        /* address of the copy */
  15.     unsigned long orig_address;    /* original address of page */
  16.     struct pbe *next;
  17. } suspend_pagedir_t;
  18.  
  19. #define for_each_pbe(pbe, pblist) \
  20.     for (pbe = pblist ; pbe ; pbe = pbe->next)
  21.  
  22. #define PBES_PER_PAGE      (PAGE_SIZE/sizeof(struct pbe))
  23. #define PB_PAGE_SKIP       (PBES_PER_PAGE-1)
  24.  
  25. #define for_each_pb_page(pbe, pblist) \
  26.     for (pbe = pblist ; pbe ; pbe = (pbe+PB_PAGE_SKIP)->next)
  27.  
  28.  
  29. #define SWAP_FILENAME_MAXLENGTH    32
  30.  
  31.  
  32. extern dev_t swsusp_resume_device;
  33.    
  34. /* mm/vmscan.c */
  35. extern int shrink_mem(void);
  36.  
  37. /* mm/page_alloc.c */
  38. extern void drain_local_pages(void);
  39. extern void mark_free_pages(struct zone *zone);
  40.  
  41. #ifdef CONFIG_PM
  42. /* kernel/power/swsusp.c */
  43. extern int software_suspend(void);
  44.  
  45. #if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE)
  46. extern int pm_prepare_console(void);
  47. extern void pm_restore_console(void);
  48. #else
  49. static inline int pm_prepare_console(void) { return 0; }
  50. static inline void pm_restore_console(void) {}
  51. #endif /* defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) */
  52. #else
  53. static inline int software_suspend(void)
  54. {
  55.     printk("Warning: fake suspend called\n");
  56.     return -EPERM;
  57. }
  58. #endif /* CONFIG_PM */
  59.  
  60. #ifdef CONFIG_SUSPEND_SMP
  61. extern void disable_nonboot_cpus(void);
  62. extern void enable_nonboot_cpus(void);
  63. #else
  64. static inline void disable_nonboot_cpus(void) {}
  65. static inline void enable_nonboot_cpus(void) {}
  66. #endif
  67.  
  68. void save_processor_state(void);
  69. void restore_processor_state(void);
  70. struct saved_context;
  71. void __save_processor_state(struct saved_context *ctxt);
  72. void __restore_processor_state(struct saved_context *ctxt);
  73. unsigned long get_safe_page(gfp_t gfp_mask);
  74.  
  75. /*
  76.  * XXX: We try to keep some more pages free so that I/O operations succeed
  77.  * without paging. Might this be more?
  78.  */
  79. #define PAGES_FOR_IO    1024
  80.  
  81. #endif /* _LINUX_SWSUSP_H */
  82.