Rev 341 | Rev 483 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 341 | Rev 413 | ||
---|---|---|---|
Line 50... | Line 50... | ||
50 | 50 | ||
51 | printf("PC: %X(%s) RA: %X(%s)\n",pstate->epc,pcsymbol, |
51 | printf("PC: %X(%s) RA: %X(%s)\n",pstate->epc,pcsymbol, |
52 | pstate->ra,rasymbol); |
52 | pstate->ra,rasymbol); |
53 | } |
53 | } |
54 | 54 | ||
- | 55 | /** Disable interrupts. |
|
- | 56 | * |
|
- | 57 | * @return Old interrupt priority level. |
|
- | 58 | */ |
|
55 | pri_t cpu_priority_high(void) |
59 | ipl_t interrupts_disable(void) |
56 | { |
60 | { |
57 | pri_t pri = (pri_t) cp0_status_read(); |
61 | ipl_t ipl = (ipl_t) cp0_status_read(); |
58 | cp0_status_write(pri & ~cp0_status_ie_enabled_bit); |
62 | cp0_status_write(ipl & ~cp0_status_ie_enabled_bit); |
59 | return pri; |
63 | return ipl; |
60 | } |
64 | } |
61 | 65 | ||
- | 66 | /** Enable interrupts. |
|
- | 67 | * |
|
- | 68 | * @return Old interrupt priority level. |
|
- | 69 | */ |
|
62 | pri_t cpu_priority_low(void) |
70 | ipl_t interrupts_enable(void) |
63 | { |
71 | { |
64 | pri_t pri = (pri_t) cp0_status_read(); |
72 | ipl_t ipl = (ipl_t) cp0_status_read(); |
65 | cp0_status_write(pri | cp0_status_ie_enabled_bit); |
73 | cp0_status_write(ipl | cp0_status_ie_enabled_bit); |
66 | return pri; |
74 | return ipl; |
67 | } |
75 | } |
68 | 76 | ||
- | 77 | /** Restore interrupt priority level. |
|
- | 78 | * |
|
- | 79 | * @param ipl Saved interrupt priority level. |
|
- | 80 | */ |
|
69 | void cpu_priority_restore(pri_t pri) |
81 | void interrupts_restore(ipl_t ipl) |
70 | { |
82 | { |
71 | cp0_status_write(cp0_status_read() | (pri & cp0_status_ie_enabled_bit)); |
83 | cp0_status_write(cp0_status_read() | (ipl & cp0_status_ie_enabled_bit)); |
72 | } |
84 | } |
73 | 85 | ||
- | 86 | /** Read interrupt priority level. |
|
- | 87 | * |
|
- | 88 | * @return Current interrupt priority level. |
|
- | 89 | */ |
|
74 | pri_t cpu_priority_read(void) |
90 | ipl_t interrupts_read(void) |
75 | { |
91 | { |
76 | return cp0_status_read(); |
92 | return cp0_status_read(); |
77 | } |
93 | } |
78 | 94 | ||
79 | void interrupt(struct exception_regdump *pstate) |
95 | void interrupt(struct exception_regdump *pstate) |