1 /*- 2 * Copyright (c) 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * the Systems Programming Group of the University of Utah Computer 7 * Science Department. 8 * 9 * %sccs.include.redist.c% 10 * 11 * @(#)SYS.h 8.1 (Berkeley) 06/04/93 12 */ 13 14 #include <sys/syscall.h> 15 16 #ifdef __STDC__ 17 #ifdef PROF 18 #if __GNUC__ >= 2 19 #define ENTRY(x) .globl _ ## x; .even; _ ## x:; .data; PROF ## x:; \ 20 .long 0; .text; link a6,\#0; lea PROF ## x,a0; \ 21 jbsr mcount; unlk a6 22 #else 23 #define ENTRY(x) .globl _ ## x; .even; _ ## x:; .data; PROF ## x:; \ 24 .long 0; .text; link a6,#0; lea PROF ## x,a0; \ 25 jbsr mcount; unlk a6 26 #endif 27 #else 28 #define ENTRY(x) .globl _ ## x; .even; _ ## x: 29 #endif 30 #if __GNUC__ >= 2 31 #define SYSTRAP(x) movl \#SYS_ ## x,d0; trap \#0 32 #else 33 #define SYSTRAP(x) movl #SYS_ ## x,d0; trap #0 34 #endif 35 #else 36 #ifdef PROF 37 #define ENTRY(x) .globl _/**/x; .even; _/**/x:; .data; PROF/**/x:; \ 38 .long 0; .text; link a6,#0; lea PROF/**/x,a0; \ 39 jbsr mcount; unlk a6 40 #else 41 #define ENTRY(x) .globl _/**/x; .even; _/**/x: 42 #endif 43 #define SYSTRAP(x) movl #SYS_/**/x,d0; trap #0 44 #endif 45 46 #define SYSCALL(x) .even; err: jmp cerror; ENTRY(x); SYSTRAP(x); jcs err 47 #define RSYSCALL(x) SYSCALL(x); rts 48 #define PSEUDO(x,y) ENTRY(x); SYSTRAP(y); rts 49 50 #define ASMSTR .asciz 51 52 .globl cerror 53