1*bbb9625bSryo /* $NetBSD: linux_exec.h,v 1.25 2021/11/26 08:56:28 ryo Exp $ */ 23ec12572Smanu 33ec12572Smanu /*- 43ec12572Smanu * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. 53ec12572Smanu * All rights reserved. 63ec12572Smanu * 73ec12572Smanu * This code is derived from software contributed to The NetBSD Foundation 83ec12572Smanu * by Emmanuel Dreyfus. 93ec12572Smanu * 103ec12572Smanu * Redistribution and use in source and binary forms, with or without 113ec12572Smanu * modification, are permitted provided that the following conditions 123ec12572Smanu * are met: 133ec12572Smanu * 1. Redistributions of source code must retain the above copyright 143ec12572Smanu * notice, this list of conditions and the following disclaimer. 153ec12572Smanu * 2. Redistributions in binary form must reproduce the above copyright 163ec12572Smanu * notice, this list of conditions and the following disclaimer in the 173ec12572Smanu * documentation and/or other materials provided with the distribution. 183ec12572Smanu * 193ec12572Smanu * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 203ec12572Smanu * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 213ec12572Smanu * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 223ec12572Smanu * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 233ec12572Smanu * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 243ec12572Smanu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 253ec12572Smanu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 263ec12572Smanu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 273ec12572Smanu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 283ec12572Smanu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 293ec12572Smanu * POSSIBILITY OF SUCH DAMAGE. 303ec12572Smanu */ 313ec12572Smanu 323ec12572Smanu #ifndef _POWERPC_LINUX_EXEC_H 333ec12572Smanu #define _POWERPC_LINUX_EXEC_H 343ec12572Smanu 353ec12572Smanu #include <sys/exec_aout.h> 363ec12572Smanu #include <sys/exec_elf.h> 373ec12572Smanu #include <sys/types.h> 383ec12572Smanu 393ec12572Smanu /* 403ec12572Smanu * From Linux's include/asm-ppc/elf.h 413ec12572Smanu */ 423ec12572Smanu #define LINUX_ELF_HWCAP (0) 433ec12572Smanu 443ec12572Smanu /* 453ec12572Smanu * From Linux's include/asm-ppc/param.h 463ec12572Smanu */ 473ec12572Smanu # define LINUX_CLOCKS_PER_SEC 100 /* frequency at which times() counts */ 483ec12572Smanu 493ec12572Smanu /* 503ec12572Smanu * Linux a.out format parameters 513ec12572Smanu */ 523ec12572Smanu #define LINUX_M_POWERPC MID_POWERPC 533ec12572Smanu #define LINUX_MID_MACHINE LINUX_M_POWERPC 543ec12572Smanu 553ec12572Smanu /* 563ec12572Smanu * Linux Elf32 format parameters 573ec12572Smanu */ 583ec12572Smanu 598e1033bfSmanu #define LINUX_GCC_SIGNATURE 1 60*bbb9625bSryo #define LINUX_GO_RT0_SIGNATURE 1 613ec12572Smanu /* 623ec12572Smanu * LINUX_ATEXIT_SIGNATURE enable the atexit_signature test. See 633ec12572Smanu * sys/compat/linux/common/linux_exec_elf32.c:linux_atexit_signature() 643ec12572Smanu */ 653ec12572Smanu #define LINUX_ATEXIT_SIGNATURE 1 663ec12572Smanu 673ec12572Smanu /* 68035b63a5Swiz * LINUX_SHIFT enable the 16 bytes shift for arguments and ELF auxiliary 693ec12572Smanu * table. This is needed on the PowerPC 703ec12572Smanu */ 713ec12572Smanu #define LINUX_SHIFT 0x0000000FUL 723ec12572Smanu 733ec12572Smanu /* 74035b63a5Swiz * Entries in the ELF auxiliary table. This is counted from 753ec12572Smanu * sys/compat/linux/arc/powerpc/linux_exec_powerpc.c 763ec12572Smanu */ 773ec12572Smanu #define LINUX_ELF_AUX_ENTRIES 14 783ec12572Smanu 793ec12572Smanu /* 803ec12572Smanu * Size of the auxiliary ELF table. On the PowerPC we need 16 extra bytes 812d1abfdfSskrll * in order to force an alignment on a 16 bytes boundary (this is expected 82f8fa568eSchs * by PowerPC GNU ld.so). 833ec12572Smanu */ 843ec12572Smanu #define LINUX_ELF_AUX_ARGSIZ \ 85f49c9159Schs (LINUX_ELF_AUX_ENTRIES * sizeof(Aux32Info) + LINUX_RANDOM_BYTES + 16) 863ec12572Smanu 87cee43b67Sjdolecek /* we have special powerpc ELF copyargs */ 88cee43b67Sjdolecek #define LINUX_MACHDEP_ELF_COPYARGS 893ec12572Smanu 90f8fa568eSchs #define linux_exec_setup_stack exec_setup_stack 913b9c3c5aSchristos 923ec12572Smanu #endif /* !_POWERPC_LINUX_EXEC_H */ 93