Rev 216 | Rev 224 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 216 | Rev 219 | ||
---|---|---|---|
Line 137... | Line 137... | ||
137 | * |
137 | * |
138 | * @return Value read. |
138 | * @return Value read. |
139 | */ |
139 | */ |
140 | static inline __u32 read_cr2(void) { __u64 v; __asm__ volatile ("movq %%cr2,%0" : "=r" (v)); return v; } |
140 | static inline __u32 read_cr2(void) { __u64 v; __asm__ volatile ("movq %%cr2,%0" : "=r" (v)); return v; } |
141 | 141 | ||
- | 142 | /** Write CR3 |
|
- | 143 | * |
|
- | 144 | * Write value to CR3. |
|
- | 145 | * |
|
- | 146 | * @param v Value to be written. |
|
- | 147 | */ |
|
- | 148 | static inline void write_cr3(__u64 v) { __asm__ volatile ("movq %0,%%cr3\n" : : "r" (v)); } |
|
- | 149 | ||
- | 150 | /** Read CR3 |
|
- | 151 | * |
|
- | 152 | * Return value in CR3 |
|
- | 153 | * |
|
- | 154 | * @return Value read. |
|
- | 155 | */ |
|
- | 156 | static inline __u32 read_cr3(void) { __u64 v; __asm__ volatile ("movq %%cr3,%0" : "=r" (v)); return v; } |
|
- | 157 | ||
- | 158 | /** Set priority level low |
|
- | 159 | * |
|
- | 160 | * Enable interrupts and return previous |
|
- | 161 | * value of EFLAGS. |
|
- | 162 | */ |
|
- | 163 | ||
- | 164 | ||
142 | 165 | ||
143 | extern size_t interrupt_handler_size; |
166 | extern size_t interrupt_handler_size; |
144 | extern void interrupt_handlers(void); |
167 | extern void interrupt_handlers(void); |
145 | 168 | ||
146 | #endif |
169 | #endif |