Subversion Repositories HelenOS

Rev

Rev 2411 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2411 Rev 2412
Line 38... Line 38...
38
#define KERN_arm32_EXCEPTION_H_
38
#define KERN_arm32_EXCEPTION_H_
39
 
39
 
40
#include <arch/types.h>
40
#include <arch/types.h>
41
#include <arch/regutils.h>
41
#include <arch/regutils.h>
42
 
42
 
43
/** If defined, macro forces using of high exception vectors. */
43
/** If defined, forces using of high exception vectors. */
44
#define HIGH_EXCEPTION_VECTORS
44
#define HIGH_EXCEPTION_VECTORS
45
 
45
 
46
#ifdef HIGH_EXCEPTION_VECTORS
46
#ifdef HIGH_EXCEPTION_VECTORS
47
    #define EXC_BASE_ADDRESS    0xffff0000
47
    #define EXC_BASE_ADDRESS    0xffff0000
48
#else
48
#else
Line 82... Line 82...
82
 * before switching to thread's kernel stack.
82
 * before switching to thread's kernel stack.
83
 */
83
 */
84
extern uintptr_t exc_stack;
84
extern uintptr_t exc_stack;
85
 
85
 
86
 
86
 
87
/** Structure representing CPU state saved when an exception occurs. */
87
/** Struct representing CPU state saved when an exception occurs. */
88
typedef struct {
88
typedef struct {
89
    uint32_t spsr;
89
    uint32_t spsr;
90
    uint32_t sp;
90
    uint32_t sp;
91
    uint32_t lr;
91
    uint32_t lr;
92
 
92
 
Line 131... Line 131...
131
{
131
{
132
    return istate->pc;
132
    return istate->pc;
133
}
133
}
134
 
134
 
135
 
135
 
136
extern void setup_exception_stacks(void);
-
 
137
extern void install_exception_handlers(void);
136
extern void install_exception_handlers(void);
138
extern void exception_init(void);
137
extern void exception_init(void);
139
extern void print_istate(istate_t *istate);
138
extern void print_istate(istate_t *istate);
140
 
139
 
141
 
140