170025d76Sjohnny /* 270025d76Sjohnny * CDDL HEADER START 370025d76Sjohnny * 470025d76Sjohnny * The contents of this file are subject to the terms of the 5337fc9e2Sanish * Common Development and Distribution License (the "License"). 6337fc9e2Sanish * You may not use this file except in compliance with the License. 770025d76Sjohnny * 870025d76Sjohnny * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 970025d76Sjohnny * or http://www.opensolaris.org/os/licensing. 1070025d76Sjohnny * See the License for the specific language governing permissions 1170025d76Sjohnny * and limitations under the License. 1270025d76Sjohnny * 1370025d76Sjohnny * When distributing Covered Code, include this CDDL HEADER in each 1470025d76Sjohnny * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1570025d76Sjohnny * If applicable, add the following below this CDDL HEADER, with the 1670025d76Sjohnny * fields enclosed by brackets "[]" replaced with your own identifying 1770025d76Sjohnny * information: Portions Copyright [yyyy] [name of copyright owner] 1870025d76Sjohnny * 1970025d76Sjohnny * CDDL HEADER END 2070025d76Sjohnny */ 2170025d76Sjohnny 2270025d76Sjohnny /* 23ae115bc7Smrj * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 2470025d76Sjohnny * Use is subject to license terms. 2570025d76Sjohnny */ 2670025d76Sjohnny 27ae115bc7Smrj #ifndef _DBOOT_XBOOT_H 28ae115bc7Smrj #define _DBOOT_XBOOT_H 2970025d76Sjohnny 30ae115bc7Smrj #include <sys/mach_mmu.h> 31ae115bc7Smrj 3270025d76Sjohnny #ifdef __cplusplus 3370025d76Sjohnny extern "C" { 3470025d76Sjohnny #endif 3570025d76Sjohnny 36ae115bc7Smrj #include <sys/note.h> 37ae115bc7Smrj 38ae115bc7Smrj /* 39ae115bc7Smrj * Stack used by xboot 40ae115bc7Smrj */ 41ae115bc7Smrj #define STACK_SIZE 0x8000 42ae115bc7Smrj 43ae115bc7Smrj #ifndef _ASM 44ae115bc7Smrj 45ae115bc7Smrj extern paddr_t ktext_phys; 46ae115bc7Smrj extern struct xboot_info *bi; 4770025d76Sjohnny 4870025d76Sjohnny /* 49ae115bc7Smrj * Debugging macros 5070025d76Sjohnny */ 51ae115bc7Smrj extern uint_t prom_debug; 52ae115bc7Smrj 53ae115bc7Smrj #define DBG_MSG(s) do { if (prom_debug) \ 54ae115bc7Smrj dboot_printf(s); \ 55ae115bc7Smrj _NOTE(CONSTANTCONDITION) \ 56ae115bc7Smrj } while (0) 57ae115bc7Smrj 58ae115bc7Smrj #define DBG(x) do { if (prom_debug) { \ 59ae115bc7Smrj dboot_printf("%s is 0x%" PRIx64 "\n", #x, (uint64_t)(x)); \ 60ae115bc7Smrj _NOTE(CONSTANTCONDITION) \ 61ae115bc7Smrj } } while (0) 6270025d76Sjohnny 63ae115bc7Smrj extern void dboot_halt(void); 64ae115bc7Smrj extern void *mem_alloc(uint32_t size); 65ae115bc7Smrj 66*3df2e8b2SRobert Mustacchi #define RNDUP(x, y) (((x) + ((y) - 1ul)) & ~((y) - 1ul)) 6770025d76Sjohnny 68ae115bc7Smrj #endif /* _ASM */ 6970025d76Sjohnny 7070025d76Sjohnny 7170025d76Sjohnny #ifdef __cplusplus 7270025d76Sjohnny } 7370025d76Sjohnny #endif 7470025d76Sjohnny 75ae115bc7Smrj #endif /* _DBOOT_XBOOT_H */ 76