Rev 1212 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1212 | Rev 1278 | ||
|---|---|---|---|
| Line 242... | Line 242... | ||
| 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 | 246 | ||
| 247 | cmp $2, %r8 # Is this SYS_INT_CONTROL |
- | |
| 248 | je sys_int_ctrl |
- | |
| 249 | - | ||
| 250 | call syscall_handler |
247 | call syscall_handler |
| 251 | sys_end: |
- | |
| 252 | cli # We will be touching stack pointer |
248 | cli # We will be touching stack pointer |
| 253 | 249 | ||
| 254 | popq %r11 |
250 | popq %r11 |
| 255 | popq %rcx |
251 | popq %rcx |
| 256 | movq 0(%rsp), %rsp |
252 | movq 0(%rsp), %rsp |
| 257 | sysretq |
253 | sysretq |
| 258 | 254 | ||
| 259 | sys_int_ctrl: |
- | |
| 260 | mov %rsp, %rsi # Pointer to flags |
- | |
| 261 | call ddi_int_control |
- | |
| 262 | jmp sys_end |
- | |
| 263 | - | ||
| 264 | 255 | ||
| 265 | .data |
256 | .data |
| 266 | .global interrupt_handler_size |
257 | .global interrupt_handler_size |
| 267 | 258 | ||
| 268 | interrupt_handler_size: .quad (h_end-h_start)/IDT_ITEMS |
259 | interrupt_handler_size: .quad (h_end-h_start)/IDT_ITEMS |