1*0589cefeSskrll /* $NetBSD: loadfile_machdep.h,v 1.8 2020/09/26 14:18:06 skrll Exp $ */ 277b78cdcSnisimura 3437c3bedSjmcneill #if defined(__aarch64__) 4437c3bedSjmcneill #define BOOT_ELF64 5437c3bedSjmcneill #else 677b78cdcSnisimura #define BOOT_ELF32 7437c3bedSjmcneill #endif 877b78cdcSnisimura 977b78cdcSnisimura #define LOAD_KERNEL (LOAD_ALL & ~LOAD_TEXTA) 1077b78cdcSnisimura #define COUNT_KERNEL (COUNT_ALL & ~COUNT_TEXTA) 1177b78cdcSnisimura 12740e40f4Sjmcneill #if defined(__aarch64__) 130677c7c8Sjmcneill extern u_long load_offset; 140677c7c8Sjmcneill #define LOADADDR(a) (((((u_long)(a)) + offset) & 0x3fffffffff) + load_offset) 1572806041Sjmcneill #elif defined(EFIBOOT) 1672806041Sjmcneill extern u_long load_offset; 1772806041Sjmcneill #define LOADADDR(a) (((((u_long)(a)) + offset) & 0x7fffffff) + load_offset) 18740e40f4Sjmcneill #else 1977b78cdcSnisimura #define LOADADDR(a) (((u_long)(a))) 20740e40f4Sjmcneill #endif 2177b78cdcSnisimura #define ALIGNENTRY(a) ((u_long)(a)) 2277b78cdcSnisimura #define READ(f, b, c) read((f), (void*)LOADADDR(b), (c)) 23740e40f4Sjmcneill #define BCOPY(s, d, c) memmove((void*)LOADADDR(d), (void*)(s), (c)) 2477b78cdcSnisimura #define BZERO(d, c) memset((void*)LOADADDR(d), 0, (c)) 25eb6cc752Sjoerg #define WARN(a) do { \ 26eb6cc752Sjoerg (void)printf a; \ 27eb6cc752Sjoerg if (errno) \ 28eb6cc752Sjoerg (void)printf(": %s\n", \ 29eb6cc752Sjoerg strerror(errno)); \ 30eb6cc752Sjoerg else \ 31eb6cc752Sjoerg (void)printf("\n"); \ 32eb6cc752Sjoerg } while(/* CONSTCOND */0) 33713ca5ebSjmcneill #ifdef PROGRESS_FN 34713ca5ebSjmcneill void PROGRESS_FN(const char *, ...) __printflike(1, 2); 35713ca5ebSjmcneill #define PROGRESS(a) PROGRESS_FN a 36713ca5ebSjmcneill #else 3777b78cdcSnisimura #define PROGRESS(a) (void)printf a 38713ca5ebSjmcneill #endif 3977b78cdcSnisimura #define ALLOC(a) alloc(a) 4077b78cdcSnisimura #define DEALLOC(a, b) dealloc(a, b) 4177b78cdcSnisimura #define OKMAGIC(a) ((a) == ZMAGIC) 42