16#ifndef ZEPHYR_INCLUDE_ARCH_X86_INTEL64_SYSCALL_H_ 
   17#define ZEPHYR_INCLUDE_ARCH_X86_INTEL64_SYSCALL_H_ 
   19#ifdef CONFIG_USERSPACE 
   55        register uintptr_t rax __asm__(
"%rax") = call_id;
 
   56        register uintptr_t rdi __asm__(
"%rdi") = arg1;
 
   57        register uintptr_t rsi __asm__(
"%rsi") = arg2;
 
   58        register uintptr_t rdx __asm__(
"%rdx") = arg3;
 
   59        register uintptr_t r10 __asm__(
"%r10") = arg4; 
 
   60        register uintptr_t r8 __asm__(
"%r8") = arg5;
 
   61        register uintptr_t r9 __asm__(
"%r9") = arg6;
 
   63        __asm__ 
volatile(
"syscall\n\t" 
   65                         : 
"r" (rax), 
"r" (rdi), 
"r" (rsi), 
"r" (rdx),
 
   66                           "r" (r10), 
"r" (r8), 
"r" (r9)
 
   67                         : 
"memory", 
"rcx", 
"r11");
 
 
   77        register uintptr_t rax __asm__(
"%rax") = call_id;
 
   78        register uintptr_t rdi __asm__(
"%rdi") = arg1;
 
   79        register uintptr_t rsi __asm__(
"%rsi") = arg2;
 
   80        register uintptr_t rdx __asm__(
"%rdx") = arg3;
 
   81        register uintptr_t r10 __asm__(
"%r10") = arg4; 
 
   82        register uintptr_t r8 __asm__(
"%r8") = arg5;
 
   84        __asm__ 
volatile(
"syscall\n\t" 
   86                         : 
"r" (rax), 
"r" (rdi), 
"r" (rsi), 
"r" (rdx),
 
   88                         : 
"memory", 
"rcx", 
"r11");
 
 
   97        register uintptr_t rax __asm__(
"%rax") = call_id;
 
   98        register uintptr_t rdi __asm__(
"%rdi") = arg1;
 
   99        register uintptr_t rsi __asm__(
"%rsi") = arg2;
 
  100        register uintptr_t rdx __asm__(
"%rdx") = arg3;
 
  101        register uintptr_t r10 __asm__(
"%r10") = arg4; 
 
  103        __asm__ 
volatile(
"syscall\n\t" 
  105                         : 
"r" (rax), 
"r" (rdi), 
"r" (rsi), 
"r" (rdx),
 
  107                         : 
"memory", 
"rcx", 
"r11");
 
 
  116        register uintptr_t rax __asm__(
"%rax") = call_id;
 
  117        register uintptr_t rdi __asm__(
"%rdi") = arg1;
 
  118        register uintptr_t rsi __asm__(
"%rsi") = arg2;
 
  119        register uintptr_t rdx __asm__(
"%rdx") = arg3;
 
  121        __asm__ 
volatile(
"syscall\n\t" 
  123                         : 
"r" (rax), 
"r" (rdi), 
"r" (rsi), 
"r" (rdx)
 
  124                         : 
"memory", 
"rcx", 
"r11");
 
 
  133        register uintptr_t rax __asm__(
"%rax") = call_id;
 
  134        register uintptr_t rdi __asm__(
"%rdi") = arg1;
 
  135        register uintptr_t rsi __asm__(
"%rsi") = arg2;
 
  137        __asm__ 
volatile(
"syscall\n\t" 
  139                         : 
"r" (rax), 
"r" (rdi), 
"r" (rsi)
 
  140                         : 
"memory", 
"rcx", 
"r11");
 
 
  148        register uintptr_t rax __asm__(
"%rax") = call_id;
 
  149        register uintptr_t rdi __asm__(
"%rdi") = arg1;
 
  151        __asm__ 
volatile(
"syscall\n\t" 
  153                         : 
"r" (rax), 
"r" (rdi)
 
  154                         : 
"memory", 
"rcx", 
"r11");
 
 
  161        register uintptr_t rax __asm__(
"%rax") = call_id;
 
  163        __asm__ 
volatile(
"syscall\n\t" 
  166                         : 
"memory", 
"rcx", 
"r11");
 
 
  175        __asm__ 
volatile (
"mov %%cs, %[cs_val]" : [cs_val] 
"=r" (cs));
 
  177        return (cs & 0x3) != 0;
 
 
static uintptr_t arch_syscall_invoke4(uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t call_id)
Definition syscall.h:89
static uintptr_t arch_syscall_invoke2(uintptr_t arg1, uintptr_t arg2, uintptr_t call_id)
Definition syscall.h:131
static uintptr_t arch_syscall_invoke1(uintptr_t arg1, uintptr_t call_id)
Definition syscall.h:149
static uintptr_t arch_syscall_invoke0(uintptr_t call_id)
Definition syscall.h:165
static bool arch_is_user_context(void)
Definition syscall.h:181
static uintptr_t arch_syscall_invoke5(uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t call_id)
Definition syscall.h:65
static uintptr_t arch_syscall_invoke3(uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t call_id)
Definition syscall.h:111
static uintptr_t arch_syscall_invoke6(uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t call_id)
Definition syscall.h:40
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:105