~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/arch/nds32/include/asm/ptrace.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2011 Andes Technology Corporation
 
3
 * Copyright (C) 2010 Shawn Lin (nobuhiro@andestech.com)
 
4
 * Copyright (C) 2011 Macpaul Lin (macpaul@andestech.com)
 
5
 *
 
6
 * This program is free software; you can redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License version 2 as
 
8
 * published by the Free Software Foundation.
 
9
 */
 
10
#ifndef __ASM_NDS_PTRACE_H
 
11
#define __ASM_NDS_PTRACE_H
 
12
 
 
13
#define USR_MODE        0x00
 
14
#define SU_MODE         0x01
 
15
#define HV_MODE         0x10
 
16
#define MODE_MASK       (0x03<<3)
 
17
#define GIE_BIT         0x01
 
18
 
 
19
#ifndef __ASSEMBLY__
 
20
 
 
21
/* this struct defines the way the registers are stored on the
 
22
   stack during a system call. */
 
23
 
 
24
#define NDS32_REG long
 
25
 
 
26
struct pt_regs {
 
27
        NDS32_REG ir0;
 
28
        NDS32_REG ipsw;
 
29
        NDS32_REG ipc;
 
30
        NDS32_REG sp;
 
31
        NDS32_REG orig_r0;
 
32
        NDS32_REG pipsw;
 
33
        NDS32_REG pipc;
 
34
        NDS32_REG pp0;
 
35
        NDS32_REG pp1;
 
36
        NDS32_REG d0hi;
 
37
        NDS32_REG d0lo;
 
38
        NDS32_REG d1hi;
 
39
        NDS32_REG d1lo;
 
40
        NDS32_REG r[26];        /* r0 - r25 */
 
41
        NDS32_REG p0;           /* r26 - used by OS */
 
42
        NDS32_REG p1;           /* r27 - used by OS */
 
43
        NDS32_REG fp;           /* r28 */
 
44
        NDS32_REG gp;           /* r29 */
 
45
        NDS32_REG lp;           /* r30 */
 
46
        NDS32_REG fucop_ctl;
 
47
        NDS32_REG osp;
 
48
};
 
49
 
 
50
#define processor_mode(regs) \
 
51
        (((regs)->ipsw & MODE_MASK) >> 3)
 
52
 
 
53
#define interrupts_enabled(regs) \
 
54
        ((regs)->ipsw & GIE_BIT)
 
55
 
 
56
/*
 
57
 * Offsets used by 'ptrace' system call interface.
 
58
 * These can't be changed without breaking binary compatibility
 
59
 * with MkLinux, etc.
 
60
 */
 
61
#define PT_R0   0
 
62
#define PT_R1   1
 
63
#define PT_R2   2
 
64
#define PT_R3   3
 
65
#define PT_R4   4
 
66
#define PT_R5   5
 
67
#define PT_R6   6
 
68
#define PT_R7   7
 
69
#define PT_R8   8
 
70
#define PT_R9   9
 
71
#define PT_R10  10
 
72
#define PT_R11  11
 
73
#define PT_R12  12
 
74
#define PT_R13  13
 
75
#define PT_R14  14
 
76
#define PT_R15  15
 
77
#define PT_R16  16
 
78
#define PT_R17  17
 
79
#define PT_R18  18
 
80
#define PT_R19  19
 
81
#define PT_R20  20
 
82
#define PT_R21  21
 
83
#define PT_R22  22
 
84
#define PT_R23  23
 
85
#define PT_R24  24
 
86
#define PT_R25  25
 
87
 
 
88
#endif  /* __ASSEMBLY__ */
 
89
 
 
90
#endif /* __ASM_NDS_PTRACE_H */