xref: /netbsd-src/sys/compat/linux/arch/powerpc/linux_exec.h (revision bbb9625b59222eb4e83acc72bd090cb9c21c3103)
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