OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-alpha/] [ptrace.h] - Blame information for rev 1632

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1632 jcastillo
#ifndef _ASMAXP_PTRACE_H
2
#define _ASMAXP_PTRACE_H
3
 
4
 
5
/*
6
 * This struct defines the way the registers are stored on the
7
 * kernel stack during a system call or other kernel entry
8
 *
9
 * NOTE! I want to minimize the overhead of system calls, so this
10
 * struct has as little information as possible.  I does not have
11
 *
12
 *  - floating point regs: the kernel doesn't change those
13
 *  - r9-15: saved by the C compiler
14
 *
15
 * This makes "fork()" and "exec()" a bit more complex, but should
16
 * give us low system call latency.
17
 */
18
 
19
struct pt_regs {
20
        unsigned long r0;
21
        unsigned long r1;
22
        unsigned long r2;
23
        unsigned long r3;
24
        unsigned long r4;
25
        unsigned long r5;
26
        unsigned long r6;
27
        unsigned long r7;
28
        unsigned long r8;
29
        unsigned long r19;
30
        unsigned long r20;
31
        unsigned long r21;
32
        unsigned long r22;
33
        unsigned long r23;
34
        unsigned long r24;
35
        unsigned long r25;
36
        unsigned long r26;
37
        unsigned long r27;
38
        unsigned long r28;
39
        unsigned long hae;
40
/* JRP - These are the values provided to a0-a2 by PALcode */
41
        unsigned long trap_a0;
42
        unsigned long trap_a1;
43
        unsigned long trap_a2;
44
/* These are saved by PAL-code: */
45
        unsigned long ps;
46
        unsigned long pc;
47
        unsigned long gp;
48
        unsigned long r16;
49
        unsigned long r17;
50
        unsigned long r18;
51
};
52
 
53
/*
54
 * This is the extended stack used by signal handlers and the context
55
 * switcher: it's pushed after the normal "struct pt_regs".
56
 */
57
struct switch_stack {
58
        unsigned long r9;
59
        unsigned long r10;
60
        unsigned long r11;
61
        unsigned long r12;
62
        unsigned long r13;
63
        unsigned long r14;
64
        unsigned long r15;
65
        unsigned long r26;
66
        unsigned long fp[32];   /* fp[31] is fpcr */
67
};
68
 
69
#ifdef __KERNEL__
70
#define user_mode(regs) ((regs)->ps & 8)
71
#define instruction_pointer(regs) ((regs)->pc)
72
extern void show_regs(struct pt_regs *);
73
#endif
74
 
75
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.