diff options
Diffstat (limited to 'libgloss/i386/cygmon-salib.c')
-rw-r--r-- | libgloss/i386/cygmon-salib.c | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/libgloss/i386/cygmon-salib.c b/libgloss/i386/cygmon-salib.c deleted file mode 100644 index e0d5e72..0000000 --- a/libgloss/i386/cygmon-salib.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Standard x86 syscalls for user programs running under Cygmon - * - * Copyright (c) 1998 Cygnus Support - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include <fcntl.h> -#include <stdlib.h> -#include "cygmon-syscall.h" -#include <sys/time.h> - -extern int errno; - -_syscall3(int,write,int,i,char *,c,int,len); - -_syscall3(int,read,int,i,char *,c,int,len); - -_syscall2(int,kill,int,pid,int,signal); - -_syscall2(void,__install_signal_handler,int,arg,void *,handler); -_syscall1(char **,__get_program_arguments,int *,argc); - -_syscall1(void,__sys_exit,int,exitcode); -_syscall1(void,putTtyChar,int,character); -_syscall1(time_t,time,time_t *,ptr); -_syscall2(int, gettimeofday, struct timeval *,time, struct timezone *,z); -_syscall3(int, __open, const char *, filename, int, mode, int, filemode); -_syscall4(void, profil, unsigned short *, buff, unsigned int, bufsiz, - unsigned int, offset, unsigned int, scale); -_syscall1(int, close, int, fd); - -/* Bleah. */ -int -open (const char *filename, int mode, ...) -{ - return __open (filename, mode, 0644); -} - -/* Ultra-super cheezy. */ -int -isatty (int i) -{ - return i<3; -} - -char * -sbrk (int amt) -{ - extern char _end; - static char *ptr = 0; - char *res; - if (ptr == 0) - ptr = &_end; - if (amt == 0) - return (char *)ptr; - - if (((long)ptr) % 8) - ptr = ptr + (8 - (((long)(ptr)) % 8)); - res = ptr; - ptr += amt; - return (char *)res; -} - -void -_exit(int i) -{ - while(1) { - __sys_exit (i); - asm(" int $3"); - } -} - -int -fstat(int des, struct stat *buf) -{ - return -1; -} - -int -lseek(int des,unsigned long offset, int whence) -{ - return -1; -} - -int -getpid () -{ - return -1; -} - -/* Simple replacement for the clock() syscall. */ -clock_t -clock () -{ - struct timeval t; - - gettimeofday (&t, 0); - return t.tv_sec * 1000 + (t.tv_usec / 1000); -} - -#ifndef COFF -typedef void (*ctp)(); -void -__do_global_ctors () -{ - extern int __CTOR_LIST__; - int *c = &__CTOR_LIST__; - c++; - while (*c) - { - ctp d = (ctp)*c; - (d)(); - c++; - } -} - -void -__do_global_dtors () -{ - extern int __DTOR_LIST__; - int *c = &__DTOR_LIST__; - int *cp = c; - c++; - while (*c) - { - c++; - } - c--; - while (c > cp) - { - ctp d = (ctp)*c; - (*d)(); - c--; - } -} -#endif - -void -profil_write (int type, char *buffer, int len) -{ - static int des = -1; - - if (des < 0) - { - des = open ("gmon.out", O_WRONLY | O_CREAT | O_TRUNC, 0644); - } - if (len == 0) - { - close (des); - } - else - { - write (des, buffer, len); - } -} |