/*
 * user.h
 *
 * 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.
 *
 * Copyright (C) Equator Technologies
 */

#ifndef _ASM_BSP_USER_H_
#define _ASM_BSP_USER_H_

#include <linux/ptrace.h>

#include <asm/page.h>

struct user {
  /* We start with the registers, to mimic the way that "memory" is returned
     from the ptrace(3,...) function.  */
  ctxContext ctx;

  /* 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 */
  int u_debugreg[8];
};

#define NBPG		PAGE_SIZE

#endif	/* _ASM_BSP_USER_H_ */
