1*65052cacSmlarkin /* $OpenBSD: hibernate.h,v 1.7 2018/06/21 07:33:30 mlarkin Exp $ */ 29c01f4bfSpirofti 3c5489a62Smlarkin /* 4c5489a62Smlarkin * Copyright (c) 2011 Mike Larkin <mlarkin@openbsd.org> 5c5489a62Smlarkin * 6c5489a62Smlarkin * Permission to use, copy, modify, and distribute this software for any 7c5489a62Smlarkin * purpose with or without fee is hereby granted, provided that the above 8c5489a62Smlarkin * copyright notice and this permission notice appear in all copies. 9c5489a62Smlarkin * 10c5489a62Smlarkin * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11c5489a62Smlarkin * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12c5489a62Smlarkin * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13c5489a62Smlarkin * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14c5489a62Smlarkin * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15c5489a62Smlarkin * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16c5489a62Smlarkin * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17c5489a62Smlarkin */ 18c5489a62Smlarkin 19c5489a62Smlarkin #include <machine/hibernate_var.h> 20c5489a62Smlarkin 21c5489a62Smlarkin /* amd64 hibernate support structures and functions */ 22c5489a62Smlarkin 23c5489a62Smlarkin int get_hibernate_info_md(union hibernate_info *); 24c5489a62Smlarkin void hibernate_flush(void); 25c5489a62Smlarkin void hibernate_enter_resume_mapping(vaddr_t, paddr_t, int); 26c5489a62Smlarkin int hibernate_inflate_skip(union hibernate_info *, paddr_t); 27c5489a62Smlarkin int hibernate_suspend(void); 28c5489a62Smlarkin void hibernate_switch_stack_machdep(void); 29*65052cacSmlarkin void hibernate_resume_machdep(vaddr_t); 30c5489a62Smlarkin void hibernate_activate_resume_pt_machdep(void); 3152f9d053Smlarkin void hibernate_enable_intr_machdep(void); 3252f9d053Smlarkin void hibernate_disable_intr_machdep(void); 339ecd98c6Smlarkin #ifdef MULTIPROCESSOR 349ecd98c6Smlarkin void hibernate_quiesce_cpus(void); 3511984784Smlarkin void hibernate_drop_to_real_mode(void); 369ecd98c6Smlarkin #endif /* MULTIPROCESSOR */ 37