Rev 1121 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1121 | Rev 1212 | ||
---|---|---|---|
Line 241... | Line 241... | ||
241 | # Switch back to remain consistent |
241 | # Switch back to remain consistent |
242 | swapgs |
242 | swapgs |
243 | 243 | ||
244 | sti |
244 | sti |
245 | movq %r9, %rcx # Exchange last parameter as a third |
245 | movq %r9, %rcx # Exchange last parameter as a third |
- | 246 | ||
- | 247 | cmp $2, %r8 # Is this SYS_INT_CONTROL |
|
- | 248 | je sys_int_ctrl |
|
- | 249 | ||
246 | call syscall_handler |
250 | call syscall_handler |
- | 251 | sys_end: |
|
247 | cli # We will be touching stack pointer |
252 | cli # We will be touching stack pointer |
248 | 253 | ||
249 | popq %r11 |
254 | popq %r11 |
250 | popq %rcx |
255 | popq %rcx |
251 | movq 0(%rsp), %rsp |
256 | movq 0(%rsp), %rsp |
252 | sysretq |
257 | sysretq |
- | 258 | ||
- | 259 | sys_int_ctrl: |
|
- | 260 | mov %rsp, %rsi # Pointer to flags |
|
- | 261 | call ddi_int_control |
|
- | 262 | jmp sys_end |
|
- | 263 | ||
253 | 264 | ||
254 | .data |
265 | .data |
255 | .global interrupt_handler_size |
266 | .global interrupt_handler_size |
256 | 267 | ||
257 | interrupt_handler_size: .quad (h_end-h_start)/IDT_ITEMS |
268 | interrupt_handler_size: .quad (h_end-h_start)/IDT_ITEMS |