1*eb6cc752Sjoerg /* $NetBSD: loadfile_machdep.h,v 1.8 2014/08/06 21:57:51 joerg Exp $ */ 27e950cc6Sminoura 37e950cc6Sminoura /*- 47e950cc6Sminoura * Copyright (c) 1998 The NetBSD Foundation, Inc. 57e950cc6Sminoura * All rights reserved. 67e950cc6Sminoura * 77e950cc6Sminoura * This code is derived from software contributed to The NetBSD Foundation 87e950cc6Sminoura * by Christos Zoulas. 97e950cc6Sminoura * 107e950cc6Sminoura * Redistribution and use in source and binary forms, with or without 117e950cc6Sminoura * modification, are permitted provided that the following conditions 127e950cc6Sminoura * are met: 137e950cc6Sminoura * 1. Redistributions of source code must retain the above copyright 147e950cc6Sminoura * notice, this list of conditions and the following disclaimer. 157e950cc6Sminoura * 2. Redistributions in binary form must reproduce the above copyright 167e950cc6Sminoura * notice, this list of conditions and the following disclaimer in the 177e950cc6Sminoura * documentation and/or other materials provided with the distribution. 187e950cc6Sminoura * 197e950cc6Sminoura * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 207e950cc6Sminoura * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 217e950cc6Sminoura * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 227e950cc6Sminoura * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 237e950cc6Sminoura * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 247e950cc6Sminoura * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 257e950cc6Sminoura * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 267e950cc6Sminoura * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 277e950cc6Sminoura * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 287e950cc6Sminoura * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 297e950cc6Sminoura * POSSIBILITY OF SUCH DAMAGE. 307e950cc6Sminoura */ 317e950cc6Sminoura 327e950cc6Sminoura #ifndef _X68K_LOADFILE_MACHDEP_H_ 337e950cc6Sminoura #define _X68K_LOADFILE_MACHDEP_H_ 347e950cc6Sminoura 357e950cc6Sminoura #define BOOT_AOUT 3639025c1eSminoura #ifndef BOOT_STAGE1 37e727e3f1Sthorpej #define BOOT_ELF32 3839025c1eSminoura #endif 397e950cc6Sminoura 407e950cc6Sminoura #define LOAD_KERNEL LOAD_ALL 417e950cc6Sminoura #define COUNT_KERNEL COUNT_ALL 427e950cc6Sminoura 437e950cc6Sminoura #ifdef _STANDALONE 447e950cc6Sminoura 4539025c1eSminoura #ifndef BOOT_STAGE1 467e950cc6Sminoura #define LOADADDR(a) ((a) + offset) 477e950cc6Sminoura #define ALIGNENTRY(a) 0 487e950cc6Sminoura #define READ(f, b, c) pread((f), (void *)LOADADDR(b), (c)) 497e950cc6Sminoura #define BCOPY(s, d, c) vpbcopy((s), (void *)LOADADDR(d), (c)) 507e950cc6Sminoura #define BZERO(d, c) pbzero((void *)LOADADDR(d), (c)) 51*eb6cc752Sjoerg #define WARN(a) do { \ 52*eb6cc752Sjoerg (void)printf a; \ 53*eb6cc752Sjoerg if (errno) \ 54*eb6cc752Sjoerg (void)printf(": %s\n", \ 55*eb6cc752Sjoerg strerror(errno)); \ 56*eb6cc752Sjoerg else \ 57*eb6cc752Sjoerg (void)printf("\n"); \ 58*eb6cc752Sjoerg } while(/* CONSTCOND */0) 597e950cc6Sminoura #define PROGRESS(a) (void) printf a 607e950cc6Sminoura #define ALLOC(a) alloc(a) 61606bb2caSchristos #define DEALLOC(a, b) dealloc(a, b) 6239025c1eSminoura #define OKMAGIC(a) (((a) == NMAGIC) || ((a) == OMAGIC)) 6339025c1eSminoura #else 6439025c1eSminoura #define LOADADDR(a) ((a) + offset) 6539025c1eSminoura #define ALIGNENTRY(a) 0 6639025c1eSminoura #define READ(f, b, c) pread((f), (void *)LOADADDR(b), (c)) 6739025c1eSminoura #define BCOPY(s, d, c) vpbcopy((s), (void *)LOADADDR(d), (c)) 6839025c1eSminoura #define BZERO(d, c) pbzero((void *)LOADADDR(d), (c)) 6939025c1eSminoura #define WARN(a) /* nothing */ 7039025c1eSminoura #define PROGRESS(a) /* nothing */ 7139025c1eSminoura #define ALLOC(a) alloc(a) 7239025c1eSminoura #define DEALLOC(a, b) dealloc(a, b) 7339025c1eSminoura #define OKMAGIC(a) (((a) == NMAGIC) || ((a) == OMAGIC)) 7439025c1eSminoura #endif 757e950cc6Sminoura 767e950cc6Sminoura #define vpbcopy bcopy 777e950cc6Sminoura #define pbzero bzero 787e950cc6Sminoura #define pread read 797e950cc6Sminoura 807e950cc6Sminoura #else 817e950cc6Sminoura 827e950cc6Sminoura #define LOADADDR(a) (((u_long)(a)) + offset) 837e950cc6Sminoura #define ALIGNENTRY(a) ((u_long)(a)) 847e950cc6Sminoura #define READ(f, b, c) read((f), (void *)LOADADDR(b), (c)) 857e950cc6Sminoura #define BCOPY(s, d, c) memcpy((void *)LOADADDR(d), (void *)(s), (c)) 867e950cc6Sminoura #define BZERO(d, c) memset((void *)LOADADDR(d), 0, (c)) 877e950cc6Sminoura #define WARN(a) warn a 887e950cc6Sminoura #define PROGRESS(a) /* nothing */ 897e950cc6Sminoura #define ALLOC(a) malloc(a) 90606bb2caSchristos #define DEALLOC(a, b) free(a) 917e950cc6Sminoura #define OKMAGIC(a) ((a) == NMAGIC) 927e950cc6Sminoura 93d57ca0cfSchs ssize_t vread(int, u_long, u_long *, size_t); 94d57ca0cfSchs void vcopy(u_long, u_long, u_long *, size_t); 95d57ca0cfSchs void vzero(u_long, u_long *, size_t); 967e950cc6Sminoura 977e950cc6Sminoura #endif 987e950cc6Sminoura #endif /* ! _X68K_LOADFILE_MACHDEP_H_ */ 99