linux_exec.h revision 1.3
11.3Smanu/* $NetBSD: linux_exec.h,v 1.3 2001/09/22 21:15:18 manu 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 * 3. All advertising materials mentioning features or use of this software 191.1Smanu * must display the following acknowledgement: 201.1Smanu * This product includes software developed by the NetBSD 211.1Smanu * Foundation, Inc. and its contributors. 221.1Smanu * 4. Neither the name of The NetBSD Foundation nor the names of its 231.1Smanu * contributors may be used to endorse or promote products derived 241.1Smanu * from this software without specific prior written permission. 251.1Smanu * 261.1Smanu * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 271.1Smanu * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 281.1Smanu * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 291.1Smanu * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 301.1Smanu * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 311.1Smanu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 321.1Smanu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 331.1Smanu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 341.1Smanu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 351.1Smanu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 361.1Smanu * POSSIBILITY OF SUCH DAMAGE. 371.1Smanu */ 381.1Smanu 391.1Smanu#ifndef _MIPS_LINUX_EXEC_H 401.1Smanu#define _MIPS_LINUX_EXEC_H 411.1Smanu 421.1Smanu#include <sys/exec_aout.h> 431.1Smanu#include <sys/exec_elf.h> 441.1Smanu#include <sys/types.h> 451.1Smanu#include <sys/systm.h> 461.1Smanu 471.1Smanu/* 481.1Smanu * From Linux's include/asm-mips/elf.h 491.1Smanu */ 501.1Smanu#define LINUX_ELF_HWCAP (0) 511.1Smanu 521.1Smanu/* 531.1Smanu * Linux a.out format parameters 541.1Smanu */ 551.3Smanu#define LINUX_M_MIPS MID_MIPS 561.1Smanu#define LINUX_MID_MACHINE LINUX_M_MIPS 571.1Smanu 581.1Smanu/* 591.1Smanu * Linux Elf32 format parameters 601.1Smanu */ 611.1Smanu 621.3Smanu#define LINUX_ATEXIT_SIGNATURE 1 631.3Smanu#define LINUX_GCC_SIGNATURE 1 641.1Smanu 651.3Smanu/* #define LINUX_COPYARGS_FUNCTION linux_elf32_copyargs */ 661.3Smanu#if defined(ELFSIZE) && (ELFSIZE == 64) 671.3Smanu#define LINUX_COPYARGS_FUNCTION ELF64NAME(copyargs) 681.3Smanu#else 691.3Smanu#define LINUX_COPYARGS_FUNCTION ELF32NAME(copyargs) 701.3Smanu#endif 711.3Smanu 721.3Smanu#define LINUX_ELF_AUX_ENTRIES 14 731.3Smanu 741.3Smanu#define LINUX_ELF_AUX_ARGSIZ \ 751.3Smanu ((howmany(ELF_AUX_ENTRIES * sizeof(LinuxAuxInfo), sizeof(Elf32_Addr)))) 761.1Smanu 771.1Smanutypedef struct { 781.1Smanu Elf32_Sword a_type; 791.1Smanu Elf32_Word a_v; 801.1Smanu} LinuxAux32Info; 811.2Smanutypedef struct { 821.2Smanu Elf64_Sword a_type; 831.2Smanu Elf64_Word a_v; 841.2Smanu} LinuxAux64Info; 851.2Smanu#if defined(ELFSIZE) && (ELFSIZE == 64) 861.2Smanu#define LinuxAuxInfo LinuxAux64Info 871.2Smanu#else 881.1Smanu#define LinuxAuxInfo LinuxAux32Info 891.2Smanu#endif 901.1Smanu 911.1Smanu#ifdef _KERNEL 921.1Smanu__BEGIN_DECLS 931.3Smanu#ifdef EXEC_ELF32 941.3Smanuint linux_elf32_copyargs __P((struct exec_package *, struct ps_strings *, 951.3Smanu char **, void *)); 961.3Smanu#endif 971.3Smanu#ifdef EXEC_ELF64 981.3Smanuint linux_elf64_copyargs __P((struct exec_package *, struct ps_strings *, 991.3Smanu char **, void *)); 1001.3Smanu#endif 1011.1Smanu__END_DECLS 1021.1Smanu#endif /* _KERNEL */ 1031.1Smanu 1041.1Smanu#endif /* !_MIPS_LINUX_EXEC_H */ 105