Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92d5dd8c authored by Chung-Ling Tang's avatar Chung-Ling Tang Committed by Ley Foon Tan
Browse files

nios2: update pt_regs



Remove struct pt_regs from user header and use generic ucontext.h.

Signed-off-by: default avatarChung-Ling Tang <cltang@codesourcery.com>
Acked-by: default avatarLey Foon Tan <lftan@altera.com>
parent 9eccca08
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
@@ -15,7 +15,54 @@

#include <uapi/asm/ptrace.h>

/* This struct defines the way the registers are stored on the
   stack during a system call.  */

#ifndef __ASSEMBLY__
struct pt_regs {
	unsigned long  r8;	/* r8-r15 Caller-saved GP registers */
	unsigned long  r9;
	unsigned long  r10;
	unsigned long  r11;
	unsigned long  r12;
	unsigned long  r13;
	unsigned long  r14;
	unsigned long  r15;
	unsigned long  r1;	/* Assembler temporary */
	unsigned long  r2;	/* Retval LS 32bits */
	unsigned long  r3;	/* Retval MS 32bits */
	unsigned long  r4;	/* r4-r7 Register arguments */
	unsigned long  r5;
	unsigned long  r6;
	unsigned long  r7;
	unsigned long  orig_r2;	/* Copy of r2 ?? */
	unsigned long  ra;	/* Return address */
	unsigned long  fp;	/* Frame pointer */
	unsigned long  sp;	/* Stack pointer */
	unsigned long  gp;	/* Global pointer */
	unsigned long  estatus;
	unsigned long  ea;	/* Exception return address (pc) */
	unsigned long  orig_r7;
};

/*
 * This is the extended stack used by signal handlers and the context
 * switcher: it's pushed after the normal "struct pt_regs".
 */
struct switch_stack {
	unsigned long  r16;	/* r16-r23 Callee-saved GP registers */
	unsigned long  r17;
	unsigned long  r18;
	unsigned long  r19;
	unsigned long  r20;
	unsigned long  r21;
	unsigned long  r22;
	unsigned long  r23;
	unsigned long  fp;
	unsigned long  gp;
	unsigned long  ra;
};

#define user_mode(regs)	(((regs)->estatus & ESTATUS_EU))

#define instruction_pointer(regs)	((regs)->ra)

arch/nios2/include/asm/ucontext.h

deleted100644 → 0
+0 −32
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch>
 * Copyright (C) 2004 Microtronix Datacom Ltd
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 */

#ifndef _ASM_NIOS2_UCONTEXT_H
#define _ASM_NIOS2_UCONTEXT_H

typedef int greg_t;
#define NGREG 32
typedef greg_t gregset_t[NGREG];

struct mcontext {
	int version;
	gregset_t gregs;
};

#define MCONTEXT_VERSION 2

struct ucontext {
	unsigned long	  uc_flags;
	struct ucontext  *uc_link;
	stack_t		  uc_stack;
	struct mcontext	  uc_mcontext;
	sigset_t	  uc_sigmask;	/* mask last for extensibility */
};

#endif
+2 −0
Original line number Diff line number Diff line
@@ -2,3 +2,5 @@ include include/uapi/asm-generic/Kbuild.asm

header-y += elf.h
header-y += ucontext.h

generic-y += ucontext.h
+1 −3
Original line number Diff line number Diff line
@@ -50,9 +50,7 @@

typedef unsigned long elf_greg_t;

#define ELF_NGREG	\
	((sizeof(struct pt_regs) + sizeof(struct switch_stack)) /	\
		sizeof(elf_greg_t))
#define ELF_NGREG		49
typedef elf_greg_t elf_gregset_t[ELF_NGREG];

typedef unsigned long elf_fpregset_t;
+3 −47
Original line number Diff line number Diff line
@@ -67,53 +67,9 @@

#define NUM_PTRACE_REG (PTR_TLBMISC + 1)

/* this struct defines the way the registers are stored on the
   stack during a system call.

   There is a fake_regs in setup.c that has to match pt_regs.*/

struct pt_regs {
	unsigned long  r8;		/* r8-r15 Caller-saved GP registers */
	unsigned long  r9;
	unsigned long  r10;
	unsigned long  r11;
	unsigned long  r12;
	unsigned long  r13;
	unsigned long  r14;
	unsigned long  r15;
	unsigned long  r1;		/* Assembler temporary */
	unsigned long  r2;		/* Retval LS 32bits */
	unsigned long  r3;		/* Retval MS 32bits */
	unsigned long  r4;		/* r4-r7 Register arguments */
	unsigned long  r5;
	unsigned long  r6;
	unsigned long  r7;
	unsigned long  orig_r2;		/* Copy of r2 ?? */
	unsigned long  ra;		/* Return address */
	unsigned long  fp;		/* Frame pointer */
	unsigned long  sp;		/* Stack pointer */
	unsigned long  gp;		/* Global pointer */
	unsigned long  estatus;
	unsigned long  ea;		/* Exception return address (pc) */
	unsigned long  orig_r7;
};

/*
 * This is the extended stack used by signal handlers and the context
 * switcher: it's pushed after the normal "struct pt_regs".
 */
struct switch_stack {
	unsigned long  r16;		/* r16-r23 Callee-saved GP registers */
	unsigned long  r17;
	unsigned long  r18;
	unsigned long  r19;
	unsigned long  r20;
	unsigned long  r21;
	unsigned long  r22;
	unsigned long  r23;
	unsigned long  fp;
	unsigned long  gp;
	unsigned long  ra;
/* User structures for general purpose registers.  */
struct user_pt_regs {
	__u32		regs[49];
};

#endif /* __ASSEMBLY__ */
Loading