1*2fa72412Spirofti /* $OpenBSD: loadfile_machdep.h,v 1.6 2011/03/23 16:54:35 pirofti Exp $ */ 2e8853d9aSmickey 3e8853d9aSmickey /*- 4e8853d9aSmickey * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc. 5e8853d9aSmickey * All rights reserved. 6e8853d9aSmickey * 7e8853d9aSmickey * This code is derived from software contributed to The NetBSD Foundation 8e8853d9aSmickey * by Christos Zoulas and Jason R. Thorpe. 9e8853d9aSmickey * 10e8853d9aSmickey * Redistribution and use in source and binary forms, with or without 11e8853d9aSmickey * modification, are permitted provided that the following conditions 12e8853d9aSmickey * are met: 13e8853d9aSmickey * 1. Redistributions of source code must retain the above copyright 14e8853d9aSmickey * notice, this list of conditions and the following disclaimer. 15e8853d9aSmickey * 2. Redistributions in binary form must reproduce the above copyright 16e8853d9aSmickey * notice, this list of conditions and the following disclaimer in the 17e8853d9aSmickey * documentation and/or other materials provided with the distribution. 18e8853d9aSmickey * 19e8853d9aSmickey * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20e8853d9aSmickey * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21e8853d9aSmickey * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22e8853d9aSmickey * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23e8853d9aSmickey * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24e8853d9aSmickey * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25e8853d9aSmickey * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26e8853d9aSmickey * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27e8853d9aSmickey * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28e8853d9aSmickey * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29e8853d9aSmickey * POSSIBILITY OF SUCH DAMAGE. 30e8853d9aSmickey */ 31e8853d9aSmickey 32*2fa72412Spirofti #ifndef _MACHINE_LOADFILE_MACHDEP_H_ 33*2fa72412Spirofti #define _MACHINE_LOADFILE_MACHDEP_H_ 34e8853d9aSmickey 35e8853d9aSmickey #define BOOT_ELF 36967373f0Skettenis #define BOOT_ELF32 37967373f0Skettenis #define BOOT_ELF64 38967373f0Skettenis 39967373f0Skettenis /* Keep a default ELFSIZE */ 40967373f0Skettenis #define ELFSIZE 32 41e8853d9aSmickey 42e8853d9aSmickey #define LOAD_KERNEL LOAD_ALL 43e8853d9aSmickey #define COUNT_KERNEL COUNT_ALL 44e8853d9aSmickey 45e8853d9aSmickey #ifdef _STANDALONE 46e8853d9aSmickey 4712c9c81cSmickey #define LOADADDR(a) ((u_int)(a) + offset) 48e8853d9aSmickey #define ALIGNENTRY(a) 0 49e8853d9aSmickey #define READ(f, b, c) pread((f), (void *)LOADADDR(b), (c)) 50e8853d9aSmickey #define BCOPY(s, d, c) vpbcopy((s), (void *)LOADADDR(d), (c)) 51e8853d9aSmickey #define BZERO(d, c) pbzero((void *)LOADADDR(d), (c)) 52e8853d9aSmickey #define WARN(a) (void)(printf a, \ 53e8853d9aSmickey printf((errno ? ": %s\n" : "\n"), \ 54e8853d9aSmickey strerror(errno))) 55e8853d9aSmickey #define PROGRESS(a) (void) printf a 56e8853d9aSmickey #define ALLOC(a) alloc(a) 57e8853d9aSmickey #define FREE(a, b) free(a, b) 58e8853d9aSmickey 59e8853d9aSmickey #define vpbcopy bcopy 60e8853d9aSmickey #define pbzero bzero 61e8853d9aSmickey #define pread read 62e8853d9aSmickey 63e8853d9aSmickey #else 64e8853d9aSmickey 6512c9c81cSmickey #define LOADADDR(a) (((u_int)(a)) + offset) 6612c9c81cSmickey #define ALIGNENTRY(a) ((u_int)(a)) 67e8853d9aSmickey #define READ(f, b, c) read((f), (void *)LOADADDR(b), (c)) 68e8853d9aSmickey #define BCOPY(s, d, c) memcpy((void *)LOADADDR(d), (void *)(s), (c)) 69e8853d9aSmickey #define BZERO(d, c) memset((void *)LOADADDR(d), 0, (c)) 70e8853d9aSmickey #define WARN(a) warn a 71e8853d9aSmickey #define PROGRESS(a) /* nothing */ 72e8853d9aSmickey #define ALLOC(a) malloc(a) 73e8853d9aSmickey #define FREE(a, b) free(a) 74e8853d9aSmickey 75e2b96ebfSderaadt ssize_t vread(int, u_long, u_long *, size_t); 76e2b96ebfSderaadt void vcopy(u_long, u_long, u_long *, size_t); 77e2b96ebfSderaadt void vzero(u_long, u_long *, size_t); 78e8853d9aSmickey 79e8853d9aSmickey #endif 80*2fa72412Spirofti #endif /* ! _MACHINE_LOADFILE_MACHDEP_H_ */ 81