⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binfmt_elf32.c

📁 《嵌入式系统设计与实例开发实验教材二源码》Linux内核移植与编译实验
💻 C
字号:
/* * Support for 32-bit Linux/MIPS ELF binaries. * * Copyright (C) 1999, 2001 Ralf Baechle * Copyright (C) 1999, 2001 Silicon Graphics, Inc. * * Heavily inspired by the 32-bit Sparc compat code which is * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com) * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek   (jj@ultra.linux.cz) */#define ELF_ARCH		EM_MIPS#define ELF_CLASS		ELFCLASS32#ifdef __MIPSEB__#define ELF_DATA		ELFDATA2MSB;#else /* __MIPSEL__ */#define ELF_DATA		ELFDATA2LSB;#endif/* ELF register definitions */#define ELF_NGREG	45#define ELF_NFPREG	33typedef unsigned int elf_greg_t;typedef elf_greg_t elf_gregset_t[ELF_NGREG];typedef double elf_fpreg_t;typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];#define elf_check_arch(x)	\	((x)->e_machine == EM_MIPS)#define TASK32_SIZE		0x80000000UL#undef ELF_ET_DYN_BASE#define ELF_ET_DYN_BASE         (TASK32_SIZE / 3 * 2)#include <asm/processor.h>#include <linux/module.h>#include <linux/config.h>#include <linux/elfcore.h>struct timeval32{	unsigned int tv_sec, tv_usec;};#define elf_prstatus elf_prstatus32struct elf_prstatus32{	struct elf_siginfo pr_info;	/* Info associated with signal */	short	pr_cursig;		/* Current signal */	unsigned int pr_sigpend;	/* Set of pending signals */	unsigned int pr_sighold;	/* Set of held signals */	pid_t	pr_pid;	pid_t	pr_ppid;	pid_t	pr_pgrp;	pid_t	pr_sid;	struct timeval32 pr_utime;	/* User time */	struct timeval32 pr_stime;	/* System time */	struct timeval32 pr_cutime;	/* Cumulative user time */	struct timeval32 pr_cstime;	/* Cumulative system time */	elf_gregset_t pr_reg;	/* GP registers */	int pr_fpvalid;		/* True if math co-processor being used.  */};#define elf_prpsinfo elf_prpsinfo32struct elf_prpsinfo32{	char	pr_state;	/* numeric process state */	char	pr_sname;	/* char for pr_state */	char	pr_zomb;	/* zombie */	char	pr_nice;	/* nice val */	unsigned int pr_flag;	/* flags */	u16	pr_uid;	u16	pr_gid;	pid_t	pr_pid, pr_ppid, pr_pgrp, pr_sid;	/* Lots missing */	char	pr_fname[16];	/* filename of executable */	char	pr_psargs[ELF_PRARGSZ];	/* initial part of arg list */};#define elf_addr_t	u32#define elf_caddr_t	u32#define init_elf_binfmt init_elf32_binfmt#undef CONFIG_BINFMT_ELF#ifdef CONFIG_BINFMT_ELF32#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32#endif#undef CONFIG_BINFMT_ELF_MODULE#ifdef CONFIG_BINFMT_ELF32_MODULE#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE#endifMODULE_DESCRIPTION("Binary format loader for compatibility with 32bit Linux/MIPS binaries");MODULE_AUTHOR("Ralf Baechle (ralf@oss.sgi.com)");#undef MODULE_DESCRIPTION#undef MODULE_AUTHOR#include "../../../fs/binfmt_elf.c"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -