moved from ../osf1

This commit is contained in:
Brendan Kehoe 1995-03-10 01:51:02 +00:00
parent 864a3e4e29
commit 77072f48a5
24 changed files with 693 additions and 0 deletions

View File

@ -0,0 +1,44 @@
/* Copyright (C) 1993 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#ifndef _DIRSTREAM_H
#define _DIRSTREAM_H 1
#define __need_size_t
#include <stddef.h>
/* Directory stream type. */
typedef struct
{
int __fd; /* File descriptor. */
size_t __offset; /* Current offset into the block. */
size_t __size; /* Total valid data in the block. */
char *__data; /* Directory block. */
int __allocation; /* Space allocated for the block. */
int __data_len; /* Size of __data. */
long __dd_seek; /* OSF/1 magic cookie returned by getdents. */
void *dd_lock; /* Used by OSF/1 for inter-thread locking. */
} DIR;
#endif /* dirstream.h */

View File

@ -0,0 +1,2 @@
# OSF/1 has the canonical set of <sys/mman.h> system calls.
unix/mman

View File

@ -0,0 +1,3 @@
# Without -non_shared (via the compiler's -static flag), we'll end up
# with some unresolved symbols wrt exceptions.
LDFLAGS := $(LDFLAGS) -static

View File

@ -0,0 +1,53 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#ifndef SYS_brk
#define SYS_brk 17
#endif
#ifndef HAVE_GNU_LD
#define __end end
#endif
.data
.extern __end,8
.globl __curbrk
__curbrk:
.quad __end
.text
ENTRY(__brk)
! FIXME We do not check for asking for less than a page yet.
ldiq v0, SYS_brk
call_pal PAL_callsys
bne a3, error
/* Update __curbrk and exit cleanly. */
! ldgp gp, 0(t12)
stl a0, __curbrk
mov zero, v0
ret
/* What a horrible way to die. */
error: ldgp gp,0(gp)
jmp zero,syscall_error
.end __brk
weak_alias (__brk, brk)

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
SYSCALL__ (fork, 0)
cmovne a4, 0, v0
ret
weak_alias (__fork, fork)

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
SYSCALL__ (getdirentries, 4)
ret
weak_alias (__getdirentries, getdirentries)

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1993 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_killpg SYS_ult_killpg
SYSCALL (killpg, 2)
ret

View File

@ -0,0 +1,30 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
SYSCALL__ (pipe, 1)
/* Plop in the two descriptors. */
stl r0, 0(a0)
stl r1, 4(a0)
/* Go out with a clean status. */
mov zero, r0
ret
weak_alias (__pipe, pipe)

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_recv SYS_ult_recv
SYSCALL (recv, 4)
ret

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_send SYS_ult_send
SYSCALL (send, 4)
ret

View File

@ -0,0 +1,27 @@
/* Copyright (C) 1994, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_sigblock SYS_ult_sigblock
SYSCALL__ (sigblock, 1)
ret
weak_alias (__sigblock, sigblock)

View File

@ -0,0 +1,27 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_sigpause SYS_ult_sigpause
SYSCALL__ (sigpause, 1)
ret
weak_alias (__sigpause, sigpause)

View File

@ -0,0 +1,27 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_sigsetmask SYS_ult_sigsetmask
SYSCALL__ (sigsetmask, 1)
ret
weak_alias (__sigsetmask, sigsetmask)

View File

@ -0,0 +1,27 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_sigvec SYS_ult_sigvec
SYSCALL__ (sigvec, 3)
ret
weak_alias (__sigvec, sigvec)

View File

@ -0,0 +1,65 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
.comm errno, 4
!.sdata
!.globl STARTFRM
!STARTFRM = 0
.text
ENTRY(__start)
lda sp, -16(sp)
stq zero, 8(sp)
! This branch puts the address of the current insn in t0.
br t0, 10f
10:
! We set the GP register by using the address of the ldgp
! (what we just put into t0).
ldgp gp, 0(t0)
! get argc
ldl a0, 16(sp)
! get argv
lda a1, 24(sp)
! move ahead to envp
s8addq a0, a1, a2
addq a2, 0x8, a2
! Store in environ.
stq a2, environ
! Clear out errno.
! ldgp gp, 0(t12)
stl zero, errno
! Call main.
jsr ra, main
ldgp gp, 0(ra)
mov v0, a0
jsr ra, exit
ldgp gp, 0(ra)
.end __start

View File

@ -0,0 +1,75 @@
/* Copyright (C) 1993 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#ifndef _STATBUF_H
#define _STATBUF_H
#include <gnu/types.h>
/* Structure describing file characteristics. */
struct stat
{
int st_dev; /* Device. */
unsigned int st_ino; /* File serial number. */
unsigned int st_mode; /* File mode. */
unsigned short st_nlink; /* Link count. */
unsigned int st_uid; /* User ID of the file's owner. */
unsigned int st_gid; /* Group ID of the file's group.*/
int st_rdev; /* Device number, if device. */
long st_size; /* Size of file, in bytes. */
int st_atime; /* Time of last access. */
int st_atime_usec;
int st_mtime; /* Time of last modification. */
int st_mtime_usec;
int st_ctime; /* Time of last status change. */
int st_ctime_usec;
unsigned int st_blksize; /* Optimal block size for I/O. */
#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
int st_blocks; /* Number of 512-byte blocks allocated. */
unsigned int st_flags;
unsigned int st_gen;
};
/* Encoding of the file mode. */
#define __S_IFMT 0170000 /* These bits determine file type. */
/* File types. */
#define __S_IFDIR 0040000 /* Directory. */
#define __S_IFCHR 0020000 /* Character device. */
#define __S_IFBLK 0060000 /* Block device. */
#define __S_IFREG 0100000 /* Regular file. */
#define __S_IFIFO 0010000 /* FIFO. */
#define __S_IFLNK 0120000 /* Symbolic link. */
#define __S_IFSOCK 0140000 /* Socket. */
/* Protection bits. */
#define __S_ISUID 04000 /* Set user ID on execution. */
#define __S_ISGID 02000 /* Set group ID on execution. */
#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
#define __S_IREAD 0400 /* Read by owner. */
#define __S_IWRITE 0200 /* Write by owner. */
#define __S_IEXEC 0100 /* Execute by owner. */
#endif /* statbuf.h */

