11.25Sryo/* $NetBSD: linux_exec.h,v 1.25 2021/11/26 08:56:28 ryo Exp $ */ 21.1Smanu 31.1Smanu/*- 41.1Smanu * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc. 51.1Smanu * All rights reserved. 61.1Smanu * 71.1Smanu * This code is derived from software contributed to The NetBSD Foundation 81.1Smanu * by Emmanuel Dreyfus. 91.1Smanu * 101.1Smanu * Redistribution and use in source and binary forms, with or without 111.1Smanu * modification, are permitted provided that the following conditions 121.1Smanu * are met: 131.1Smanu * 1. Redistributions of source code must retain the above copyright 141.1Smanu * notice, this list of conditions and the following disclaimer. 151.1Smanu * 2. Redistributions in binary form must reproduce the above copyright 161.1Smanu * notice, this list of conditions and the following disclaimer in the 171.1Smanu * documentation and/or other materials provided with the distribution. 181.1Smanu * 191.1Smanu * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 201.1Smanu * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 211.1Smanu * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 221.1Smanu * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 231.1Smanu * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 241.1Smanu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 251.1Smanu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 261.1Smanu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 271.1Smanu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 281.1Smanu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 291.1Smanu * POSSIBILITY OF SUCH DAMAGE. 301.1Smanu */ 311.1Smanu 321.1Smanu#ifndef _POWERPC_LINUX_EXEC_H 331.1Smanu#define _POWERPC_LINUX_EXEC_H 341.1Smanu 351.1Smanu#include <sys/exec_aout.h> 361.1Smanu#include <sys/exec_elf.h> 371.1Smanu#include <sys/types.h> 381.1Smanu 391.1Smanu/* 401.1Smanu * From Linux's include/asm-ppc/elf.h 411.1Smanu */ 421.1Smanu#define LINUX_ELF_HWCAP (0) 431.1Smanu 441.1Smanu/* 451.1Smanu * From Linux's include/asm-ppc/param.h 461.1Smanu */ 471.1Smanu# define LINUX_CLOCKS_PER_SEC 100 /* frequency at which times() counts */ 481.1Smanu 491.1Smanu/* 501.1Smanu * Linux a.out format parameters 511.1Smanu */ 521.1Smanu#define LINUX_M_POWERPC MID_POWERPC 531.19Sperry#define LINUX_MID_MACHINE LINUX_M_POWERPC 541.1Smanu 551.1Smanu/* 561.1Smanu * Linux Elf32 format parameters 571.1Smanu */ 581.1Smanu 591.5Smanu#define LINUX_GCC_SIGNATURE 1 601.25Sryo#define LINUX_GO_RT0_SIGNATURE 1 611.1Smanu/* 621.19Sperry * LINUX_ATEXIT_SIGNATURE enable the atexit_signature test. See 631.1Smanu * sys/compat/linux/common/linux_exec_elf32.c:linux_atexit_signature() 641.1Smanu */ 651.1Smanu#define LINUX_ATEXIT_SIGNATURE 1 661.1Smanu 671.1Smanu/* 681.3Swiz * LINUX_SHIFT enable the 16 bytes shift for arguments and ELF auxiliary 691.1Smanu * table. This is needed on the PowerPC 701.1Smanu */ 711.1Smanu#define LINUX_SHIFT 0x0000000FUL 721.1Smanu 731.1Smanu/* 741.3Swiz * Entries in the ELF auxiliary table. This is counted from 751.1Smanu * sys/compat/linux/arc/powerpc/linux_exec_powerpc.c 761.1Smanu */ 771.1Smanu#define LINUX_ELF_AUX_ENTRIES 14 781.1Smanu 791.1Smanu/* 801.1Smanu * Size of the auxiliary ELF table. On the PowerPC we need 16 extra bytes 811.22Sskrll * in order to force an alignment on a 16 bytes boundary (this is expected 821.18Schs * by PowerPC GNU ld.so). 831.1Smanu */ 841.1Smanu#define LINUX_ELF_AUX_ARGSIZ \ 851.24Schs (LINUX_ELF_AUX_ENTRIES * sizeof(Aux32Info) + LINUX_RANDOM_BYTES + 16) 861.1Smanu 871.13Sjdolecek/* we have special powerpc ELF copyargs */ 881.13Sjdolecek#define LINUX_MACHDEP_ELF_COPYARGS 891.15Schristos 901.18Schs#define linux_exec_setup_stack exec_setup_stack 911.6Sbjh21 921.1Smanu#endif /* !_POWERPC_LINUX_EXEC_H */ 93