xref: /openbsd-src/sys/arch/i386/include/loadfile_machdep.h (revision 2340cfa57962bd12069f312342c641006c968c28)
1*2340cfa5Sderaadt /*	$OpenBSD: loadfile_machdep.h,v 1.8 2019/04/10 04:17:35 deraadt Exp $	*/
2fe42373dSdrahn /*	$NetBSD: loadfile_machdep.h,v 1.1 1999/04/29 03:17:12 tsubai Exp $	*/
3fe42373dSdrahn 
4fe42373dSdrahn /*-
5fe42373dSdrahn  * Copyright (c) 1999 The NetBSD Foundation, Inc.
6fe42373dSdrahn  * All rights reserved.
7fe42373dSdrahn  *
8fe42373dSdrahn  * This code is derived from software contributed to The NetBSD Foundation
9fe42373dSdrahn  * by Christos Zoulas.
10fe42373dSdrahn  *
11fe42373dSdrahn  * Redistribution and use in source and binary forms, with or without
12fe42373dSdrahn  * modification, are permitted provided that the following conditions
13fe42373dSdrahn  * are met:
14fe42373dSdrahn  * 1. Redistributions of source code must retain the above copyright
15fe42373dSdrahn  *    notice, this list of conditions and the following disclaimer.
16fe42373dSdrahn  * 2. Redistributions in binary form must reproduce the above copyright
17fe42373dSdrahn  *    notice, this list of conditions and the following disclaimer in the
18fe42373dSdrahn  *    documentation and/or other materials provided with the distribution.
19fe42373dSdrahn  *
20fe42373dSdrahn  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21fe42373dSdrahn  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22fe42373dSdrahn  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23fe42373dSdrahn  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24fe42373dSdrahn  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25fe42373dSdrahn  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26fe42373dSdrahn  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27fe42373dSdrahn  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28fe42373dSdrahn  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29fe42373dSdrahn  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30fe42373dSdrahn  * POSSIBILITY OF SUCH DAMAGE.
31fe42373dSdrahn  */
32fe42373dSdrahn 
33fe42373dSdrahn #define BOOT_ELF
349197bb1bStom #define BOOT_ELF32
359197bb1bStom #define BOOT_ELF64
369197bb1bStom 
379197bb1bStom /* Keep a default ELFSIZE */
38fe42373dSdrahn #define ELFSIZE 32
39fe42373dSdrahn 
404c9c6baaSmiod #define LOAD_KERNEL		LOAD_ALL
414c9c6baaSmiod #define COUNT_KERNEL		COUNT_ALL
42fe42373dSdrahn 
437af97067Stom #define LOADADDR(a)		((((u_long)(a)) + offset)&0xfffffff)
44fe42373dSdrahn #define ALIGNENTRY(a)		((u_long)(a))
459197bb1bStom #define READ(f, b, c)		read((f), (void *)LOADADDR(b), (size_t)(c))
46fe42373dSdrahn #define BCOPY(s, d, c)		memcpy((void *)LOADADDR(d), (void *)(s), (c))
47fe42373dSdrahn #define BZERO(d, c)		memset((void *)LOADADDR(d), 0, (c))
48fe42373dSdrahn #define	WARN(a)			(void)(printf a, \
49fe42373dSdrahn 				    printf((errno ? ": %s\n" : "\n"), \
50fe42373dSdrahn 				    strerror(errno)))
51fe42373dSdrahn #define PROGRESS(a)		(void) printf a
52fe42373dSdrahn #define ALLOC(a)		alloc(a)
53fe42373dSdrahn #define FREE(a, b)		free(a, b)
54fe42373dSdrahn 
55*2340cfa5Sderaadt void run_loadfile(uint64_t *, int);
56