1*2340cfa5Sderaadt /* $OpenBSD: loadfile_machdep.h,v 1.5 2019/04/10 04:17:34 deraadt Exp $ */ 28eda2d14Spatrick /* $NetBSD: loadfile_machdep.h,v 1.1 1999/04/29 03:17:12 tsubai Exp $ */ 38eda2d14Spatrick 48eda2d14Spatrick /*- 58eda2d14Spatrick * Copyright (c) 1999 The NetBSD Foundation, Inc. 68eda2d14Spatrick * All rights reserved. 78eda2d14Spatrick * 88eda2d14Spatrick * This code is derived from software contributed to The NetBSD Foundation 98eda2d14Spatrick * by Christos Zoulas. 108eda2d14Spatrick * 118eda2d14Spatrick * Redistribution and use in source and binary forms, with or without 128eda2d14Spatrick * modification, are permitted provided that the following conditions 138eda2d14Spatrick * are met: 148eda2d14Spatrick * 1. Redistributions of source code must retain the above copyright 158eda2d14Spatrick * notice, this list of conditions and the following disclaimer. 168eda2d14Spatrick * 2. Redistributions in binary form must reproduce the above copyright 178eda2d14Spatrick * notice, this list of conditions and the following disclaimer in the 188eda2d14Spatrick * documentation and/or other materials provided with the distribution. 198eda2d14Spatrick * 208eda2d14Spatrick * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 218eda2d14Spatrick * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 228eda2d14Spatrick * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 238eda2d14Spatrick * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 248eda2d14Spatrick * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 258eda2d14Spatrick * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 268eda2d14Spatrick * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 278eda2d14Spatrick * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 288eda2d14Spatrick * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 298eda2d14Spatrick * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 308eda2d14Spatrick * POSSIBILITY OF SUCH DAMAGE. 318eda2d14Spatrick */ 328eda2d14Spatrick 338eda2d14Spatrick #define BOOT_ELF 348eda2d14Spatrick #define ELFSIZE 32 358eda2d14Spatrick 364c9c6baaSmiod #define LOAD_KERNEL LOAD_ALL 374c9c6baaSmiod #define COUNT_KERNEL COUNT_ALL 388eda2d14Spatrick 39c41803b9Skettenis extern u_long efi_loadaddr; 40c41803b9Skettenis #define LOADADDR(a) (((((u_long)(a)) + offset)&0xfffffff) + \ 41c41803b9Skettenis efi_loadaddr) 428eda2d14Spatrick #define ALIGNENTRY(a) ((u_long)(a)) 438eda2d14Spatrick #define READ(f, b, c) read((f), (void *)LOADADDR(b), (c)) 448eda2d14Spatrick #define BCOPY(s, d, c) memcpy((void *)LOADADDR(d), (void *)(s), (c)) 458eda2d14Spatrick #define BZERO(d, c) memset((void *)LOADADDR(d), 0, (c)) 468eda2d14Spatrick #define WARN(a) (void)(printf a, \ 478eda2d14Spatrick printf((errno ? ": %s\n" : "\n"), \ 488eda2d14Spatrick strerror(errno))) 498eda2d14Spatrick #define PROGRESS(a) (void) printf a 508eda2d14Spatrick #define ALLOC(a) alloc(a) 518eda2d14Spatrick #define FREE(a, b) free(a, b) 528eda2d14Spatrick 53*2340cfa5Sderaadt void run_loadfile(uint64_t *, int); 54