linux/arch/mn10300/include/uapi/asm/ptrace.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
   2/* MN10300 Exception frame layout and ptrace constants
   3 *
   4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   5 * Written by David Howells (dhowells@redhat.com)
   6 *
   7 * This program is free software; you can redistribute it and/or
   8 * modify it under the terms of the GNU General Public Licence
   9 * as published by the Free Software Foundation; either version
  10 * 2 of the Licence, or (at your option) any later version.
  11 */
  12#ifndef _UAPI_ASM_PTRACE_H
  13#define _UAPI_ASM_PTRACE_H
  14
  15#define PT_A3           0
  16#define PT_A2           1
  17#define PT_D3           2
  18#define PT_D2           3
  19#define PT_MCVF         4
  20#define PT_MCRL         5
  21#define PT_MCRH         6
  22#define PT_MDRQ         7
  23#define PT_E1           8
  24#define PT_E0           9
  25#define PT_E7           10
  26#define PT_E6           11
  27#define PT_E5           12
  28#define PT_E4           13
  29#define PT_E3           14
  30#define PT_E2           15
  31#define PT_SP           16
  32#define PT_LAR          17
  33#define PT_LIR          18
  34#define PT_MDR          19
  35#define PT_A1           20
  36#define PT_A0           21
  37#define PT_D1           22
  38#define PT_D0           23
  39#define PT_ORIG_D0      24
  40#define PT_EPSW         25
  41#define PT_PC           26
  42#define NR_PTREGS       27
  43
  44/*
  45 * This defines the way registers are stored in the event of an exception
  46 * - the strange order is due to the MOVM instruction
  47 */
  48struct pt_regs {
  49        unsigned long           a3;             /* syscall arg 3 */
  50        unsigned long           a2;             /* syscall arg 4 */
  51        unsigned long           d3;             /* syscall arg 5 */
  52        unsigned long           d2;             /* syscall arg 6 */
  53        unsigned long           mcvf;
  54        unsigned long           mcrl;
  55        unsigned long           mcrh;
  56        unsigned long           mdrq;
  57        unsigned long           e1;
  58        unsigned long           e0;
  59        unsigned long           e7;
  60        unsigned long           e6;
  61        unsigned long           e5;
  62        unsigned long           e4;
  63        unsigned long           e3;
  64        unsigned long           e2;
  65        unsigned long           sp;
  66        unsigned long           lar;
  67        unsigned long           lir;
  68        unsigned long           mdr;
  69        unsigned long           a1;
  70        unsigned long           a0;             /* syscall arg 1 */
  71        unsigned long           d1;             /* syscall arg 2 */
  72        unsigned long           d0;             /* syscall ret */
  73        struct pt_regs          *next;          /* next frame pointer */
  74        unsigned long           orig_d0;        /* syscall number */
  75        unsigned long           epsw;
  76        unsigned long           pc;
  77};
  78
  79/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
  80#define PTRACE_GETREGS            12
  81#define PTRACE_SETREGS            13
  82#define PTRACE_GETFPREGS          14
  83#define PTRACE_SETFPREGS          15
  84
  85#endif /* _UAPI_ASM_PTRACE_H */
  86