SYS.h revision 1.9
11.9Srearnsha/* $NetBSD: SYS.h,v 1.9 2004/08/21 11:18:40 rearnsha Exp $ */ 21.1Sbjh21 31.1Sbjh21/*- 41.1Sbjh21 * Copyright (c) 1990 The Regents of the University of California. 51.1Sbjh21 * All rights reserved. 61.1Sbjh21 * 71.1Sbjh21 * This code is derived from software contributed to Berkeley by 81.1Sbjh21 * William Jolitz. 91.1Sbjh21 * 101.1Sbjh21 * Redistribution and use in source and binary forms, with or without 111.1Sbjh21 * modification, are permitted provided that the following conditions 121.1Sbjh21 * are met: 131.1Sbjh21 * 1. Redistributions of source code must retain the above copyright 141.1Sbjh21 * notice, this list of conditions and the following disclaimer. 151.1Sbjh21 * 2. Redistributions in binary form must reproduce the above copyright 161.1Sbjh21 * notice, this list of conditions and the following disclaimer in the 171.1Sbjh21 * documentation and/or other materials provided with the distribution. 181.8Sagc * 3. Neither the name of the University nor the names of its contributors 191.1Sbjh21 * may be used to endorse or promote products derived from this software 201.1Sbjh21 * without specific prior written permission. 211.1Sbjh21 * 221.1Sbjh21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 231.1Sbjh21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 241.1Sbjh21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 251.1Sbjh21 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 261.1Sbjh21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 271.1Sbjh21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 281.1Sbjh21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 291.1Sbjh21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 301.1Sbjh21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 311.1Sbjh21 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 321.1Sbjh21 * SUCH DAMAGE. 331.1Sbjh21 * 341.1Sbjh21 * from: @(#)SYS.h 5.5 (Berkeley) 5/7/91 351.1Sbjh21 */ 361.1Sbjh21 371.1Sbjh21#include <machine/asm.h> 381.1Sbjh21#include <sys/syscall.h> 391.4Sbjh21#include <arm/swi.h> 401.1Sbjh21 411.6Swiz#ifdef __STDC__ 421.4Sbjh21#define SYSTRAP(x) swi SWI_OS_NETBSD | SYS_ ## x 431.6Swiz#else 441.6Swiz#define SYSTRAP(x) swi SWI_OS_NETBSD | SYS_/**/x 451.6Swiz#endif 461.1Sbjh21 471.2Smatt#ifdef __ELF__ 481.2Smatt#define CERROR _C_LABEL(__cerror) 491.2Smatt#define CURBRK _C_LABEL(__curbrk) 501.2Smatt#else 511.2Smatt#define CERROR _ASM_LABEL(cerror) 521.2Smatt#define CURBRK _ASM_LABEL(curbrk) 531.2Smatt#endif 541.2Smatt 551.1Sbjh21#define _SYSCALL_NOERROR(x,y) \ 561.1Sbjh21 ENTRY(x); \ 571.1Sbjh21 SYSTRAP(y) 581.1Sbjh21 591.1Sbjh21#define _SYSCALL(x, y) \ 601.1Sbjh21 _SYSCALL_NOERROR(x,y); \ 611.2Smatt bcs PIC_SYM(CERROR, PLT) 621.1Sbjh21 631.1Sbjh21#define SYSCALL_NOERROR(x) \ 641.1Sbjh21 _SYSCALL_NOERROR(x,x) 651.1Sbjh21 661.1Sbjh21#define SYSCALL(x) \ 671.1Sbjh21 _SYSCALL(x,x) 681.1Sbjh21 691.1Sbjh21 701.1Sbjh21#define PSEUDO_NOERROR(x,y) \ 711.1Sbjh21 _SYSCALL_NOERROR(x,y); \ 721.9Srearnsha RET 731.1Sbjh21 741.1Sbjh21#define PSEUDO(x,y) \ 751.1Sbjh21 _SYSCALL(x,y); \ 761.9Srearnsha RET 771.1Sbjh21 781.1Sbjh21 791.1Sbjh21#define RSYSCALL_NOERROR(x) \ 801.1Sbjh21 PSEUDO_NOERROR(x,x) 811.1Sbjh21 821.1Sbjh21#define RSYSCALL(x) \ 831.1Sbjh21 PSEUDO(x,x) 841.3Sthorpej 851.3Sthorpej#ifdef WEAK_ALIAS 861.3Sthorpej#define WSYSCALL(weak,strong) \ 871.3Sthorpej WEAK_ALIAS(weak,strong); \ 881.3Sthorpej PSEUDO(strong,weak) 891.3Sthorpej#else 901.3Sthorpej#define WSYSCALL(weak,strong) \ 911.3Sthorpej PSEUDO(weak,weak) 921.3Sthorpej#endif 931.1Sbjh21 941.2Smatt .globl CERROR 95