diff options
Diffstat (limited to 'mit-pthreads/machdep/syscall-i386-sco-3.2v5.S')
-rw-r--r-- | mit-pthreads/machdep/syscall-i386-sco-3.2v5.S | 442 |
1 files changed, 0 insertions, 442 deletions
diff --git a/mit-pthreads/machdep/syscall-i386-sco-3.2v5.S b/mit-pthreads/machdep/syscall-i386-sco-3.2v5.S deleted file mode 100644 index 0a60dcdd866..00000000000 --- a/mit-pthreads/machdep/syscall-i386-sco-3.2v5.S +++ /dev/null @@ -1,442 +0,0 @@ -/* ==== syscall.S ============================================================ - * Copyright (c) 1990 The Regents of the University of California. - * Copyright (c) 1995 Chris Provenzano, proven@mit.edu - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * William Jolitz. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Description : Machine dependent syscalls for i386/i486/i586 - * - */ - -#ifndef lint - .text - .asciz "syscall-i386-sco-3.2v5.S,v 1.2 1995/05/26 07:44:29 proven Exp"; -#endif - -#if defined(SYSLIBC_SCCS) && !defined(lint) - .asciz "@(#)syscall.s 5.1 (Berkeley) 4/23/90" -#endif /* SYSLIBC_SCCS and not lint */ - -#include <sys/errno.h> -#include <sys/syscall.h> - -#ifdef _SCO_ELF - -#define NAME(X) machdep_sys_##X -#define GETADDR(X) \ - call 1f; \ -1: \ - popl %ebx; \ - addl $NAME(X)+[.-1b], %ebx - -#define END(X) 1: ; .type NAME(X),@function ; .size NAME(X),1b - NAME(X) - -#else - -#define NAME(X) _machdep_sys_##X -#define END(X) - -#endif - -#ifdef __STDC__ - -#define SYSCALL(x) \ - .globl NAME(x); \ - \ -NAME(x): \ - movl $(SYS_##x##), %eax; \ - lcall $7, $0; \ - jae 1f; \ - cmp $(ERESTART), %eax; \ - je NAME(x); \ - neg %eax; \ -1: \ - ret; \ -\ - END(x) - - -#else - -#define SYSCALL(x) \ - .globl NAME(x); \ - \ -NAME(x): \ - \ - movl $(SYS_/**/x), %eax; \ - lcall $7, $0; \ - jb 1b; \ - ret; \ - END(x) - -#endif - - -/* - * Initial asm stuff for all functions. - */ - .text - .align 2 - -/* ========================================================================== - * machdep_sys_fork() - */ - .globl NAME(fork); - -NAME(fork):; - movl $(SYS_fork), %eax - lcall $7, $0 - jae 1f - neg %eax - ret -1: - test %edx, %edx - je 2f - xor %eax, %eax -2: - ret; - END(fork) - -/* ========================================================================== - * NAME(getdents) - */ - .globl NAME(getdents); - -NAME(getdents): - movl $(SYS_getdents), %eax; - lcall $7, $0 - jae 1f - neg %eax -1: - ret; - END(getdents) - -/* ========================================================================== - * NAME(fxstat) - */ - .globl NAME(fxstat); - -NAME(fxstat):; - movl $(SYS_fxstat), %eax; - lcall $7, $0 - jae 1f - neg %eax; - ret; -1: - xor %eax, %eax; - ret; - END(fxstat) - -/* ========================================================================== - * NAME(signal) - */ - .globl NAME(signal); - -NAME(signal):; - movl 4(%esp), %ecx - movl $(SYS_signal),%eax -#if 0 - call .L1 -.L1: - popl %edx - addl $(NAME(sigreturn)+[.-.L1]), %edx -#else - movl $NAME(sigreturn), %edx -#endif - lcall $7,$0 - jae 1f -# movl %eax, 12(%esp) - neg %eax - ret -1: -# xor %eax, %eax -# movl %eax, 12(%esp) - ret - END(signal) - -/* ========================================================================== - * NAME(sigaction) - */ - .globl NAME(sigaction); - -NAME(sigaction): - movl $(SYS_sigaction),%eax -#if 0 - call .L2 -.L2: - popl %edx - addl $(NAME(sigreturn)+[.-.L2]), %edx -#else - movl $NAME(sigreturn), %edx -#endif - lcall $7, $0 - jb 1f - xor %eax, %eax - ret -1: - neg %eax - ret - END(sigaction) - - .globl NAME(sigreturn) -NAME(sigreturn): - addl $4,%esp - lcall $0xf, $0 - nop - nop - END(sigreturn) - -/* ========================================================================== - * NAME(waitpid) - */ - .globl NAME(waitpid); - -NAME(waitpid): - .byte 0x9c - popl %eax - orl $0x8c4, %eax - pushl %eax - .byte 0x9d - movl $(SYS_wait), %eax - lcall $7, $0 - jae 2f - cmpl $(ERESTART), %al - je NAME(waitpid) - neg %eax -3: - ret -2: - movl 8(%esp), %ecx - test %ecx,%ecx - je 3b - mov %edx, (%ecx) - ret - END(waitpid) - -/* ========================================================================== - * NAME(uname) - */ - .globl NAME(uname); - -NAME(uname): - pushl $0 - pushl $0 - pushl 12(%esp) - subl $4, %esp - movl $(SYS_utssys), %eax - .byte 0x9a; .long 0; .word 7; - jb 1f - addl $16, %esp - ret -1: - addl $16, %esp - neg %eax - ret - END(uname) - - -/* ========================================================================== - * machdep_sys_ftruncate - */ - -SYSCALL(ftruncate) - -/* ========================================================================== - * machdep_sys_ftime - */ - -SYSCALL(ftime) - -/* ========================================================================== - * machdep_sys_gettimeofday() - */ - -SYSCALL(gettimeofday) - -/* ========================================================================== - * machdep_sys_kill() - */ - -SYSCALL(kill) - -/* ========================================================================== - * pthread_sys_setitimer - */ - .globl NAME(setitimer); - -NAME(setitimer):; - movl $(SYS_setitimer), %eax; - lcall $7, $0 - jae 1f - neg %eax - ret -1: - xor %eax, %eax - ret; - END(setitimer) - -/* ========================================================================== - * pthread_sys_sysconf - */ - .globl NAME(sysconf); - -NAME(sysconf):; - movl $(SYS_sysconf), %eax; - lcall $7, $0 - jae 1f - neg %eax -1: - ret; - END(sysconf) - -/* ========================================================================== - * pthread_sys_sysi86() - */ - .globl NAME(sysi86); - -NAME(sysi86):; - movl $(SYS_sysi86), %eax - lcall $7, $0 - jae 1f - neg %eax -1: - ret; - END(sysi86) - - -/* ========================================================================== - * machdep_sys_brk() - */ - .globl NAME(brk); - -NAME(brk):; - movl $(SYS_break), %eax - lcall $7, $0 - jae 1f - neg %eax - ret -1: - xor %eax, %eax - ret; - END(brk) - -/* ========================================================================== - * machdep_sys_pipe() - */ - .globl NAME(pipe); - -NAME(pipe):; - movl $(SYS_pipe), %eax; - lcall $7, $0 - jae 1f - neg %eax - ret -1: - movl 4(%esp), %ecx - movl %eax, (%ecx) - movl %edx, 4(%ecx) - xor %eax, %eax - ret; - END(brk) - -/* ========================================================================== - * machdep_sys_fcntl() - */ - .globl NAME(fcntl); - -NAME(fcntl):; - movl $(SYS_fcntl), %eax - lcall $7, $0 - jae 1f - neg %eax -1: - ret - END(fcntl) - - -/* ========================================================================== - * machdep_sys_select() - */ - .globl NAME(select); - -NAME(select):; - movl $(SYS_select), %eax - lcall $7, $0 - jae 1f - cmp $(ERESTART), %eax - jne 2f - movl $(EINTR), %eax -2: - neg %eax -1: - ret - END(select) - - -/* ========================================================================== - * setjmp() - */ - .globl setjmp; - -setjmp: - movl 4(%esp),%eax - movl %ebx,(%eax) - movl %esi,4(%eax) - movl %edi,8(%eax) - movl %ebp,12(%eax) - popl %edx - movl %esp,16(%eax) - movl %edx,20(%eax) - subl %eax,%eax - jmp *%edx -1: ; .type setjmp,@function ; .size setjmp,1b - setjmp - -/* ========================================================================== - * longjmp() - */ - .globl longjmp; - -longjmp: - movl 4(%esp),%edx - movl 8(%esp),%eax - movl 0(%edx),%ebx - movl 4(%edx),%esi - movl 8(%edx),%edi - movl 12(%edx),%ebp - movl 16(%edx),%esp - test %eax,%eax - jne 1f - inc %eax -1: - jmp *20(%edx) -1: ; .type longjmp,@function ; .size longjmp,1b - longjmp |