OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /or1k/trunk/newlib/libgloss/sparc/libsys
    from Rev 1765 to Rev 40
    Reverse comparison

Rev 1765 → Rev 40

/syscall.h File deleted
/configure File deleted
configure Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: syscallasm.h =================================================================== --- syscallasm.h (revision 1765) +++ syscallasm.h (nonexistent) @@ -1,93 +0,0 @@ -#ifndef _SYSCALLASM_H_ -#define _SYSCALLASM_H_ - -/* - * This file defines the system calls for SPARC for the assembler. - * Anything C-ish is not allowed in this file. - * C files should include syscall.h. - */ - -#include "syscall.h" - -/* Some macros for writing assember syscall stubs. */ - -#ifdef SVR4 -#define TEXT_SECTION .section ".text" -#define DATA_SECTION .section ".data" -#define ALIGN(x) .align x -#define GLOBAL(sym) .global sym -#define WORD(x) .long x -#define ASM_SYMBOL(name) name -#define ASM_PRIVATE_SYMBOL(name) _##name -#define SYSCALL_TRAP 8 -#else -#define TEXT_SECTION .text -#define DATA_SECTION .data -#define ALIGN(x) .align x -#define GLOBAL(sym) .global sym -#define WORD(x) .word x -#define ASM_SYMBOL(name) _##name -#define ASM_PRIVATE_SYMBOL(name) name -#define SYSCALL_TRAP 0 -#endif - -#define defsyscall(name, n) \ - TEXT_SECTION ; \ - ALIGN (4) ; \ - GLOBAL (ASM_SYMBOL (name)) ; \ -ASM_SYMBOL (name): \ - mov n,%g1 ; \ - ta SYSCALL_TRAP ; \ - bcc noerr ; \ - sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ - or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ - jmpl %g1+%g0,%g0 ; \ - nop ; \ -noerr: \ - jmpl %o7+8,%g0 ; \ - nop - -/* Support for reentrant syscalls. The "struct _reent *" arg is always the - the first one. After that we allow up to four additional args. We could - allow more, but that's all we need for now. - - It may seem inefficient to have the reent arg be the first one as it means - copying all the other args into place (as opposed to making the reent arg - the last one in which case there wouldn't be any copying). I chose a clean - design over an extra four instructions in a system call. All other - reentrant functions use the first arg this way. - ??? Of course this scheme breaks down if we need to support 6 or more args. - - And of course the system calls aren't *really* reentrant. The intent - is to exercise the reentrancy framework rather than provide/claim - real reentrancy for this port. -*/ - -#define defsyscall_r(name, n) \ - TEXT_SECTION ; \ - ALIGN (4) ; \ - GLOBAL (ASM_SYMBOL (name)) ; \ -ASM_SYMBOL (name): \ - mov n,%g1 ; \ - mov %o0,%o5 ; \ - mov %o1,%o0 ; \ - mov %o2,%o1 ; \ - mov %o3,%o2 ; \ - mov %o4,%o3 ; \ - ta SYSCALL_TRAP ; \ - bcc noerr ; \ - sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \ - or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \ - jmpl %g1+%g0,%g0 ; \ - mov %o5,%o1 ; \ -noerr: \ - jmpl %o7+8,%g0 ; \ - nop - -#define seterrno() \ - sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ - or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ - jmpl %g1+%g0,%g0 ; \ - nop - -#endif /* _SYSCALLASM_H_ */ Index: Makefile.in =================================================================== --- Makefile.in (revision 1765) +++ Makefile.in (nonexistent) @@ -1,167 +0,0 @@ -# Makefile for libgloss/sparc/libsys -# Copyright (c) 1996 Cygnus Support. -# All rights reserved. -# -# Redistribution and use in source and binary forms are permitted -# provided that the above copyright notice and this paragraph are -# duplicated in all such forms and that any documentation, -# advertising materials, and other materials related to such -# distribution and use acknowledge that the software was developed -# at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to -# endorse or promote products derived from this software without -# specific prior written permission. -# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -VPATH = @srcdir@ -srcdir = @srcdir@ -objdir = . -srcroot = $(srcdir)/../.. -objroot = $(objdir)/../.. - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -host_alias = @host_alias@ -target_alias = @target_alias@ - -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -SHELL = /bin/sh - -CC = @CC@ - -AS = @AS@ -AR = @AR@ -LD = @LD@ -RANLIB = @RANLIB@ - -# _r.o is for the reentrant syscall stubs. -# The .S_r.o/.c_r.o rules are from host/any. - -.SUFFIXES: .c .S .o _r.o - -.S_r.o: - $(CC) $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) -DREENT $(INCLUDES) -c $< -o $@ -.c_r.o: - $(CC) $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) -DREENT $(INCLUDES) -c $< -o $@ - -# CFILES_R, SFILES_R, and TEMPLATE_SFILES_R define those system calls that are -# needed by the ANSI C part of newlib when REENTRANT_SYSCALLS_PROVIDED is -# defined. - -CFILES = isatty.c - -CFILES_R = - -SFILES = cerror.S _exit.S - -SFILES_R = sbrk.S - -# List of files built from template.S (with an '_' suffix). - -TEMPLATE_SFILES = chdir_ lstat_ - -TEMPLATE_SFILES_R = close_ fstat_ getpid_ kill_ \ - lseek_ open_ read_ stat_ unlink_ write_ - -# If newlib defines REENTRANT_SYSCALLS_PROVIDED, then these are used as well. -REENTRANT_OFILES = $(SFILES_R:.S=_r.o) $(TEMPLATE_SFILES_R:_=_r.o) \ - $(CFILES_R:.c=_r.o) - -OFILES = $(SFILES:.S=.o) $(SFILES_R:.S=.o) \ - $(TEMPLATE_SFILES:_=.o) $(TEMPLATE_SFILES_R:_=.o) \ - $(CFILES:.c=.o) $(CFILES_R:.c=.o) \ - $(REENTRANT_OFILES) - -#### Host specific Makefile fragment comes in here. -@host_makefile_frag@ - -all: libsys.a libsys-crt0.o - -libsys.a: $(OFILES) - rm -f $@ - $(AR) $(AR_FLAGS) $@ $(OFILES) - -install: - $(INSTALL_DATA) libsys-crt0.o $(tooldir)/lib/libsys-crt0.o - $(INSTALL_DATA) libsys.a $(tooldir)/lib/libsys.a - -doc: - -.PHONY: info install-info clean-info -info: -install-info: -clean-info: - -clean mostlyclean: - rm -f *.o *.a *.s stamp-srcs - -distclean maintainer-clean realclean: clean - rm -f Makefile config.status - -Makefile: Makefile.in config.status @host_makefile_frag_path@ - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck - -stamp-srcs: Makefile template.S template_r.S - for f in $(TEMPLATE_SFILES:_=) ; \ - do \ - $(CC) -E -Dfunc=$$f \ - $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) $(INCLUDES) \ - $(srcdir)/template.S >$$f.S ; \ - done - for f in $(TEMPLATE_SFILES_R:_=) ; \ - do \ - $(CC) -E -Dfunc=$$f \ - $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) $(INCLUDES) \ - $(srcdir)/template_r.S | sed -e 's/^_/#/' >$$f.S ; \ - done - touch stamp-srcs - -# Make a dependency for each file built from a template. - -$(TEMPLATE_SFILES:_=.S) $(TEMPLATE_SFILES_R:_=.S): stamp-srcs - -# To support SunOS broken VPATH (sigh). - -_exit.o: _exit.S -cerror.o: cerror.S -chdir.o: chdir.S -close.o: close.S -fstat.o: fstat.S -getpid.o: getpid.S -isatty.o: isatty.c -kill.o: kill.S -libsys-crt0.o: libsys-crt0.S -lseek.o: lseek.S -lstat.o: lstat.S -open.o: open.S -read.o: read.S -sbrk.o: sbrk.S -stat.o: stat.S -write.o: write.S - -# Reentrant versions ... -# These are all needed to support the ANSI C library routines. - -close_r.o: close.S -fstat_r.o: fstat.S -getpid_r.o: getpid.S -kill_r.o: kill.S -lseek_r.o: lseek.S -open_r.o: open.S -read_r.o: read.S -sbrk_r.o: sbrk.S -stat_r.o: stat.S -unlink_r.o: unlink.S -write_r.o: write.S Index: sbrk.S =================================================================== --- sbrk.S (revision 1765) +++ sbrk.S (nonexistent) @@ -1,66 +0,0 @@ -! sbrk() system call - -#include "syscallasm.h" - - TEXT_SECTION - ALIGN (4) -#ifdef REENT - GLOBAL (ASM_SYMBOL (_sbrk_r)) -ASM_SYMBOL (_sbrk_r): - mov %o0,%o5 - mov %o1,%o0 -#else - GLOBAL (ASM_SYMBOL (sbrk)) -ASM_SYMBOL (sbrk): -#endif - add %o0,7,%o0 - andn %o0,7,%o0 - sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o2 -#ifdef __sparc_v9__ - lduw [%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))],%o3 -#else - ld [%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))],%o3 -#endif - add %o3,7,%o3 - andn %o3,7,%o3 - add %o3,%o0,%o0 - mov %o0,%o4 - mov SYS_brk,%g1 - ta SYSCALL_TRAP - bcs err - nop - st %o4,[%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))] - jmpl %o7+8,%g0 - mov %o3,%o0 - -#ifdef REENT - GLOBAL (ASM_SYMBOL (_brk_r)) -ASM_SYMBOL (_brk_r): - mov %o0,%o5 - mov %o1,%o0 -#else - GLOBAL (ASM_SYMBOL (brk)) -ASM_SYMBOL (brk): -#endif - add %o0,7,%o0 - andn %o0,7,%o0 - mov %o0,%o2 - mov SYS_brk,%g1 - ta SYSCALL_TRAP - bcs err - nop - sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o3 - st %o2,[%o3+%lo (ASM_PRIVATE_SYMBOL (curbrk))] - retl - mov %g0,%o0 - -err: -#ifdef REENT - sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 - or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 -#else - sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 - or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 -#endif - jmpl %g1,%g0 - mov %o5,%o1 Index: configure.in =================================================================== --- configure.in (revision 1765) +++ configure.in (nonexistent) @@ -1,50 +0,0 @@ -# Configure.in for libgloss/sparc/libsys -# Copyright (c) 1996 Cygnus Support -# All rights reserved. -# -# Redistribution and use in source and binary forms are permitted -# provided that the above copyright notice and this paragraph are -# duplicated in all such forms and that any documentation, -# advertising materials, and other materials related to such -# distribution and use acknowledge that the software was developed -# at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to -# endorse or promote products derived from this software without -# specific prior written permission. -# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.5)dnl -AC_INIT(libsys-crt0.S) - -if test "$srcdir" = "." ; then - mdir=`echo "${with_multisubdir}/" \ - | sed -e 's,\([[^/]][[^/]]*\),..,g' -e 's,^/$,,'` - AC_CONFIG_AUX_DIR(${mdir}../../../..) -else - AC_CONFIG_AUX_DIR(${srcdir}/../../..) -fi - -AC_PROG_INSTALL - -AC_PROG_CC -AS=${AS-as} -AC_SUBST(AS) -AR=${AR-ar} -AC_SUBST(AR) -LD=${LD-ld} -AC_SUBST(LD) -AC_PROG_RANLIB - -host_makefile_frag=${srcdir}/../../config/default.mh - -dnl We have to assign the same value to other variables because autoconf -dnl doesn't provide a mechanism to substitute a replacement keyword with -dnl arbitrary data or pathnames. -dnl -host_makefile_frag_path=$host_makefile_frag -AC_SUBST(host_makefile_frag_path) -AC_SUBST_FILE(host_makefile_frag) - -AC_OUTPUT(Makefile) Index: _exit.S =================================================================== --- _exit.S (revision 1765) +++ _exit.S (nonexistent) @@ -1,14 +0,0 @@ -! _exit() system call - -#include "syscallasm.h" - - TEXT_SECTION - ALIGN (4) - GLOBAL (ASM_SYMBOL (_exit)) -ASM_SYMBOL (_exit): - mov SYS_exit,%g1 - ta SYSCALL_TRAP - -! If that returns (yikes!), try an illegal insn ... - - WORD (0) \ No newline at end of file Index: libsys-crt0.S =================================================================== --- libsys-crt0.S (revision 1765) +++ libsys-crt0.S (nonexistent) @@ -1,127 +0,0 @@ -! C run time start off - -! This file supports: -! -! - both 32bit pointer and 64bit pointer environments (at compile time) -! - an imposed stack bias (of 2047) (at run time) -! - medium/low and medium/anywhere code models (at run time) - -! Initial stack setup: -! -! bottom of stack (higher memory address) -! ... -! text of environment strings -! text of argument strings -! envp[envc] = 0 (4/8 bytes) -! ... -! env[0] (4/8 bytes) -! argv[argc] = 0 (4/8 bytes) -! ... -! argv[0] (4/8 bytes) -! argc (4/8 bytes) -! register save area (64 bits by 16 registers = 128 bytes) -! top of stack (%sp) - -! Stack Bias: -! -! It is the responsibility of the o/s to set this up. -! We handle both a 0 and 2047 value for the stack bias. - -! Medium/Anywhere code model support: -! -! In this model %g4 points to the start of the data segment. -! The text segment can go anywhere, but %g4 points to the *data* segment. -! It is up to the compiler/linker to get this right. -! -! Since this model is statically linked the start of the data segment -! is known at link time. Eg: -! -! sethi %hh(data_start), %g1 -! sethi %lm(data_start), %g4 -! or %g1, %hm(data_start), %g1 -! or %g4, %lo(data_start), %g4 -! sllx %g1, 32, %g1 -! or %g4, %g1, %g4 -! -! FIXME: For now we just assume 0. - -! FIXME: if %g1 contains a non-zero value, atexit() should be invoked -! with this value. - -#include "syscallasm.h" - -#ifndef TARGET_PTR_SIZE -#define TARGET_PTR_SIZE 32 -#endif - - TEXT_SECTION - ALIGN (4) - GLOBAL (ASM_PRIVATE_SYMBOL (start)) -ASM_PRIVATE_SYMBOL (start): - clr %fp - -! We use %g4 even if the code model is Medium/Low (simplifies the code). - - clr %g4 ! Medium/Anywhere base reg - -! If there is a stack bias in effect, account for it in %g5. Then always -! add %g5 to stack references below. This way the code can be used with -! or without an imposed bias. - - andcc %sp, 1, %g5 - bnz,a .LHaveBias - mov 2047, %g5 -.LHaveBias: - add %sp, %g5, %sp - -#if TARGET_PTR_SIZE == 32 - ! FIXME: We apparently assume here that there is no reserved word. - ! This is probably correct, but try to verify it. - ld [%sp + 0x80], %o0 ! argc - add %sp, 0x84, %o1 ! argv - add %o0, 1, %o2 - sll %o2, 2, %o2 -#else /* TARGET_PTR_SIZE == 64 */ - ld [%sp + 0x8c], %o0 ! argc.lo - add %sp, 0x90, %o1 ! argv - add %o0, 1, %o2 - sll %o2, 3, %o2 -#endif - add %o1, %o2, %o2 ! envp - sethi %hi (ASM_SYMBOL (environ)), %o3 - or %o3, %lo (ASM_SYMBOL (environ)), %o3 -#if TARGET_PTR_SIZE == 32 - st %o2, [%o3 + %g4] -#else /* TARGET_PTR_SIZE == 64 */ - stx %o2, [%o3 + %g4] -#endif - -! Restore any stack bias before we call main() ... - - sub %sp, %g5, %sp - - GLOBAL (ASM_SYMBOL (main)) - call ASM_SYMBOL (main) - -! FIXME: Not sure if this is needed anymore. -#if TARGET_PTR_SIZE == 32 - sub %sp, 0x20, %sp ! room to push args -#else /* TARGET_PTR_SIZE == 64 */ - sub %sp, 0x30, %sp ! room to push args -#endif - - GLOBAL (ASM_SYMBOL (exit)) - call ASM_SYMBOL (exit) - nop - - GLOBAL (ASM_SYMBOL (_exit)) - call ASM_SYMBOL (_exit) - nop - - set SYS_exit, %g1 - ta SYSCALL_TRAP ! in case user redefines __exit - -! If all the above methods fail to terminate the program, try an illegal insn. -! If that does not work, the o/s is hosed more than we are. - - WORD (0) Index: template.S =================================================================== --- template.S (revision 1765) +++ template.S (nonexistent) @@ -1,14 +0,0 @@ -/* system call template */ - -/* Lots of system calls are trivial functions, so we build their source files - from a template. New syscalls can be added simply by editing the - Makefile! - - Usage: Compile this file with "func" set to the name of the syscall. */ - -#include "syscallasm.h" - -#define concat(a,b) a##b -#define makesys(a) concat (SYS_, a) - - defsyscall (func, makesys(func)) Index: cerror.S =================================================================== --- cerror.S (revision 1765) +++ cerror.S (nonexistent) @@ -1,47 +0,0 @@ -! Set errno. -! This function is called by all the syscall stubs. -! -! FIXME: We assume errno is the first member of struct _reent. -! Not sure what to do about this. - -#include "syscallasm.h" - - DATA_SECTION - ALIGN (4) - GLOBAL (ASM_SYMBOL (errno)) ! FIXME: ASM_PRIVATE_SYMBOL ? -ASM_SYMBOL (errno): - WORD (0) - - TEXT_SECTION - ALIGN (4) - - GLOBAL (ASM_PRIVATE_SYMBOL (cerror)) -ASM_PRIVATE_SYMBOL (cerror): - sethi %hi (ASM_SYMBOL (errno)),%g1 - st %o0,[%g1+%lo (ASM_SYMBOL (errno))] - jmpl %o7+8,%g0 - mov -1,%o0 - - GLOBAL (ASM_PRIVATE_SYMBOL (cerror_r)) -ASM_PRIVATE_SYMBOL (cerror_r): - st %o0,[%o1] - jmpl %o7+8,%g0 - mov -1,%o0 - -! Since all system calls need this file, we put various state globals -! here as well. - - DATA_SECTION - -! CURBRK contains the current top of allocated space. -! END is a private symbol in svr4, but a public one in sunos4. -! FIXME: CURBRK is 4 bytes for now. - - ALIGN (4) - GLOBAL (ASM_PRIVATE_SYMBOL (curbrk)) -ASM_PRIVATE_SYMBOL (curbrk): -#ifdef SVR4 - WORD (ASM_PRIVATE_SYMBOL (end)) -#else - WORD (ASM_SYMBOL (end)) -#endif Index: template_r.S =================================================================== --- template_r.S (revision 1765) +++ template_r.S (nonexistent) @@ -1,26 +0,0 @@ -/* reentrant system call template */ - -/* Lots of system calls are trivial functions, so we build their source files - from a template. New syscalls can be added simply by editing the - Makefile! - - The system calls aren't necessarily reentrant. If we were being used in - an embedded system they could be. Reentrant syscalls are also used, - however, to provide ANSI C namespace clean access to the host o/s. - - Usage: Compile this file with "func" set to the name of the syscall. */ - -#include "syscallasm.h" - -#define concat(a,b) a##b -#define concat3(a,b,c) a##b##c -#define makesys(a) concat (SYS_, a) -#define make_r_fn(a) concat3 (_, a, _r) - -/* The leading _'s get turned into #'s by the Makefile. */ - -_ifdef REENT - defsyscall_r (make_r_fn (func), makesys (func)) -_else - defsyscall (func, makesys (func)) -_endif Index: isatty.c =================================================================== --- isatty.c (revision 1765) +++ isatty.c (nonexistent) @@ -1,17 +0,0 @@ -/* isatty.c */ - -/* Dumb implementation so programs will at least run. */ - -#include - -int -isatty (int fd) -{ - struct stat buf; - - if (fstat (fd, &buf) < 0) - return 0; - if (S_ISCHR (buf.st_mode)) - return 1; - return 0; -}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.