1*eb6cc752Sjoerg /* $NetBSD: loadfile_machdep.h,v 1.8 2014/08/06 21:57:49 joerg Exp $ */ 225c48ec8Sthorpej 325c48ec8Sthorpej /*- 425c48ec8Sthorpej * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc. 525c48ec8Sthorpej * All rights reserved. 625c48ec8Sthorpej * 725c48ec8Sthorpej * This code is derived from software contributed to The NetBSD Foundation 825c48ec8Sthorpej * by Christos Zoulas and Jason R. Thorpe. 925c48ec8Sthorpej * 1025c48ec8Sthorpej * Redistribution and use in source and binary forms, with or without 1125c48ec8Sthorpej * modification, are permitted provided that the following conditions 1225c48ec8Sthorpej * are met: 1325c48ec8Sthorpej * 1. Redistributions of source code must retain the above copyright 1425c48ec8Sthorpej * notice, this list of conditions and the following disclaimer. 1525c48ec8Sthorpej * 2. Redistributions in binary form must reproduce the above copyright 1625c48ec8Sthorpej * notice, this list of conditions and the following disclaimer in the 1725c48ec8Sthorpej * documentation and/or other materials provided with the distribution. 1825c48ec8Sthorpej * 1925c48ec8Sthorpej * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2025c48ec8Sthorpej * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2125c48ec8Sthorpej * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2225c48ec8Sthorpej * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2325c48ec8Sthorpej * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2425c48ec8Sthorpej * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2525c48ec8Sthorpej * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2625c48ec8Sthorpej * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2725c48ec8Sthorpej * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2825c48ec8Sthorpej * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2925c48ec8Sthorpej * POSSIBILITY OF SUCH DAMAGE. 3025c48ec8Sthorpej */ 3125c48ec8Sthorpej 32472a75b0Ssimonb #ifndef _HP300_LOADFILE_MACHDEP_H_ 33472a75b0Ssimonb #define _HP300_LOADFILE_MACHDEP_H_ 3425c48ec8Sthorpej 35472a75b0Ssimonb #define BOOT_AOUT 36e727e3f1Sthorpej #define BOOT_ELF32 3725c48ec8Sthorpej 38472a75b0Ssimonb #define LOAD_KERNEL LOAD_ALL 39472a75b0Ssimonb #define COUNT_KERNEL COUNT_ALL 4025c48ec8Sthorpej 4125c48ec8Sthorpej #ifdef _STANDALONE 4225c48ec8Sthorpej 4325c48ec8Sthorpej #define LOADADDR(a) ((a) + offset) 4425c48ec8Sthorpej #define ALIGNENTRY(a) 0 4525c48ec8Sthorpej #define READ(f, b, c) pread((f), (void *)LOADADDR(b), (c)) 4625c48ec8Sthorpej #define BCOPY(s, d, c) vpbcopy((s), (void *)LOADADDR(d), (c)) 4725c48ec8Sthorpej #define BZERO(d, c) pbzero((void *)LOADADDR(d), (c)) 48*eb6cc752Sjoerg #define WARN(a) do { \ 49*eb6cc752Sjoerg (void)printf a; \ 50*eb6cc752Sjoerg if (errno) \ 51*eb6cc752Sjoerg (void)printf(": %s\n", \ 52*eb6cc752Sjoerg strerror(errno)); \ 53*eb6cc752Sjoerg else \ 54*eb6cc752Sjoerg (void)printf("\n"); \ 55*eb6cc752Sjoerg } while(/* CONSTCOND */0) 5625c48ec8Sthorpej #define PROGRESS(a) (void) printf a 5725c48ec8Sthorpej #define ALLOC(a) alloc(a) 58606bb2caSchristos #define DEALLOC(a, b) dealloc(a, b) 5925c48ec8Sthorpej #define OKMAGIC(a) ((a) == OMAGIC || (a) == NMAGIC || \ 6025c48ec8Sthorpej (a) == ZMAGIC) 6125c48ec8Sthorpej 6225c48ec8Sthorpej #define vpbcopy bcopy 6325c48ec8Sthorpej #define pbzero bzero 6425c48ec8Sthorpej #define pread read 6525c48ec8Sthorpej 6625c48ec8Sthorpej #else 6725c48ec8Sthorpej 6825c48ec8Sthorpej #define LOADADDR(a) (((u_long)(a)) + offset) 6925c48ec8Sthorpej #define ALIGNENTRY(a) ((u_long)(a)) 7025c48ec8Sthorpej #define READ(f, b, c) read((f), (void *)LOADADDR(b), (c)) 7125c48ec8Sthorpej #define BCOPY(s, d, c) memcpy((void *)LOADADDR(d), (void *)(s), (c)) 7225c48ec8Sthorpej #define BZERO(d, c) memset((void *)LOADADDR(d), 0, (c)) 7325c48ec8Sthorpej #define WARN(a) warn a 7425c48ec8Sthorpej #define PROGRESS(a) /* nothing */ 7525c48ec8Sthorpej #define ALLOC(a) malloc(a) 76606bb2caSchristos #define DEALLOC(a, b) free(a) 7725c48ec8Sthorpej #define OKMAGIC(a) ((a) == OMAGIC) 7825c48ec8Sthorpej 79e3e985a0Sthorpej ssize_t vread(int, u_long, u_long *, size_t); 80e3e985a0Sthorpej void vcopy(u_long, u_long, u_long *, size_t); 81e3e985a0Sthorpej void vzero(u_long, u_long *, size_t); 8225c48ec8Sthorpej 8325c48ec8Sthorpej #endif 84472a75b0Ssimonb #endif /* ! _HP300_LOADFILE_MACHDEP_H_ */ 85