View File

@ -0,0 +1,40 @@
/* Copyright (C) 1993 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#define _ERRNO_H
#include <errnos.h>
ENTRY(syscall_error)
#ifdef EWOULDBLOCK_sys
/* We translate the system's EWOULDBLOCK error into EAGAIN.
The GNU C library always defines EWOULDBLOCK==EAGAIN.
EWOULDBLOCK_sys is the original number. */
subq v0, EWOULDBLOCK_sys, t0
cmoveq t0, EAGAIN, v0
#endif
/* Store it in errno... */
! ldgp gp, 0(t12)
stl v0, errno
/* And just kick back a -1. */
ldil v0, -1
ret
.end syscall_error

View File

@ -0,0 +1,73 @@
/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdeps/unix/sysdep.h>
#ifdef ASSEMBLER
#include <machine/pal.h> /* get PAL_callsys */
#include <regdef.h>
#ifdef __STDC__
#define ENTRY(name) \
.globl name; \
.ent name,0; \
name##:; \
.frame sp,0,ra
#else
#define ENTRY(name) \
.globl name; \
.ent name,0; \
name/**/:; \
.frame sp,0,ra
#endif
#ifdef __STDC__
#define PSEUDO(name, syscall_name, args) \
ENTRY(name); \
ldiq v0, SYS_##syscall_name; \
.set noat; \
call_pal PAL_callsys; \
.set at; \
beq a3, 10f; \
br gp, 20f; \
20:; \
ldgp gp, 0(gp); \
jmp zero, syscall_error; \
10:
#else
#define PSEUDO(name, syscall_name, args) \
ENTRY(name); \
ldiq v0, SYS_/**/syscall_name; \
.set noat; \
call_pal PAL_callsys; \
.set at; \
beq a3, 10f; \
br gp, 20f; \
20:; \
ldgp gp, 0(gp); \
jmp zero, syscall_error; \
10:
#endif
#define ret ret zero,(ra),1
#define r0 v0
#define r1 a4
#define MOVE(x,y) mov x, y
#endif /* ASSEMBLER */

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
#include <sys/ult_syscall.h>
#define SYS_vhangup SYS_ult_vhangup
SYSCALL (vhangup, 1)
ret

View File

@ -0,0 +1 @@
#include <sysdeps/unix/bsd/bsd4.4/wait4.S>

View File

@ -0,0 +1 @@
#include <sysdeps/unix/bsd/bsd4.4/waitpid.c>

View File

@ -0,0 +1 @@
#include <sysdeps/unix/bsd/sun/sunos4/msync.S>

View File

@ -0,0 +1,45 @@
/* Structure and constand definitions for sigaction et al. OSF/1 version.
Copyright (C) 1993 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
/* Structure describing the action to be taken when a signal arrives. */
struct sigaction
{
/* Signal handler. */
__sighandler_t sa_handler;
/* Additional set of signals to be blocked. */
__sigset_t sa_mask;
/* Special flags. */
int sa_flags;
};
/* Bits in `sa_flags'. */
#ifdef __USE_BSD
#define SA_ONSTACK 0x1 /* Take signal on signal stack. */
#define SA_RESTART 0x2 /* Don't restart syscall on signal return. */
#define SA_DISABLE 0x4 /* Disable alternate signal stack. */
#endif
#define SA_NOCLDSTOP 0x4 /* Don't send SIGCHLD when children stop. */
/* Values for the HOW argument to `sigprocmask'. */
#define SIG_BLOCK 1 /* Block signals. */
#define SIG_UNBLOCK 2 /* Unblock signals. */
#define SIG_SETMASK 3 /* Set the set of blocked signals. */

View File

@ -0,0 +1,2 @@
/* OSF/1 does have `waitpid'. Avoid unix/system.c, which says we don't. */
#include <sysdeps/posix/system.c>