dispatch a syscall (int 0x80). The syscall number is in rax; args in
rdi, rsi, rdx. The return value is written back into the trap frameβs rax
so iretq returns it to user space.
irq_restore only re-enable irq if was_enabled==true. it will not disable irq
regardless the was_enabled value. This function should only be called to
restore irq based on previous irq_save();