Subversion Repositories HelenOS

Rev

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

Rev 2787 Rev 3114
Line 34... Line 34...
34
 
34
 
35
#ifndef KERN_ppc32_EXCEPTION_H_
35
#ifndef KERN_ppc32_EXCEPTION_H_
36
#define KERN_ppc32_EXCEPTION_H_
36
#define KERN_ppc32_EXCEPTION_H_
37
 
37
 
38
#include <arch/types.h>
38
#include <arch/types.h>
-
 
39
#include <arch/regutils.h>
39
 
40
 
40
typedef struct {
41
typedef struct {
41
    uint32_t r0;
42
    uint32_t r0;
42
    uint32_t r2;
43
    uint32_t r2;
43
    uint32_t r3;
44
    uint32_t r3;
Line 80... Line 81...
80
 
81
 
81
static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr)
82
static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr)
82
{
83
{
83
    istate->pc = retaddr;
84
    istate->pc = retaddr;
84
}
85
}
-
 
86
 
85
/** Return true if exception happened while in userspace */
87
/** Return true if exception happened while in userspace */
86
#include <panic.h>
-
 
87
static inline int istate_from_uspace(istate_t *istate)
88
static inline int istate_from_uspace(istate_t *istate)
88
{
89
{
89
    panic("istate_from_uspace not yet implemented");
90
    /* true if privilege level PR (copied from MSR) == 1 */
90
    return 0;
91
    return (istate->srr1 & MSR_PR) != 0;
91
}
92
}
-
 
93
 
92
static inline unative_t istate_get_pc(istate_t *istate)
94
static inline unative_t istate_get_pc(istate_t *istate)
93
{
95
{
94
    return istate->pc;
96
    return istate->pc;
95
}
97
}
96
 
98