Changeset View
Changeset View
Standalone View
Standalone View
lib/libc/i386/SYS.h
- This file was copied to lib/libsys/arm/SYS.h, lib/libsys/i386/SYS.h, lib/libsys/powerpc/SYS.h, lib/libsys/sparc64/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 SYSCALL(name) ENTRY(__sys_##name); \ | #define KERNCALL int $0x80 | ||||
#if defined(PIC) && !defined(STATIC) | |||||
#define SYSCALL_BODY(name) \ | |||||
pushl $0; pushl $0; \ | |||||
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); \ | |||||
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) | END(__sys_##name) | ||||
#define RSYSCALL(name) SYSCALL(name); ret; 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) | ||||
/* gas messes up offset -- although we don't currently need it, do for BCS */ | |||||
#define LCALL(x,y) .byte 0x9a ; .long y; .word x | |||||
#define KERNCALL int $0x80 |