192991Sobrien/*	$NetBSD: SYS.h,v 1.5 1997/05/02 18:15:15 kleink Exp $ */
267117Sdfr
367117Sdfr/*
467117Sdfr * Copyright (c) 1994, 1995 Carnegie-Mellon University.
567117Sdfr * All rights reserved.
667117Sdfr *
767117Sdfr * Author: Chris G. Demetriou
867117Sdfr *
967117Sdfr * Permission to use, copy, modify and distribute this software and
1067117Sdfr * its documentation is hereby granted, provided that both the copyright
1167117Sdfr * notice and this permission notice appear in all copies of the
1267117Sdfr * software, derivative works or modified versions, and any portions
1367117Sdfr * thereof, and that both notices appear in supporting documentation.
1467117Sdfr *
1567117Sdfr * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
1667117Sdfr * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
1767117Sdfr * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
1867117Sdfr *
1967117Sdfr * Carnegie Mellon requests users of this software to return to
2067117Sdfr *
2167117Sdfr *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
2267117Sdfr *  School of Computer Science
2367117Sdfr *  Carnegie Mellon University
2467117Sdfr *  Pittsburgh PA 15213-3890
2567117Sdfr *
2667117Sdfr * any improvements or extensions that they make and grant Carnegie the
2767117Sdfr * rights to redistribute these changes.
2892991Sobrien *
2992991Sobrien * $FreeBSD$
3067117Sdfr */
3167117Sdfr
3267117Sdfr#include <machine/asm.h>
3367117Sdfr#include <sys/syscall.h>
3467117Sdfr
3567117Sdfr#define	CALLSYS_ERROR(name)					\
3667117Sdfr	CALLSYS_NOERROR(name);					\
3767117Sdfr	cmp.ne	p6,p0=r0,r10;					\
3867117Sdfr(p6)	br.cond.sptk.few .cerror
3967117Sdfr
4067117Sdfr
4167117Sdfr#define	SYSCALL(name)						\
4271770SdeischenENTRY(__sys_ ## name,0);		/* XXX # of args? */	\
4371770Sdeischen	WEAK_ALIAS(name, __sys_ ## name);			\
4471770Sdeischen	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
4567117Sdfr	CALLSYS_ERROR(name)
4667117Sdfr
4767117Sdfr#define	SYSCALL_NOERROR(name)					\
4871770SdeischenENTRY(__sys_ ## name,0);		/* XXX # of args? */	\
4971770Sdeischen	WEAK_ALIAS(name, __sys_ ## name);			\
5071770Sdeischen	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
5167117Sdfr	CALLSYS_NOERROR(name)
5267117Sdfr
5367117Sdfr#define RSYSCALL(name)						\
5467117Sdfr	SYSCALL(name);						\
5567117Sdfr	br.ret.sptk.few rp;					\
5671770SdeischenEND(__sys_ ## name)
5767117Sdfr
5871770Sdeischen#define	PSEUDO(name)						\
5971770SdeischenENTRY(__sys_ ## name,0);	/* XXX # of args? */		\
6071770Sdeischen	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
6167117Sdfr	CALLSYS_ERROR(name);					\
6267117Sdfr	br.ret.sptk.few rp;					\
6371770SdeischenEND(__sys_ ## name);
64