/* * linux/kernel/power/swsusp.c * * This file provides code to write suspend image to swap and read it back. * * Copyright (C) 1998-2001 Gabor Kuti <seasons@fornax.hu> * Copyright (C) 1998,2001-2005 Pavel Machek <pavel@suse.cz> * * This file is released under the GPLv2. * * I'd like to thank the following people for their work: * * Pavel Machek <pavel@ucw.cz>: * Modifications, defectiveness pointing, being with me at the very beginning, * suspend to swap space, stop all tasks. Port to 2.4.18-ac and 2.5.17. * * Steve Doddi <dirk@loth.demon.co.uk>: * Support the possibility of hardware state restoring. * * Raph <grey.havens@earthling.net>: * Support for preserving states of network devices and virtual console * (including X and svgatextmode) * * Kurt Garloff <garloff@suse.de>: * Straightened the critical function in order to prevent compilers from * playing tricks with local variables. * * Andreas Mohr <a.mohr@mailto.de> * * Alex Badea <vampire@go.ro>: * Fixed runaway init * * Rafael J. Wysocki <rjw@sisk.pl> * Reworked the freeing of memory and the handling of swap * * More state savers are welcome. Especially for the scsi layer... * * For TODOs,FIXMEs also look in Documentation/power/swsusp.txt */ #include <linux/mm.h> #include <linux/suspend.h> #include <linux/spinlock.h> #include <linux/kernel.h> #include <linux/major.h> #include <linux/swap.h> #include <linux/pm.h> #include <linux/swapops.h> #include <linux/bootmem.h> #include <linux/syscalls.h> #include <linux/highmem.h> #include <linux/time.h> #include <linux/rbtree.h> #include <linux/io.h> #include "power.h" int in_suspend __nosavedata = 0;