xref: /original-bsd/lib/libc/hp300/SYS.h (revision c3e32dec)
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