mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
54 lines
1.9 KiB
C
54 lines
1.9 KiB
C
|
/* MN10300 User process data
|
||
|
*
|
||
|
* Copyright (C) 2007 Matsushita Electric Industrial Co., Ltd.
|
||
|
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or
|
||
|
* modify it under the terms of the GNU General Public Licence
|
||
|
* as published by the Free Software Foundation; either version
|
||
|
* 2 of the Licence, or (at your option) any later version.
|
||
|
*/
|
||
|
#ifndef _ASM_USER_H
|
||
|
#define _ASM_USER_H
|
||
|
|
||
|
#include <asm/page.h>
|
||
|
#include <linux/ptrace.h>
|
||
|
|
||
|
#ifndef __ASSEMBLY__
|
||
|
/*
|
||
|
* When the kernel dumps core, it starts by dumping the user struct - this will
|
||
|
* be used by gdb to figure out where the data and stack segments are within
|
||
|
* the file, and what virtual addresses to use.
|
||
|
*/
|
||
|
struct user {
|
||
|
/* We start with the registers, to mimic the way that "memory" is
|
||
|
* returned from the ptrace(3,...) function.
|
||
|
*/
|
||
|
struct pt_regs regs; /* Where the registers are actually stored */
|
||
|
|
||
|
/* The rest of this junk is to help gdb figure out what goes where */
|
||
|
unsigned long int u_tsize; /* Text segment size (pages). */
|
||
|
unsigned long int u_dsize; /* Data segment size (pages). */
|
||
|
unsigned long int u_ssize; /* Stack segment size (pages). */
|
||
|
unsigned long start_code; /* Starting virtual address of text. */
|
||
|
unsigned long start_stack; /* Starting virtual address of stack area.
|
||
|
This is actually the bottom of the stack,
|
||
|
the top of the stack is always found in the
|
||
|
esp register. */
|
||
|
long int signal; /* Signal that caused the core dump. */
|
||
|
int reserved; /* No longer used */
|
||
|
struct user_pt_regs *u_ar0; /* Used by gdb to help find the values for */
|
||
|
|
||
|
/* the registers */
|
||
|
unsigned long magic; /* To uniquely identify a core file */
|
||
|
char u_comm[32]; /* User command that was responsible */
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
#define NBPG PAGE_SIZE
|
||
|
#define UPAGES 1
|
||
|
#define HOST_TEXT_START_ADDR +(u.start_code)
|
||
|
#define HOST_STACK_END_ADDR +(u.start_stack + u.u_ssize * NBPG)
|
||
|
|
||
|
#endif /* _ASM_USER_H */
|