Changeset View
Changeset View
Standalone View
Standalone View
lib/libc/amd64/SYS.h
- This file was copied to lib/libsys/amd64/SYS.h.
Show All 32 Lines | |||||
* | * | ||||
* @(#)SYS.h 5.5 (Berkeley) 5/7/91 | * @(#)SYS.h 5.5 (Berkeley) 5/7/91 | ||||
* $FreeBSD$ | * $FreeBSD$ | ||||
*/ | */ | ||||
#include <sys/syscall.h> | #include <sys/syscall.h> | ||||
#include <machine/asm.h> | #include <machine/asm.h> | ||||
#define KERNCALL movq %rcx, %r10; syscall | |||||
#if defined(PIC) && !defined(STATIC) | |||||
#define SYSCALL_BODY(name) \ | |||||
mov $0,%rdi; mov $0,%rsi; \ | |||||
mov $SYS_abort2,%eax; KERNCALL; \ | |||||
int $3; ret | |||||
#else | |||||
#define SYSCALL_BODY(name) \ | |||||
mov $SYS_##name,%eax; KERNCALL; \ | |||||
jb HIDENAME(cerror); ret | |||||
#endif | |||||
#define RSYSCALL(name) ENTRY(__sys_##name); \ | #define RSYSCALL(name) ENTRY(__sys_##name); \ | ||||
WEAK_REFERENCE(__sys_##name, name); \ | WEAK_REFERENCE(__sys_##name, name); \ | ||||
WEAK_REFERENCE(__sys_##name, _##name); \ | WEAK_REFERENCE(__sys_##name, _##name); \ | ||||
mov $SYS_##name,%eax; KERNCALL; \ | SYSCALL_BODY(name); \ | ||||
jb HIDENAME(cerror); ret; \ | |||||
END(__sys_##name) | END(__sys_##name) | ||||
#define PSEUDO(name) ENTRY(__sys_##name); \ | #define PSEUDO(name) ENTRY(__sys_##name); \ | ||||
WEAK_REFERENCE(__sys_##name, _##name); \ | WEAK_REFERENCE(__sys_##name, _##name); \ | ||||
mov $SYS_##name,%eax; KERNCALL; \ | SYSCALL_BODY(name); \ | ||||
jb HIDENAME(cerror); ret; \ | |||||
END(__sys_##name) | END(__sys_##name) | ||||
#define KERNCALL movq %rcx, %r10; syscall |