1 1.7 riastrad /* $NetBSD: linux_exec.h,v 1.7 2024/10/01 16:35:42 riastradh Exp $ */ 2 1.1 manu 3 1.1 manu /*- 4 1.1 manu * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved. 5 1.1 manu * 6 1.1 manu * Redistribution and use in source and binary forms, with or without 7 1.1 manu * modification, are permitted provided that the following conditions 8 1.1 manu * are met: 9 1.1 manu * 1. Redistributions of source code must retain the above copyright 10 1.1 manu * notice, this list of conditions and the following disclaimer. 11 1.1 manu * 2. Redistributions in binary form must reproduce the above copyright 12 1.1 manu * notice, this list of conditions and the following disclaimer in the 13 1.1 manu * documentation and/or other materials provided with the distribution. 14 1.1 manu * 3. All advertising materials mentioning features or use of this software 15 1.1 manu * must display the following acknowledgement: 16 1.1 manu * This product includes software developed by Emmanuel Dreyfus 17 1.7 riastrad * 4. The name of the author may not be used to endorse or promote 18 1.7 riastrad * products derived from this software without specific prior written 19 1.1 manu * permission. 20 1.1 manu * 21 1.7 riastrad * THIS SOFTWARE IS PROVIDED BY THE THE AUTHOR AND CONTRIBUTORS ``AS IS'' 22 1.7 riastrad * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 1.1 manu * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 1.1 manu * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 25 1.1 manu * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 1.1 manu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 1.1 manu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 1.1 manu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 1.1 manu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 1.1 manu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 1.1 manu * POSSIBILITY OF SUCH DAMAGE. 32 1.1 manu */ 33 1.1 manu 34 1.1 manu #ifndef _AMD64_LINUX_EXEC_H 35 1.1 manu #define _AMD64_LINUX_EXEC_H 36 1.1 manu 37 1.1 manu #ifndef ELFSIZE 38 1.1 manu #define ELFSIZE 64 39 1.1 manu #endif 40 1.1 manu #include <sys/exec_elf.h> 41 1.1 manu 42 1.1 manu /* This is only for a.out, and a.out does not support amd64 */ 43 1.1 manu #define LINUX_M_I386 100 44 1.1 manu #define LINUX_MID_MACHINE LINUX_M_I386 45 1.1 manu 46 1.1 manu #define LINUX_USRSTACK 0x800000000000 47 1.1 manu #define LINUX_USRSTACK32 0xc0000000 48 1.1 manu 49 1.1 manu /* Counted from linux_exec_machdep.c */ 50 1.5 chs #define LINUX_ELF_AUX_ENTRIES 17 51 1.1 manu 52 1.1 manu /* Hardware platform identifier string */ 53 1.1 manu #define LINUX_PLATFORM "x86_64" 54 1.1 manu 55 1.1 manu /* The extra data (ELF auxiliary table and platform name) on stack */ 56 1.1 manu struct linux_extra_stack_data64 { 57 1.1 manu Aux64Info ai[LINUX_ELF_AUX_ENTRIES]; 58 1.5 chs uint32_t randbytes[4]; 59 1.1 manu char pad[1]; /*sizeof(long) - (sizeof(LINUX_PLATFORM) % sizeof(long))*/ 60 1.1 manu char hw_platform[sizeof(LINUX_PLATFORM)]; 61 1.1 manu }; 62 1.1 manu #define LINUX_ELF_AUX_ARGSIZ sizeof(struct linux_extra_stack_data64) 63 1.1 manu 64 1.1 manu /* we have special powerpc ELF copyargs */ 65 1.1 manu #define LINUX_MACHDEP_ELF_COPYARGS 66 1.1 manu 67 1.4 manu #define LINUX_DEBUGLINK_SIGNATURE 68 1.6 ryo #define LINUX_GO_RT0_SIGNATURE 69 1.4 manu 70 1.3 christos int linux_exec_setup_stack(struct lwp *, struct exec_package *); 71 1.1 manu 72 1.1 manu #endif /* !_AMD64_LINUX_EXEC_H */ 73