xref: /openbsd-src/sys/arch/i386/include/hibernate_var.h (revision d7c9b95f5e642e88069ef5fcbc9e685f2c0fb288)
1*d7c9b95fSmlarkin /*	$OpenBSD: hibernate_var.h,v 1.15 2015/01/09 03:43:52 mlarkin Exp $	*/
29c01f4bfSpirofti 
397cd0b13Smlarkin /*
497cd0b13Smlarkin  * Copyright (c) 2011 Mike Larkin <mlarkin@openbsd.org>
597cd0b13Smlarkin  *
697cd0b13Smlarkin  * Permission to use, copy, modify, and distribute this software for any
797cd0b13Smlarkin  * purpose with or without fee is hereby granted, provided that the above
897cd0b13Smlarkin  * copyright notice and this permission notice appear in all copies.
997cd0b13Smlarkin  *
1097cd0b13Smlarkin  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1197cd0b13Smlarkin  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1297cd0b13Smlarkin  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1397cd0b13Smlarkin  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1497cd0b13Smlarkin  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1597cd0b13Smlarkin  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1697cd0b13Smlarkin  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1797cd0b13Smlarkin  */
1897cd0b13Smlarkin 
19*d7c9b95fSmlarkin #define HIB_PD_MASK		0xffc00000
20*d7c9b95fSmlarkin #define PIGLET_PAGE_MASK 	(HIB_PD_MASK)
2195a70527Smlarkin 
22555e6295Smlarkin #define HIBERNATE_PD_PAGE	(PAGE_SIZE * 21)
23555e6295Smlarkin #define HIBERNATE_PT_PAGE	(PAGE_SIZE * 22)
2471ce0f95Smlarkin /* 2 pages for stack */
25555e6295Smlarkin #define HIBERNATE_STACK_PAGE	(PAGE_SIZE * 24)
26555e6295Smlarkin #define HIBERNATE_INFLATE_PAGE	(PAGE_SIZE * 25)
2771ce0f95Smlarkin /* HIBERNATE_HIBALLOC_PAGE must be the last stolen page (see machdep.c) */
28555e6295Smlarkin #define HIBERNATE_HIBALLOC_PAGE (PAGE_SIZE * 26)
2910aaff22Smlarkin 
3010aaff22Smlarkin /* Use 4MB hibernation chunks */
3110aaff22Smlarkin #define HIBERNATE_CHUNK_SIZE		0x400000
3210aaff22Smlarkin 
333a85c2afSmlarkin #define HIBERNATE_CHUNK_TABLE_SIZE	0x100000
3410aaff22Smlarkin 
3597cd0b13Smlarkin #define HIBERNATE_STACK_OFFSET	0x0F00
3697cd0b13Smlarkin 
3722894a92Smlarkin #define atop_4m(x) ((x) >> PDSHIFT)
3810aaff22Smlarkin #define atop_4k(x) ((x) >> PAGE_SHIFT)
3910aaff22Smlarkin #define s4pde_4m(va) ((pt_entry_t *)HIBERNATE_PD_PAGE + atop_4m(va))
4010aaff22Smlarkin #define s4pde_4k(va) ((pt_entry_t *)HIBERNATE_PD_PAGE + atop_4k(va))
4110aaff22Smlarkin #define s4pte_4k(va) ((pt_entry_t *)HIBERNATE_PT_PAGE + atop_4k(va))
42