Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.14-rc5 61 lines 1.6 kB view raw
1/* 2 * Copyright 2001-2002 Pavel Machek <pavel@suse.cz> 3 * Based on code 4 * Copyright 2001 Patrick Mochel <mochel@osdl.org> 5 */ 6#include <asm/desc.h> 7#include <asm/i387.h> 8 9static inline int 10arch_prepare_suspend(void) 11{ 12 /* If you want to make non-PSE machine work, turn off paging 13 in swsusp_arch_suspend. swsusp_pg_dir should have identity mapping, so 14 it could work... */ 15 if (!cpu_has_pse) { 16 printk(KERN_ERR "PSE is required for swsusp.\n"); 17 return -EPERM; 18 } 19 return 0; 20} 21 22/* image of the saved processor state */ 23struct saved_context { 24 u16 es, fs, gs, ss; 25 unsigned long cr0, cr2, cr3, cr4; 26 u16 gdt_pad; 27 u16 gdt_limit; 28 unsigned long gdt_base; 29 u16 idt_pad; 30 u16 idt_limit; 31 unsigned long idt_base; 32 u16 ldt; 33 u16 tss; 34 unsigned long tr; 35 unsigned long safety; 36 unsigned long return_address; 37} __attribute__((packed)); 38 39#ifdef CONFIG_ACPI_SLEEP 40extern unsigned long saved_eip; 41extern unsigned long saved_esp; 42extern unsigned long saved_ebp; 43extern unsigned long saved_ebx; 44extern unsigned long saved_esi; 45extern unsigned long saved_edi; 46 47static inline void acpi_save_register_state(unsigned long return_point) 48{ 49 saved_eip = return_point; 50 asm volatile ("movl %%esp,%0" : "=m" (saved_esp)); 51 asm volatile ("movl %%ebp,%0" : "=m" (saved_ebp)); 52 asm volatile ("movl %%ebx,%0" : "=m" (saved_ebx)); 53 asm volatile ("movl %%edi,%0" : "=m" (saved_edi)); 54 asm volatile ("movl %%esi,%0" : "=m" (saved_esi)); 55} 56 57#define acpi_restore_register_state() do {} while (0) 58 59/* routines for saving/restoring kernel state */ 60extern int acpi_save_state_mem(void); 61#endif