blob: ef1886b9e0df86a76b39f927e66c04cc6984955c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/**
lang: asm
compiler: gnu
*/
.globl __KernelCallDispatch
.text
/* Really simple function, takes our va-list,
and brings it to the trap handler in the Kernel. */
#ifdef __DDK_AMD64__
/* args rcx, rdx, r8, r9 */
__KernelCallDispatch:
int $0x33
ret
#elif defined(__DDK_POWER64__)
/* args r8, r9, r10, r11 */
__KernelCallDispatch:
/* There is no specific interrupt request id for a system call in POWER. */
sc
blr
#elif defined(__DDK_ARM64__)
/* args x0, x8, x9, x10, x11 is kept to tell that this is a Kernel call */
__KernelCallDispatch:
/* There is no specific interrupt request id for a system call in ARM64 as well. */
mov x11, #0x33
svc #0
#endif
|