From 9e360dcc057030f1a5b06971af691f8d1687b635 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 14 Feb 2015 23:23:50 -0600 Subject: good by nios Get rid of NIOS support. We try to support NIOSII. --- Makerules | 6 - Rules.mak | 6 - extra/Configs/Config.in | 8 - extra/Configs/Config.nios | 17 - extra/Configs/defconfigs/nios/defconfig | 1 - libc/sysdeps/linux/nios/Makefile | 13 - libc/sysdeps/linux/nios/Makefile.arch | 12 - libc/sysdeps/linux/nios/NM_Macros.S | 473 --------------------- libc/sysdeps/linux/nios/NR_Math1.S | 63 --- libc/sysdeps/linux/nios/__longjmp.S | 98 ----- libc/sysdeps/linux/nios/bits/endian.h | 8 - libc/sysdeps/linux/nios/bits/fcntl.h | 237 ----------- libc/sysdeps/linux/nios/bits/kernel_types.h | 43 -- libc/sysdeps/linux/nios/bits/mathdef.h | 43 -- libc/sysdeps/linux/nios/bits/setjmp.h | 44 -- libc/sysdeps/linux/nios/bits/sigcontextinfo.h | 26 -- libc/sysdeps/linux/nios/bits/stackinfo.h | 27 -- libc/sysdeps/linux/nios/bits/stat.h | 167 -------- libc/sysdeps/linux/nios/bits/syscalls.h | 13 - .../sysdeps/linux/nios/bits/uClibc_arch_features.h | 42 -- libc/sysdeps/linux/nios/bits/wordsize.h | 18 - libc/sysdeps/linux/nios/brk.c | 43 -- libc/sysdeps/linux/nios/bsd-_setjmp.S | 1 - libc/sysdeps/linux/nios/bsd-setjmp.S | 1 - libc/sysdeps/linux/nios/clone.S | 87 ---- libc/sysdeps/linux/nios/crt1.S | 55 --- libc/sysdeps/linux/nios/crtbegin.c | 37 -- libc/sysdeps/linux/nios/crtend.c | 44 -- libc/sysdeps/linux/nios/fpu_control.h | 98 ----- libc/sysdeps/linux/nios/jmpbuf-offsets.h | 25 -- libc/sysdeps/linux/nios/jmpbuf-unwind.h | 11 - libc/sysdeps/linux/nios/setjmp.S | 98 ----- libc/sysdeps/linux/nios/sys/procfs.h | 122 ------ libc/sysdeps/linux/nios/sys/ucontext.h | 103 ----- libc/sysdeps/linux/nios/vfork.S | 51 --- .../linuxthreads.old/sysdeps/nios/pt-machine.h | 67 --- 36 files changed, 2208 deletions(-) delete mode 100644 extra/Configs/Config.nios delete mode 100644 extra/Configs/defconfigs/nios/defconfig delete mode 100644 libc/sysdeps/linux/nios/Makefile delete mode 100644 libc/sysdeps/linux/nios/Makefile.arch delete mode 100644 libc/sysdeps/linux/nios/NM_Macros.S delete mode 100644 libc/sysdeps/linux/nios/NR_Math1.S delete mode 100644 libc/sysdeps/linux/nios/__longjmp.S delete mode 100644 libc/sysdeps/linux/nios/bits/endian.h delete mode 100644 libc/sysdeps/linux/nios/bits/fcntl.h delete mode 100644 libc/sysdeps/linux/nios/bits/kernel_types.h delete mode 100644 libc/sysdeps/linux/nios/bits/mathdef.h delete mode 100644 libc/sysdeps/linux/nios/bits/setjmp.h delete mode 100644 libc/sysdeps/linux/nios/bits/sigcontextinfo.h delete mode 100644 libc/sysdeps/linux/nios/bits/stackinfo.h delete mode 100644 libc/sysdeps/linux/nios/bits/stat.h delete mode 100644 libc/sysdeps/linux/nios/bits/syscalls.h delete mode 100644 libc/sysdeps/linux/nios/bits/uClibc_arch_features.h delete mode 100644 libc/sysdeps/linux/nios/bits/wordsize.h delete mode 100644 libc/sysdeps/linux/nios/brk.c delete mode 100644 libc/sysdeps/linux/nios/bsd-_setjmp.S delete mode 100644 libc/sysdeps/linux/nios/bsd-setjmp.S delete mode 100644 libc/sysdeps/linux/nios/clone.S delete mode 100644 libc/sysdeps/linux/nios/crt1.S delete mode 100644 libc/sysdeps/linux/nios/crtbegin.c delete mode 100644 libc/sysdeps/linux/nios/crtend.c delete mode 100644 libc/sysdeps/linux/nios/fpu_control.h delete mode 100644 libc/sysdeps/linux/nios/jmpbuf-offsets.h delete mode 100644 libc/sysdeps/linux/nios/jmpbuf-unwind.h delete mode 100644 libc/sysdeps/linux/nios/setjmp.S delete mode 100644 libc/sysdeps/linux/nios/sys/procfs.h delete mode 100644 libc/sysdeps/linux/nios/sys/ucontext.h delete mode 100644 libc/sysdeps/linux/nios/vfork.S delete mode 100644 libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h diff --git a/Makerules b/Makerules index d6f7e2460..aa24a6121 100644 --- a/Makerules +++ b/Makerules @@ -467,13 +467,7 @@ $(CTOR_TARGETS): $(top_builddir)lib/%.o : $(top_srcdir)libc/sysdeps/linux/$(TARG $(compile.S) $(PICFLAG) $(SSP_DISABLE_FLAGS) endif -#ifeq ($(TARGET_ARCH),nios) -#CRTS_COMPAT := $(top_builddir)lib/crt0.o -#$(CRTS_COMPAT): -# ln -fs crt1.o $(top_builddir)lib/crt0.o -#else CRTS_COMPAT := -#endif startfiles = $(CRTS) $(CTOR_TARGETS) $(CRTS_COMPAT) $(CRTRELOC) startfiles: $(startfiles) diff --git a/Rules.mak b/Rules.mak index 7dc13c17e..59b408b0d 100644 --- a/Rules.mak +++ b/Rules.mak @@ -406,12 +406,6 @@ ifeq ($(TARGET_ARCH),mips) CPU_LDFLAGS-y += $(CPU_CFLAGS) endif -ifeq ($(TARGET_ARCH),nios) - OPTIMIZATION+=-funaligned-struct-hack - CPU_LDFLAGS-y+=-Wl,-m32 - CPU_CFLAGS-y+=-Wl,-m32 -endif - ifeq ($(TARGET_ARCH),sh) $(eval $(call check-gcc-var,-mprefergot)) OPTIMIZATION += $(CFLAG_-mprefergot) diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 48df4b742..9e6d09590 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -32,7 +32,6 @@ choice default TARGET_metag if DESIRED_TARGET_ARCH = "metag" default TARGET_microblaze if DESIRED_TARGET_ARCH = "microblaze" default TARGET_mips if DESIRED_TARGET_ARCH = "mips" - default TARGET_nios if DESIRED_TARGET_ARCH = "nios" default TARGET_nios2 if DESIRED_TARGET_ARCH = "nios2" default TARGET_or1k if DESIRED_TARGET_ARCH = "or1k" default TARGET_powerpc if DESIRED_TARGET_ARCH = "powerpc" @@ -100,9 +99,6 @@ config TARGET_microblaze config TARGET_mips bool "mips" -#config TARGET_nios -# bool "nios" - config TARGET_nios2 bool "nios2" @@ -188,10 +184,6 @@ if TARGET_metag source "extra/Configs/Config.metag" endif -if TARGET_nios -source "extra/Configs/Config.nios" -endif - if TARGET_nios2 source "extra/Configs/Config.nios2" endif diff --git a/extra/Configs/Config.nios b/extra/Configs/Config.nios deleted file mode 100644 index 639cd35e2..000000000 --- a/extra/Configs/Config.nios +++ /dev/null @@ -1,17 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see extra/config/Kconfig-language.txt -# - -config TARGET_ARCH - string - default "nios" - -config FORCE_OPTIONS_FOR_ARCH - bool - default y - select ARCH_LITTLE_ENDIAN - select ARCH_HAS_NO_MMU - select ARCH_HAS_NO_LDSO - select ARCH_HAS_DEPRECATED_SYSCALLS - select HAVE_NO_PIC diff --git a/extra/Configs/defconfigs/nios/defconfig b/extra/Configs/defconfigs/nios/defconfig deleted file mode 100644 index 2a110b893..000000000 --- a/extra/Configs/defconfigs/nios/defconfig +++ /dev/null @@ -1 +0,0 @@ -TARGET_nios=y diff --git a/libc/sysdeps/linux/nios/Makefile b/libc/sysdeps/linux/nios/Makefile deleted file mode 100644 index 3970f6263..000000000 --- a/libc/sysdeps/linux/nios/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2000-2006 Erik Andersen -# -# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -# - -top_srcdir=../../../../ -top_builddir=../../../../ -all: objs -include $(top_builddir)Rules.mak -include Makefile.arch -include $(top_srcdir)Makerules diff --git a/libc/sysdeps/linux/nios/Makefile.arch b/libc/sysdeps/linux/nios/Makefile.arch deleted file mode 100644 index 75f40796e..000000000 --- a/libc/sysdeps/linux/nios/Makefile.arch +++ /dev/null @@ -1,12 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2000-2006 Erik Andersen -# -# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -# - -CSRC-y := brk.c crtbegin.c crtend.c - -SSRC-y := \ - __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \ - clone.S vfork.S diff --git a/libc/sysdeps/linux/nios/NM_Macros.S b/libc/sysdeps/linux/nios/NM_Macros.S deleted file mode 100644 index da6136593..000000000 --- a/libc/sysdeps/linux/nios/NM_Macros.S +++ /dev/null @@ -1,473 +0,0 @@ - -;------------------------------ -; Macros I: Faux Instructions -; -; The following "faux instructions" are -; implemented here as macros: -; -; MOVIP register,constant MOVI with optional PFX & MOVHI, or BGEN -; ADDIP register,constant PFX and ADDI with optional PFX -; SUBIP register,constant PFX and SUBI with optional PFX -; CMPIP register,constant PFX and CMPI with optional PFX -; -; MOVI16 register,constant PFX and MOVI -; MOVI32 register,constant PFX, MOVI, PFX, and MOVHI -; MOVIA register,constant PFX and MOVHI on Nios32, and PFX and MOVI -; -; ANDIP register,constant PFX and ANDI -; ANDNIP register,constant PFX and ANDN -; ORIP register,constant PFX and ORI -; XORIP register,constant PFX and XORI -; -; _BSR address MOVIP address to %g7, and CALL -; _BR address MOVIP address to %g7, and JMP -; -; BEQ address SKPS cc_nz and BR, has delay slot -; BNE address SKPS cc_z and BR, has delay slot -; BLE address SKPS cc_gt and BR, has delay slot -; BLT address SKPS cc_ge and BR, has delay slot -; RESTRET RESTORE and JMP %i7 -; -;------------------------------- -; Macros II: Printing -; -; These macros are guaranteed *not* -; to have branch delay slot after them. -; -; NM_PrintChar char -; NM_Print "string" -; NM_PrintLn "string" Follows it with a carriage return -; NM_PrintRegister reg For debugging, prints register name & value -; -;------------------------------- -; Macros III: Inline Debugging -; -; These macros print various information -; using large sections of expanded inline code. -; They each use either few or no registers. -; Thus, they may be safely used in interrupt handlers. -; -; NM_D_TxChar char print char to UART, affects no registers -; NM_D_TxRegister char,char,register prints the two characters, and the hex register value - -; -------------------------------------- - - - .macro _pfx_op OP,reg,val,pForce=0 - .if (\pForce) || ((\val) > (31)) || ((\val) < (0)) - PFX %hi(\val) - .endif - \OP \reg,%lo(\val) - .endm - - .macro _bgen reg,val,bit - .if ((\val)==(1<<\bit)) - BGEN \reg,\bit - .equ _bgenBit,1 - .endif - .endm - - ;------------------------ - ; MOVIP %reg,32-bit-value - .macro MOVIP reg,val - ; Methodically test every BGEN possibility... - .equ _bgenBit,0 -.if 1 - _bgen \reg,\val,0 - _bgen \reg,\val,1 - _bgen \reg,\val,2 - _bgen \reg,\val,3 - _bgen \reg,\val,4 - _bgen \reg,\val,5 - _bgen \reg,\val,6 - _bgen \reg,\val,7 - _bgen \reg,\val,8 - _bgen \reg,\val,9 - _bgen \reg,\val,10 - _bgen \reg,\val,11 - _bgen \reg,\val,12 - _bgen \reg,\val,13 - _bgen \reg,\val,14 - _bgen \reg,\val,15 - _bgen \reg,\val,16 - _bgen \reg,\val,17 - _bgen \reg,\val,18 - _bgen \reg,\val,19 - _bgen \reg,\val,20 - _bgen \reg,\val,21 - _bgen \reg,\val,22 - _bgen \reg,\val,23 - _bgen \reg,\val,24 - _bgen \reg,\val,25 - _bgen \reg,\val,26 - _bgen \reg,\val,27 - _bgen \reg,\val,28 - _bgen \reg,\val,29 - _bgen \reg,\val,30 - _bgen \reg,\val,31 - - ; If no bgen fit... -.endif - .if !_bgenBit - .if ((\val) & 0xFFE0) - PFX %hi(\val) - .endif - MOVI \reg,%lo(\val) - .if __nios32__ - .if ((\val) & 0xffff0000) - .if ((\val) & 0xFFE00000) - PFX %xhi(\val) - .endif - MOVHI \reg,%xlo(\val) - .endif - .endif - .endif - - .endm - - ; ADDIP %reg,16-bit-value - .macro ADDIP reg,val - _pfx_op ADDI,\reg,\val - .endm - - ; SUBIP %reg,16-bit-value - .macro SUBIP reg,val - _pfx_op SUBI,\reg,\val - .endm - - ; CMPIP %reg,16-bit-value - .macro CMPIP reg,val - _pfx_op CMPI,\reg,\val - .endm - - ; ANDIP %reg,16-bit-value - .macro ANDIP reg,val - PFX %hi(\val) - AND \reg,%lo(\val) - .endm - - ; ANDNIP %reg,16-bit-value - .macro ANDNIP reg,val - PFX %hi(\val) - ANDN \reg,%lo(\val) - .endm - - ; ORIP %reg,16-bit-value - .macro ORIP reg,val - PFX %hi(\val) - OR \reg,%lo(\val) - .endm - - ; XORIP %reg,16-bit-value - .macro XORIP reg,val - PFX %hi(\val) - XOR \reg,%lo(\val) - .endm - - ; BEQ addr - .macro BEQ addr - IFS cc_eq - BR \addr - .endm - - ; BNE addr - .macro BNE addr - IFS cc_ne - BR \addr - .endm - - ; BLE addr - .macro BLE addr - SKPS cc_gt - BR \addr - .endm - - ; BLT addr - .macro BLT addr - SKPS cc_ge - BR \addr - .endm - - .macro digitToChar reg - ANDIP \reg,0x000f - CMPI \reg,10 - SKPS cc_lt - ADDI \reg,'A'-'0'-10 - PFX %hi('0') - ADDI \reg,%lo('0') - .endm - -; PUSHRET == dec sp, and stash return addr - .macro PUSHRET - SUBI %sp,2 - ST [%sp],%o7 - .endm -; POPRET == pop and jump - .macro POPRET - LD %o7,[%sp] - JMP %o7 - ADDI %sp,2 ; branch delay slot - .endm - -; RESTRET = restore & return - .macro RESTRET - JMP %i7 - RESTORE - .endm - - ;-------------------- - ; MOVI16 %reg,Address - ; - .macro MOVI16 reg,val - PFX %hi(\val) - MOVI \reg,%lo(\val) - .endm - - ;-------------------- - ; MOVI32 %reg,Address - ; - .macro MOVI32 reg,val - PFX %hi(\val) - MOVI \reg,%lo(\val) - PFX %xhi(\val) - MOVHI \reg,%xlo(\val) - .endm - - ;-------------------- - ; MOVIA %reg,Address - ; - .macro MOVIA reg,val - .if __nios32__ - MOVI32 \reg,\val - .else - MOVI16 \reg,\val - .endif - .endm - - ;-------------------- - ; _BR - - .macro _BR target,viaRegister=%g7 - MOVIA \viaRegister,\target@h - JMP \viaRegister - .endm - - ;-------------------- - ; _BSR - - .macro _BSR target,viaRegister=%g7 - MOVIA \viaRegister,\target@h - CALL \viaRegister - .endm - - ;--------------------- - ; NM_Print "Your String Here" - ; - .macro NM_Print string - - BR pastStringData\@ - NOP - -stringData\@: - .asciz "\string" - .align 1 ; aligns by 2^n -pastStringData\@: - MOVIA %o0,stringData\@ - _BSR NR_TxString - NOP - .endm - - .macro NM_PrintLn string - NM_Print "\string" - _BSR NR_TxCR - NOP - .endm - - .macro NM_PrintRegister reg ; affects %g0 & %g1 & %g7, but thrashes the CWP a bit - SAVE %sp,-16 - NM_Print "\reg = " - RESTORE - MOV %g0,\reg - SAVE %sp,-16 - MOV %o0,%g0 - _BSR NR_TxHex - NOP - _BSR NR_TxCR - NOP - RESTORE - .endm - - .macro NM_PrintChar char - MOVIP %o0,\char - _BSR NR_TxChar - NOP - .endm - - .macro NM_Print2Chars char1,char2 - MOVIP %o0,(\char2<<8)+\char1 - _BSR NR_TxChar - NOP - _BSR NR_TxChar - LSRI %o0,8 - .endm - - - -; --------------------------- -; Completely inline UART sends -; Send the char, or %g7 if not there. -; Trashes %g5 and %g6 and %g7... - - .macro NM_TxChar char=0 -;NM_D_Delay 1000 - MOVIA %g6,NA_UARTBase -txCharLoop\@: - PFX 2 -.if \char - LD %g7,[%g6] - SKP1 %g7,6 -.else - LD %g5,[%g6] - SKP1 %g5,6 -.endif - BR txCharLoop\@ - NOP -.if \char - MOVIP %g7,\char -.endif - PFX 1 - ST [%g6],%g7 -;NM_D_Delay 4 - .endm - - .macro NM_TxCR - NM_TxChar 13 - NM_TxChar 10 - .endm - - .macro NM_TxHexDigit,reg,shift - MOV %g7,\reg - LSRI %g7,\shift - ANDIP %g7,0x000f - CMPI %g7,10 - SKPS cc_lt - ADDIP %g7,'A'-'0'-10 - ADDIP %g7,'0' - NM_TxChar - .endm - - .macro NM_TxHex - - .if __nios32__ - NM_TxHexDigit %g0,28 - NM_TxHexDigit %g0,24 - NM_TxHexDigit %g0,20 - NM_TxHexDigit %g0,16 - .endif - - NM_TxHexDigit %g0,12 - NM_TxHexDigit %g0,8 - NM_TxHexDigit %g0,4 - NM_TxHexDigit %g0,0 - .endm - - - - - - - - - - -; ---------------------- -; The following macros are -; rather mighty. They expand -; to large inline code for -; printing various things to -; the serial port. They are -; useful for debugging -; trap handlers, where you -; can't just go and call -; NR_TxChar and such, because, -; well, the CWP might be -; off limits! -; -; They do, however, presume -; that the stack is in good -; working order. - - -.macro NM_D_PushGRegisters - SUBIP %sp,16+69 ; oddball number so if we accidentally see it, it looks funny. - STS [%sp,16+0],%g0 - STS [%sp,16+1],%g1 - STS [%sp,16+2],%g2 - STS [%sp,16+3],%g3 - STS [%sp,16+4],%g4 - STS [%sp,16+5],%g5 - STS [%sp,16+6],%g6 - STS [%sp,16+7],%g7 - .endm - -.macro NM_D_PopGRegisters - LDS %g0,[%sp,16+0] - LDS %g1,[%sp,16+1] - LDS %g2,[%sp,16+2] - LDS %g3,[%sp,16+3] - LDS %g4,[%sp,16+4] - LDS %g5,[%sp,16+5] - LDS %g6,[%sp,16+6] - LDS %g7,[%sp,16+7] - ADDIP %sp,16+69 ; must match the push - .endm - - -.macro NM_D_TxChar c - SUBI %sp,16+8 ; 32 or 16 bit, that's enough space - STS [%sp,16+0],%g6 - STS [%sp,16+0],%g7 - NM_TxChar \c - LDS %g6,[%sp,16+0] - LDS %g7,[%sp,16+1] - ADDI %sp,16+8 - .endm - -.macro NM_D_TxChar3 c1,c2,c3 - NM_D_TxChar '<' - NM_D_TxChar \c1 - NM_D_TxChar \c2 - NM_D_TxChar \c3 - NM_D_TxChar '>' -.endm - -.macro NM_D_TxRegister r,n,reg - NM_D_PushGRegisters - NM_TxChar '(' - NM_TxChar \r - NM_TxChar \n - NM_TxChar ':' - MOV %g0,\reg - NM_TxHex - NM_TxChar ')' - NM_D_PopGRegisters -.endm - -.macro NM_D_TxReg r,n,reg - NM_D_TxRegister \r,\n,\reg -.endm - -; Do a delay loop, affects no registers. - -.macro NM_D_Delay d - SUBI %sp,16+4 - STS [%sp,16+0],%g0 - MOVIP %g0,\d -NM_D_DelayLoop\@: - IFRnz %g0 - BR NM_D_DelayLoop\@ - SUBI %g0,1 - LDS %g0,[%sp,16+0] - ADDI %sp,16+4 -.endm - diff --git a/libc/sysdeps/linux/nios/NR_Math1.S b/libc/sysdeps/linux/nios/NR_Math1.S deleted file mode 100644 index 5d5169ba8..000000000 --- a/libc/sysdeps/linux/nios/NR_Math1.S +++ /dev/null @@ -1,63 +0,0 @@ - - - .include "NM_Macros.S" - - .file "okmul.c" -gcc2_compiled.: - .text - .p2align 1 - .globl __mulsi3 - .type __mulsi3,@function -__mulsi3: - - ;SKP0 %o0,31 - ;NEG %o1 - ;ABS %o0 - - .MACRO ZSTEP bit - SKP0 %o0,\bit - ADD %g0,%o1 - LSLI %o1,1 - .ENDM - - MOVI %g0,0 - ZSTEP 0 - ZSTEP 1 - ZSTEP 2 - ZSTEP 3 - ZSTEP 4 - ZSTEP 5 - ZSTEP 6 - ZSTEP 7 - ZSTEP 8 - ZSTEP 9 - ZSTEP 10 - ZSTEP 11 - ZSTEP 12 - ZSTEP 13 - ZSTEP 14 - ZSTEP 15 - ZSTEP 16 - ZSTEP 17 - ZSTEP 18 - ZSTEP 19 - ZSTEP 20 - ZSTEP 21 - ZSTEP 22 - ZSTEP 23 - ZSTEP 24 - ZSTEP 25 - ZSTEP 26 - ZSTEP 27 - ZSTEP 28 - ZSTEP 29 - ZSTEP 30 - ZSTEP 31 - ; No bit 31: we already set %o0 to positive - - JMP %o7 - MOV %o0,%g0 - -.Lfe1: - .size __mulsi3,.Lfe1-__mulsi3 - diff --git a/libc/sysdeps/linux/nios/__longjmp.S b/libc/sysdeps/linux/nios/__longjmp.S deleted file mode 100644 index 5500c7b94..000000000 --- a/libc/sysdeps/linux/nios/__longjmp.S +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (C) 1997, 1998 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, - see . */ - -#include - -;---------------------------------------- -; Name: __longjmp -; Description: Restore the current context -; as saved by a previous nr_setjmp -; Input: %o0: jmp_buf (ptr to) array to restore context from -; %o1: integer to return -; Output: %o0 = 0 the first time we're called, or -; whatever longjmp returns later -; Side Effects: uses %g0, %g1 & %g2 -; CWP Depth: 0 -; - - .align 2 - .global __longjmp -__longjmp: - ; - ; The way we'll do this is by executing - ; RESTORE instructions until the old - ; return address matches. Then we'll - ; jump to where setjmp was called from. - ; - ; Since we're moving the window pointer - ; all over the place, we'll naturally - ; only use the %g registers. - ; - - mov %g0,%o0 ; %g0 -> jmp_buf - mov %g1,%o1 ; %g1 = return value - pfx jmpbuf_callersret - ld %g2,[%g0] ; %g2 = old return address -__longjmp_loop: - cmp %g2,%i7 ; Are we there yet? - skps cc_ne - br __longjmp_done - nop ; (delay slot) - - br __longjmp_loop - restore ; (delay slot) - ; - ; One might put in a watchdog counter here, to - ; prevent a runaway stack crawl... but what would that - ; accomplish? What error can we throw? To whom? - ; - -__longjmp_done: - pfx jmpbuf_l0 ; Restore local register l0 - ld %l0,[%g0] - pfx jmpbuf_l1 ; Restore local register l1 - ld %l1,[%g0] - pfx jmpbuf_l2 ; Restore local register l2 - ld %l2,[%g0] - pfx jmpbuf_l3 ; Restore local register l3 - ld %l3,[%g0] - pfx jmpbuf_l4 ; Restore local register l4 - ld %l4,[%g0] - pfx jmpbuf_l5 ; Restore local register l5 - ld %l5,[%g0] - pfx jmpbuf_l6 ; Restore local register l6 - ld %l6,[%g0] - pfx jmpbuf_l7 ; Restore local register l7 - ld %l7,[%g0] - pfx jmpbuf_i0 ; Restore input register i0 - ld %i0,[%g0] - pfx jmpbuf_i1 ; Restore input register i1 - ld %i1,[%g0] - pfx jmpbuf_i2 ; Restore input register i2 - ld %i2,[%g0] - pfx jmpbuf_i3 ; Restore input register i3 - ld %i3,[%g0] - pfx jmpbuf_i4 ; Restore input register i4 - ld %i4,[%g0] - pfx jmpbuf_i5 ; Restore input register i5 - ld %i5,[%g0] - pfx jmpbuf_jmpret - ld %o7,[%g0] ; set fake return address - jmp %o7 ; and kinda return there. - mov %o0,%g1 ; (delay slot) return value - -libc_hidden_def(__longjmp) diff --git a/libc/sysdeps/linux/nios/bits/endian.h b/libc/sysdeps/linux/nios/bits/endian.h deleted file mode 100644 index 34ea91f71..000000000 --- a/libc/sysdeps/linux/nios/bits/endian.h +++ /dev/null @@ -1,8 +0,0 @@ -/* nios is little-endian. */ - -#ifndef _ENDIAN_H -# error "Never use directly; include instead." -#endif - -/*mle */ -#define __BYTE_ORDER __LITTLE_ENDIAN diff --git a/libc/sysdeps/linux/nios/bits/fcntl.h b/libc/sysdeps/linux/nios/bits/fcntl.h deleted file mode 100644 index 36ca766f5..000000000 --- a/libc/sysdeps/linux/nios/bits/fcntl.h +++ /dev/null @@ -1,237 +0,0 @@ -/* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995, 1996, 1997, 1998 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, - see . */ - -#ifndef _FCNTL_H -# error "Never use directly; include instead." -#endif - - -#include -#ifdef __USE_GNU -# include -#endif - -/* open/fcntl - O_SYNC is only implemented on blocks devices and on files - located on an ext2 file system */ -#define O_ACCMODE 0003 -#define O_RDONLY 00 -#define O_WRONLY 01 -#define O_RDWR 02 -#define O_CREAT 0100 /* not fcntl */ -#define O_EXCL 0200 /* not fcntl */ -#define O_NOCTTY 0400 /* not fcntl */ -#define O_TRUNC 01000 /* not fcntl */ -#define O_APPEND 02000 -#define O_NONBLOCK 04000 -#define O_NDELAY O_NONBLOCK -#define O_SYNC 010000 -#define O_FSYNC O_SYNC -#define O_ASYNC 020000 - -#ifdef __USE_GNU -# define O_DIRECTORY 040000 /* Must be a directory. */ -# define O_NOFOLLOW 0100000 /* Do not follow links. */ -# define O_DIRECT 0200000 /* Direct disk access. */ -#endif - -/* For now Linux has synchronisity options for data and read operations. - We define the symbols here but let them do the same as O_SYNC since - this is a superset. */ -#if defined __USE_POSIX199309 || defined __USE_UNIX98 -# define O_DSYNC O_SYNC /* Synchronize data. */ -# define O_RSYNC O_SYNC /* Synchronize read operations. */ -#endif - -#ifdef __USE_LARGEFILE64 -# define O_LARGEFILE 0400000 -#endif - -/* Values for the second argument to `fcntl'. */ -#define F_DUPFD 0 /* Duplicate file descriptor. */ -#define F_GETFD 1 /* Get file descriptor flags. */ -#define F_SETFD 2 /* Set file descriptor flags. */ -#define F_GETFL 3 /* Get file status flags. */ -#define F_SETFL 4 /* Set file status flags. */ -#ifndef __USE_FILE_OFFSET64 -# define F_GETLK 5 /* Get record locking info. */ -# define F_SETLK 6 /* Set record locking info (non-blocking). */ -# define F_SETLKW 7 /* Set record locking info (blocking). */ -#else -# define F_GETLK F_GETLK64 /* Get record locking info. */ -# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/ -# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */ -#endif -#define F_GETLK64 12 /* Get record locking info. */ -#define F_SETLK64 13 /* Set record locking info (non-blocking). */ -#define F_SETLKW64 14 /* Set record locking info (blocking). */ - -#if defined __USE_BSD || defined __USE_XOPEN2K -# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */ -# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */ -#endif - -#ifdef __USE_GNU -# define F_SETSIG 10 /* Set number of signal to be sent. */ -# define F_GETSIG 11 /* Get number of signal to be sent. */ -#endif - -#ifdef __USE_GNU -# define F_SETLEASE 1024 /* Set a lease. */ -# define F_GETLEASE 1025 /* Enquire what lease is active. */ -# define F_NOTIFY 1026 /* Request notfications on a directory. */ -# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with - close-on-exit set on new fd. */ -# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */ -# define F_GETPIPE_SZ 1032 /* Get pipe page size array. */ -#endif - -/* For F_[GET|SET]FL. */ -#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ - -/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ -#define F_RDLCK 0 /* Read lock. */ -#define F_WRLCK 1 /* Write lock. */ -#define F_UNLCK 2 /* Remove lock. */ - -/* for old implementation of bsd flock () */ -#define F_EXLCK 4 /* or 3 */ -#define F_SHLCK 8 /* or 4 */ - -#ifdef __USE_BSD -/* Operations for bsd flock(), also used by the kernel implementation */ -# define LOCK_SH 1 /* shared lock */ -# define LOCK_EX 2 /* exclusive lock */ -# define LOCK_NB 4 /* or'd with one of the above to prevent - blocking */ -# define LOCK_UN 8 /* remove lock */ -#endif - -#ifdef __USE_GNU -# define LOCK_MAND 32 /* This is a mandatory flock: */ -# define LOCK_READ 64 /* ... which allows concurrent read operations. */ -# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */ -# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */ -#endif - -#ifdef __USE_GNU -/* Types of directory notifications that may be requested with F_NOTIFY. */ -# define DN_ACCESS 0x00000001 /* File accessed. */ -# define DN_MODIFY 0x00000002 /* File modified. */ -# define DN_CREATE 0x00000004 /* File created. */ -# define DN_DELETE 0x00000008 /* File removed. */ -# define DN_RENAME 0x00000010 /* File renamed. */ -# define DN_ATTRIB 0x00000020 /* File changed attibutes. */ -# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */ -#endif - -struct flock - { - short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ -#ifndef __USE_FILE_OFFSET64 - __off_t l_start; /* Offset where the lock begins. */ - __off_t l_len; /* Size of the locked area; zero means until EOF. */ -#else - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ -#endif - __pid_t l_pid; /* Process holding the lock. */ - }; - -#ifdef __USE_LARGEFILE64 -struct flock64 - { - short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ - short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ - __off64_t l_start; /* Offset where the lock begins. */ - __off64_t l_len; /* Size of the locked area; zero means until EOF. */ - __pid_t l_pid; /* Process holding the lock. */ - }; -#endif - -/* Define some more compatibility macros to be backward compatible with - BSD systems which did not managed to hide these kernel macros. */ -#ifdef __USE_BSD -# define FAPPEND O_APPEND -# define FFSYNC O_FSYNC -# define FASYNC O_ASYNC -# define FNONBLOCK O_NONBLOCK -# define FNDELAY O_NDELAY -#endif /* Use BSD. */ - -/* Advise to `posix_fadvise'. */ -#ifdef __USE_XOPEN2K -# define POSIX_FADV_NORMAL 0 /* No further special treatment. */ -# define POSIX_FADV_RANDOM 1 /* Expect random page references. */ -# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ -# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ -# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ -#endif - - -#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__ -/* Flags for SYNC_FILE_RANGE. */ -# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages - in the range before performing the - write. */ -# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those - dirty pages in the range which are - not presently under writeback. */ -# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in - the range after performing the - write. */ - -/* Flags for SPLICE and VMSPLICE. */ -# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */ -# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing - (but we may still block on the fd - we splice from/to). */ -# define SPLICE_F_MORE 4 /* Expect more data. */ -# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ -#endif - -__BEGIN_DECLS - -#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__ - -/* Provide kernel hint to read ahead. */ -extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) - __THROW; - - -/* Selective file content synch'ing. */ -extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to, - unsigned int __flags); - -/* Splice address range into a pipe. */ -extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, - size_t __count, unsigned int __flags); - -/* Splice two files together. */ -extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, - __off64_t *__offout, size_t __len, - unsigned int __flags); - -/* In-kernel implementation of tee for pipe buffers. */ -extern ssize_t tee (int __fdin, int __fdout, size_t __len, - unsigned int __flags); - -#endif -__END_DECLS - diff --git a/libc/sysdeps/linux/nios/bits/kernel_types.h b/libc/sysdeps/linux/nios/bits/kernel_types.h deleted file mode 100644 index e66f42d7a..000000000 --- a/libc/sysdeps/linux/nios/bits/kernel_types.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Note that we use the exact same include guard #define names - * as asm/posix_types.h. This will avoid gratuitous conflicts - * with the posix_types.h kernel header, and will ensure that - * our private content, and not the kernel header, will win. - * -Erik - */ -#ifndef __ARCH_NIOS_POSIX_TYPES_H -#define __ARCH_NIOS_POSIX_TYPES_H - -typedef unsigned short __kernel_dev_t; -typedef unsigned long __kernel_ino_t; -typedef unsigned short __kernel_mode_t; -typedef unsigned short __kernel_nlink_t; -typedef long __kernel_off_t; -typedef int __kernel_pid_t; -typedef unsigned short __kernel_ipc_pid_t; -typedef unsigned short __kernel_uid_t; -typedef unsigned short __kernel_gid_t; -typedef unsigned int __kernel_size_t; -typedef int __kernel_ssize_t; -typedef int __kernel_ptrdiff_t; -typedef long __kernel_time_t; -typedef long __kernel_suseconds_t; -typedef long __kernel_clock_t; -typedef int __kernel_daddr_t; -typedef char * __kernel_caddr_t; -typedef unsigned short __kernel_uid16_t; -typedef unsigned short __kernel_gid16_t; -typedef unsigned int __kernel_uid32_t; -typedef unsigned int __kernel_gid32_t; -typedef unsigned short __kernel_old_uid_t; -typedef unsigned short __kernel_old_gid_t; -typedef long long __kernel_loff_t; - -typedef struct { -#ifdef __USE_ALL - int val[2]; -#else - int __val[2]; -#endif -} __kernel_fsid_t; - -#endif /* __ARCH_NIOS2_POSIX_TYPES_H */ diff --git a/libc/sysdeps/linux/nios/bits/mathdef.h b/libc/sysdeps/linux/nios/bits/mathdef.h deleted file mode 100644 index 478ceed15..000000000 --- a/libc/sysdeps/linux/nios/bits/mathdef.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (C) 1999, 2000, 2004 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#if !defined _MATH_H && !defined _COMPLEX_H -# error "Never use directly; include instead" -#endif - -#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF -# define _MATH_H_MATHDEF 1 - -/* GCC does not promote `float' values to `double'. */ -typedef float float_t; /* `float' expressions are evaluated as - `float'. */ -typedef double double_t; /* `double' expressions are evaluated as - `double'. */ - -/* The values returned by `ilogb' for 0 and NaN respectively. */ -# define FP_ILOGB0 (-2147483647) -# define FP_ILOGBNAN (2147483647) - -#endif /* ISO C99 */ - -#ifndef __NO_LONG_DOUBLE_MATH -/* Signal that we do not really have a `long double'. This disables the - declaration of all the `long double' function variants. */ -/* XXX The FPA does support this but the patterns in GCC are currently - turned off. */ -# define __NO_LONG_DOUBLE_MATH 1 -#endif diff --git a/libc/sysdeps/linux/nios/bits/setjmp.h b/libc/sysdeps/linux/nios/bits/setjmp.h deleted file mode 100644 index 81669bba7..000000000 --- a/libc/sysdeps/linux/nios/bits/setjmp.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (C) 1997, 1998 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* Define the machine-dependent type `jmp_buf'. Nios version. */ -#ifndef _BITS_SETJMP_H -#define _BITS_SETJMP_H 1 - -#if !defined _SETJMP_H && !defined _PTHREAD_H -# error "Never include directly; use instead." -#endif - -#include - -typedef struct - { - /* There are eight 4-byte local registers saved. */ - long int __lregs[8]; - - /* There are six 4-byte input registers saved. */ - long int __iregs[6]; - - /* The SP, return address to caller (also for longjmp) - and return address of caller are saved. */ - int *__sp; - int *__jmpret; - int *__callersret; - - } __jmp_buf[1]; - -#endif /* bits/setjmp.h */ diff --git a/libc/sysdeps/linux/nios/bits/sigcontextinfo.h b/libc/sysdeps/linux/nios/bits/sigcontextinfo.h deleted file mode 100644 index 96739e632..000000000 --- a/libc/sysdeps/linux/nios/bits/sigcontextinfo.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek , 1999. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#define SIGCONTEXT struct sigcontext * -#define SIGCONTEXT_EXTRA_ARGS -#define GET_PC(ctx) ((void *) ((ctx)->regs.pc)) - -/* now way for nios to do GET_FRAME(ctx), it is not saved in ctx */ -#define GET_STACK(ctx) ((void *) (ctx)->regs.u_regs[14]) -#define CALL_SIGHANDLER(handler, signo, ctx) \ - (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/libc/sysdeps/linux/nios/bits/stackinfo.h b/libc/sysdeps/linux/nios/bits/stackinfo.h deleted file mode 100644 index 0d4eeb8a4..000000000 --- a/libc/sysdeps/linux/nios/bits/stackinfo.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (C) 1999 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* This file contains a bit of information about the stack allocation - of the processor. */ - -#ifndef _STACKINFO_H -#define _STACKINFO_H 1 - -/* On nios II the stack grows down. */ -#define _STACK_GROWS_DOWN 1 - -#endif /* stackinfo.h */ diff --git a/libc/sysdeps/linux/nios/bits/stat.h b/libc/sysdeps/linux/nios/bits/stat.h deleted file mode 100644 index e4ed005a4..000000000 --- a/libc/sysdeps/linux/nios/bits/stat.h +++ /dev/null @@ -1,167 +0,0 @@ -/* Copyright (C) 1992,95,96,97,98,99,2000,2001 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_STAT_H -# error "Never include directly; use instead." -#endif - -/* Versions of the `struct stat' data structure. */ -#define _STAT_VER_LINUX_OLD 1 -#define _STAT_VER_KERNEL 1 -#define _STAT_VER_SVR4 2 -#define _STAT_VER_LINUX 3 -#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */ - -/* Versions of the `xmknod' interface. */ -#define _MKNOD_VER_LINUX 1 -#define _MKNOD_VER_SVR4 2 -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */ - - -struct stat - { - __dev_t st_dev; /* Device. */ - unsigned short int __pad1; -#ifndef __USE_FILE_OFFSET64 - __ino_t st_ino; /* File serial number. */ -#else - __ino_t __st_ino; /* 32bit file serial number. */ -#endif - __mode_t st_mode; /* File mode. */ - __nlink_t st_nlink; /* Link count. */ - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - __dev_t st_rdev; /* Device number, if device. */ - unsigned short int __pad2; -#ifndef __USE_FILE_OFFSET64 - __off_t st_size; /* Size of file, in bytes. */ -#else - __off64_t st_size; /* Size of file, in bytes. */ -#endif - __blksize_t st_blksize; /* Optimal block size for I/O. */ - -#ifndef __USE_FILE_OFFSET64 - __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ -#else - __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ -#endif -#ifdef __USE_MISC - /* Nanosecond resolution timestamps are stored in a format - equivalent to 'struct timespec'. This is the type used - whenever possible but the Unix namespace rules do not allow the - identifier 'timespec' to appear in the header. - Therefore we have to handle the use of this header in strictly - standard-compliant sources special. */ - struct timespec st_atim; /* Time of last access. */ - struct timespec st_mtim; /* Time of last modification. */ - struct timespec st_ctim; /* Time of last status change. */ -# define st_atime st_atim.tv_sec /* Backward compatibility. */ -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec -#else - __time_t st_atime; /* Time of last access. */ - unsigned long int st_atimensec; /* Nscecs of last access. */ - __time_t st_mtime; /* Time of last modification. */ - unsigned long int st_mtimensec; /* Nsecs of last modification. */ - __time_t st_ctime; /* Time of last status change. */ - unsigned long int st_ctimensec; /* Nsecs of last status change. */ -#endif -#ifndef __USE_FILE_OFFSET64 - unsigned long int __unused4; - unsigned long int __unused5; -#else - __ino64_t st_ino; /* File serial number. */ -#endif - }; - -#ifdef __USE_LARGEFILE64 -struct stat64 - { - __dev_t st_dev; /* Device. */ - unsigned short int __pad1; - - __ino_t __st_ino; /* 32bit file serial number. */ - __mode_t st_mode; /* File mode. */ - __nlink_t st_nlink; /* Link count. */ - __uid_t st_uid; /* User ID of the file's owner. */ - __gid_t st_gid; /* Group ID of the file's group.*/ - __dev_t st_rdev; /* Device number, if device. */ - unsigned short int __pad2; - __off64_t st_size; /* Size of file, in bytes. */ - __blksize_t st_blksize; /* Optimal block size for I/O. */ - - __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ -#ifdef __USE_MISC - /* Nanosecond resolution timestamps are stored in a format - equivalent to 'struct timespec'. This is the type used - whenever possible but the Unix namespace rules do not allow the - identifier 'timespec' to appear in the header. - Therefore we have to handle the use of this header in strictly - standard-compliant sources special. */ - struct timespec st_atim; /* Time of last access. */ - struct timespec st_mtim; /* Time of last modification. */ - struct timespec st_ctim; /* Time of last status change. */ -#else - __time_t st_atime; /* Time of last access. */ - unsigned long int st_atimensec; /* Nscecs of last access. */ - __time_t st_mtime; /* Time of last modification. */ - unsigned long int st_mtimensec; /* Nsecs of last modification. */ - __time_t st_ctime; /* Time of last status change. */ - unsigned long int st_ctimensec; /* Nsecs of last status change. */ -#endif - __ino64_t st_ino; /* File serial number. */ - }; -#endif - -/* Tell code we have these members. */ -#define _STATBUF_ST_BLKSIZE -#define _STATBUF_ST_RDEV -/* Nanosecond resolution time values are supported. */ -#define _STATBUF_ST_NSEC - -/* 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. */ - -/* POSIX.1b objects. Note that these macros always evaluate to zero. But - they do it by enforcing the correct use of the macros. */ -#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) -#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) -#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) - -/* 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. */ - -#ifdef __USE_ATFILE -# define UTIME_NOW ((1l << 30) - 1l) -# define UTIME_OMIT ((1l << 30) - 2l) -#endif diff --git a/libc/sysdeps/linux/nios/bits/syscalls.h b/libc/sysdeps/linux/nios/bits/syscalls.h deleted file mode 100644 index c2b6b9735..000000000 --- a/libc/sysdeps/linux/nios/bits/syscalls.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _BITS_SYSCALLS_H -#define _BITS_SYSCALLS_H -#ifndef _SYSCALL_H -# error "Never use directly; include instead." -#endif - -#include -/* Do something very evil for now. Until we include our out syscall - * macros, short circuit bits/syscall.h and use asm/unistd.h instead */ -#include - -#endif /* _BITS_SYSCALLS_H */ - diff --git a/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h b/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h deleted file mode 100644 index 293cc9b00..000000000 --- a/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Track misc arch-specific features that aren't config options - */ - -#ifndef _BITS_UCLIBC_ARCH_FEATURES_H -#define _BITS_UCLIBC_ARCH_FEATURES_H - -/* instruction used when calling abort() to kill yourself */ -/*#define __UCLIBC_ABORT_INSTRUCTION__ "asm instruction"*/ -#undef __UCLIBC_ABORT_INSTRUCTION__ - -/* can your target use syscall6() for mmap ? */ -#undef __UCLIBC_MMAP_HAS_6_ARGS__ - -/* does your target align 64bit values in register pairs ? (32bit arches only) */ -#undef __UCLIBC_SYSCALL_ALIGN_64BIT__ - -/* does your target have a broken create_module() ? */ -#undef __UCLIBC_BROKEN_CREATE_MODULE__ - -/* does your target have to worry about older [gs]etrlimit() ? */ -#undef __UCLIBC_HANDLE_OLDER_RLIMIT__ - -/* does your target have an asm .set ? */ -#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__ - -/* define if target supports .weak */ -#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__ - -/* define if target supports .weakext */ -#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__ - -/* define if target supports CFI pseudo ops */ -#undef __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__ - -/* define if target supports IEEE signed zero floats */ -#define __UCLIBC_HAVE_SIGNED_ZERO__ - -/* only weird assemblers generally need this */ -#undef __UCLIBC_ASM_LINE_SEP__ - -#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */ diff --git a/libc/sysdeps/linux/nios/bits/wordsize.h b/libc/sysdeps/linux/nios/bits/wordsize.h deleted file mode 100644 index ca82fd7d4..000000000 --- a/libc/sysdeps/linux/nios/bits/wordsize.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (C) 1999 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#define __WORDSIZE 32 diff --git a/libc/sysdeps/linux/nios/brk.c b/libc/sysdeps/linux/nios/brk.c deleted file mode 100644 index 2514262c6..000000000 --- a/libc/sysdeps/linux/nios/brk.c +++ /dev/null @@ -1,43 +0,0 @@ -/* brk system call for Linux/Nios2. - Copyright (C) 1995, 1996, 2000 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include - -/* This must be initialized data because commons can't have aliases. */ -void *__curbrk attribute_hidden = 0; - -int brk (void *addr) -{ - void *newbrk; - register int g1 __asm__("%g1") = __NR_brk; - register void *o0 __asm__("%o0") = addr; - - __asm__ __volatile__ ("trap 63\n\t" : "=r"(newbrk) : "0"(o0), "r"(g1)); - - __curbrk = newbrk; - - if (newbrk < addr) { - __set_errno (ENOMEM); - return -1; - } - - return 0; -} -libc_hidden_def(brk) diff --git a/libc/sysdeps/linux/nios/bsd-_setjmp.S b/libc/sysdeps/linux/nios/bsd-_setjmp.S deleted file mode 100644 index f2f0f2396..000000000 --- a/libc/sysdeps/linux/nios/bsd-_setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* _setjmp in setjmp.S */ \ No newline at end of file diff --git a/libc/sysdeps/linux/nios/bsd-setjmp.S b/libc/sysdeps/linux/nios/bsd-setjmp.S deleted file mode 100644 index 36f2bab1c..000000000 --- a/libc/sysdeps/linux/nios/bsd-setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* setjmp in setjmp.S */ \ No newline at end of file diff --git a/libc/sysdeps/linux/nios/clone.S b/libc/sysdeps/linux/nios/clone.S deleted file mode 100644 index 9641d68b0..000000000 --- a/libc/sysdeps/linux/nios/clone.S +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@tamu.edu). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* clone() is even more special than fork() as it mucks with stacks - and invokes a function in the right context after its all over. */ - -#include -#include -#include "NM_Macros.S" - -/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ - - .text - .align 2 - .globl clone - .type clone,@function - -clone: - save %sp,-16 - - MOVIP %l0, -EINVAL - /* sanity check arguments */ - skprnz %i0 /* no NULL function pointers */ - br CLONE_ERROR_LABEL - mov %o0, %i2 - - skprnz %i1 /* no NULL stack pointers */ - br CLONE_ERROR_LABEL - mov %o1, %i1 - - /* Do the system call */ - MOVIP %g1, __NR_clone - trap 63 - - /* if ret >=0? */ - cmpi %o0, 0 - skps cc_pl - br CLONE_ERROR_LABEL - mov %l0, %o0 - - /* Start thread */ - skprz %o1 - br __thread_start - nop - mov %i0, %o0 - ret - restore - -CLONE_ERROR_LABEL: - neg %l0 - MOVIA %g1, __errno_location@h - call %g1 - nop - st [%o0], %l0 /* store errno */ - - xor %i0, %i0 - dec %i0 /* retval=-1 */ - ret - restore - - .size clone, .-clone - - .type __thread_start,@function - -__thread_start: - call %i0 - mov %o0, %i3 - MOVIA %g1, _exit@h - call %g1 - nop - - .size __thread_start, .-__thread_start diff --git a/libc/sysdeps/linux/nios/crt1.S b/libc/sysdeps/linux/nios/crt1.S deleted file mode 100644 index 683c5c03e..000000000 --- a/libc/sysdeps/linux/nios/crt1.S +++ /dev/null @@ -1,55 +0,0 @@ -/* 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, see . */ - -#include -#include -#include "NM_Macros.S" -#define __ASSEMBLY__ -#include /* for REGWIN_SZ */ - - .global _start - .type __start,@function - .weak _init - .weak _fini - .type main,@function - .type __uClibc_main,@function - - .text - -_start: - nop - nop - - MOVIA %o0, main@h - lds %o1,[%sp, (REGWIN_SZ / 4) + 0] /* main's argc */ - lds %o2,[%sp, (REGWIN_SZ / 4) + 1] /* main's argv */ - - MOVIA %o3, _init@h - MOVIA %o4, _fini@h - mov %o5, %i0 /* rtld_fini */ - mov %o6, %sp /* stack_end */ - MOVIA %o7, __uClibc_main@h - - call %o7 - nop - - - /* If that didn't kill us, ... */ -__exit: - MOVIP %g1, __NR_exit - trap 63 diff --git a/libc/sysdeps/linux/nios/crtbegin.c b/libc/sysdeps/linux/nios/crtbegin.c deleted file mode 100644 index ac3f23f84..000000000 --- a/libc/sysdeps/linux/nios/crtbegin.c +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -/* -static void (*__CTOR_LIST__[1]) __P((void)) - __attribute__((__unused__)) - __attribute__((section(".ctors"))) = { (void *)0 }; - -static void (*__DTOR_LIST__[1]) __P((void)) - __attribute__((section(".dtors"))) = { (void *)-1 }; -*/ -extern void (*__DTOR_LIST__[]) __P((void)); -static void __do_global_dtors_aux __P((void)); - -static void -__do_global_dtors_aux() -{ - void (**p)(void) = __DTOR_LIST__ + 1; - - while (*p) - (**p++)(); -} - -static void dummy_fini(void) __attribute__((section(".trash"))); - -void -dummy_fini(void) -{ - static void (* volatile call__dtors)(void) = __do_global_dtors_aux; - /* - * Call global destructors. - */ - /* prevent function pointer constant propagation */ - __asm__ __volatile__ (".section .fini"); - (*call__dtors)(); - __asm__ __volatile__ (".section .trash"); - -} diff --git a/libc/sysdeps/linux/nios/crtend.c b/libc/sysdeps/linux/nios/crtend.c deleted file mode 100644 index 775eb0f9d..000000000 --- a/libc/sysdeps/linux/nios/crtend.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include -/* -static void (*__CTOR_END__[1]) __P((void)) - __attribute__((section(".ctors"))) = { (void *)-1 }; - -static void (*__DTOR_END__[1]) __P((void)) - __attribute__((__unused__)) - __attribute__((section(".dtors"))) = { (void *)0 }; -*/ -extern void (*__CTOR_END__[]) __P((void)); -static void __do_global_ctors_aux __P((void)); - -static void -__do_global_ctors_aux() -{ - void (**p)(void) = __CTOR_END__ - 1; - - while (*p) - (**p--)(); -} - -static void dummy_init(void) __attribute__((section(".trash"))); - -void -dummy_init(void) -{ - static smallint initialized; - static void (*volatile call__ctors)(void) = __do_global_ctors_aux; - /* - * Call global constructors. - * Arrange to call global destructors at exit. - */ - /* prevent function pointer constant propagation */ - __asm__ __volatile__ (".section .init"); - - if (!initialized) { - initialized = 1; - (*call__ctors)(); - } - __asm__ __volatile__ (".section .trash"); - -} \ No newline at end of file diff --git a/libc/sysdeps/linux/nios/fpu_control.h b/libc/sysdeps/linux/nios/fpu_control.h deleted file mode 100644 index 4ba51b5eb..000000000 --- a/libc/sysdeps/linux/nios/fpu_control.h +++ /dev/null @@ -1,98 +0,0 @@ -/* FPU control word bits. Nios2 version. - Copyright (C) 1996, 1997, 1998, 1999, 2000 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _FPU_CONTROL_H -#define _FPU_CONTROL_H - -/* MIPS FPU floating point control register bits. - * - * 31-25 -> floating point conditions code bits 7-1. These bits are only - * available in MIPS IV. - * 24 -> flush denormalized results to zero instead of - * causing unimplemented operation exception. This bit is only - * available for MIPS III and newer. - * 23 -> Condition bit - * 22-18 -> reserved (read as 0, write with 0) - * 17 -> cause bit for unimplemented operation - * 16 -> cause bit for invalid exception - * 15 -> cause bit for division by zero exception - * 14 -> cause bit for overflow exception - * 13 -> cause bit for underflow exception - * 12 -> cause bit for inexact exception - * 11 -> enable exception for invalid exception - * 10 -> enable exception for division by zero exception - * 9 -> enable exception for overflow exception - * 8 -> enable exception for underflow exception - * 7 -> enable exception for inexact exception - * 6 -> flag invalid exception - * 5 -> flag division by zero exception - * 4 -> flag overflow exception - * 3 -> flag underflow exception - * 2 -> flag inexact exception - * 1-0 -> rounding control - * - * - * Rounding Control: - * 00 - rounding to nearest (RN) - * 01 - rounding toward zero (RZ) - * 10 - rounding (up) toward plus infinity (RP) - * 11 - rounding (down)toward minus infinity (RM) - */ - -#include - -/* masking of interrupts */ -#define _FPU_MASK_V 0x0800 /* Invalid operation */ -#define _FPU_MASK_Z 0x0400 /* Division by zero */ -#define _FPU_MASK_O 0x0200 /* Overflow */ -#define _FPU_MASK_U 0x0100 /* Underflow */ -#define _FPU_MASK_I 0x0080 /* Inexact operation */ - -/* flush denormalized numbers to zero */ -#define _FPU_FLUSH_TZ 0x1000000 - -/* rounding control */ -#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ -#define _FPU_RC_ZERO 0x1 -#define _FPU_RC_UP 0x2 -#define _FPU_RC_DOWN 0x3 - -#define _FPU_RESERVED 0xfe3c0000 /* Reserved bits in cw */ - - -/* The fdlibm code requires strict IEEE double precision arithmetic, - and no interrupts for exceptions, rounding to nearest. */ - -#define _FPU_DEFAULT 0x00000000 - -/* IEEE: same as above, but exceptions */ -#define _FPU_IEEE 0x00000F80 - -/* Type of the control word. */ -typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); - -/* Macros for accessing the hardware control word. */ -#define _FPU_GETCW(cw) __asm__ ("cfc1 %0,$31" : "=r" (cw)) -#define _FPU_SETCW(cw) __asm__ ("ctc1 %0,$31" : : "r" (cw)) - -#if 0 -/* Default control word set at startup. */ -extern fpu_control_t __fpu_control; -#endif - -#endif /* fpu_control.h */ diff --git a/libc/sysdeps/linux/nios/jmpbuf-offsets.h b/libc/sysdeps/linux/nios/jmpbuf-offsets.h deleted file mode 100644 index 266a7e944..000000000 --- a/libc/sysdeps/linux/nios/jmpbuf-offsets.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2000-2006 Erik Andersen - * - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - */ - -#define jmpbuf_l0 0x00 -#define jmpbuf_l1 0x01 -#define jmpbuf_l2 0x02 -#define jmpbuf_l3 0x03 -#define jmpbuf_l4 0x04 -#define jmpbuf_l5 0x05 -#define jmpbuf_l6 0x06 -#define jmpbuf_l7 0x07 - -#define jmpbuf_i0 0x08 -#define jmpbuf_i1 0x09 -#define jmpbuf_i2 0x0a -#define jmpbuf_i3 0x0b -#define jmpbuf_i4 0x0c -#define jmpbuf_i5 0x0d - -#define jmpbuf_sp 0x0e -#define jmpbuf_jmpret 0x0f -#define jmpbuf_callersret 0x10 diff --git a/libc/sysdeps/linux/nios/jmpbuf-unwind.h b/libc/sysdeps/linux/nios/jmpbuf-unwind.h deleted file mode 100644 index 64cd55fab..000000000 --- a/libc/sysdeps/linux/nios/jmpbuf-unwind.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (C) 2000-2006 Erik Andersen - * - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - */ -#include - -/* Test if longjmp to JMPBUF would unwind the frame - containing a local variable at ADDRESS. */ -#define _JMPBUF_UNWINDS(jmpbuf, address) \ - ((void *) (address) < (void *) (jmpbuf)->__sp) diff --git a/libc/sysdeps/linux/nios/setjmp.S b/libc/sysdeps/linux/nios/setjmp.S deleted file mode 100644 index d1ff1a751..000000000 --- a/libc/sysdeps/linux/nios/setjmp.S +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (C) 1997, 1998 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, - see . */ - -#include -#include "NM_Macros.S" - -;---------------------------------------- -; Name: __sigsetjmp -; Description: Save the current context so -; a nr_longjmp works later. -; Input: %o0: jmp_buf: (ptr to) array to store context in -; Output: %o0 = 0 the first time we're called, or -; whatever longjmp returns later -; Side Effects: Uses %g0 -; CWP Depth: 0 -; - - .align 2 - .global _setjmp - -_setjmp: - br __sigsetjmp - movi %o1,0 ; (Delay slot) Set signal mask to zero - - .align 2 - .global setjmp - -setjmp: - MOVIP %o1,1 ; Set signal mask to 1 to save mask - - .align 2 - .global __sigsetjmp - -__sigsetjmp: - pfx jmpbuf_callersret ; present return address - st [%o0],%i7 - pfx jmpbuf_jmpret ; where the longjmp will later execute from - st [%o0],%o7 - pfx jmpbuf_sp ; Save stack pointer - st [%o0],%o6 - pfx jmpbuf_l0 ; Save local register l0 - st [%o0],%l0 - pfx jmpbuf_l1 ; Save local register l1 - st [%o0],%l1 - pfx jmpbuf_l2 ; Save local register l2 - st [%o0],%l2 - pfx jmpbuf_l3 ; Save local register l3 - st [%o0],%l3 - pfx jmpbuf_l4 ; Save local register l4 - st [%o0],%l4 - pfx jmpbuf_l5 ; Save local register l5 - st [%o0],%l5 - pfx jmpbuf_l6 ; Save local register l6 - st [%o0],%l6 - pfx jmpbuf_l7 ; Save local register l7 - st [%o0],%l7 - pfx jmpbuf_i0 ; Save input register i0 - st [%o0],%i0 - pfx jmpbuf_i1 ; Save input register i1 - st [%o0],%i1 - pfx jmpbuf_i2 ; Save input register i2 - st [%o0],%i2 - pfx jmpbuf_i3 ; Save input register i3 - st [%o0],%i3 - pfx jmpbuf_i4 ; Save input register i4 - st [%o0],%i4 - pfx jmpbuf_i5 ; Save input register i5 - st [%o0],%i5 - pfx %hi(__sigjmp_save@h) ; Load up %g0 with address - movi %g0,%lo(__sigjmp_save@h) - pfx %xhi(__sigjmp_save@h) - movhi %g0,%xlo(__sigjmp_save@h) - jmp %g0 - nop ; (delay slot) - - - - - - - - - - diff --git a/libc/sysdeps/linux/nios/sys/procfs.h b/libc/sysdeps/linux/nios/sys/procfs.h deleted file mode 100644 index edbd5a5ba..000000000 --- a/libc/sysdeps/linux/nios/sys/procfs.h +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright (C) 1996, 1997, 1999, 2000 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_PROCFS_H -#define _SYS_PROCFS_H 1 - -/* This is somehow modelled after the file of the same name on SysVr4 - systems. It provides a definition of the core file format for ELF - used on Linux. */ - -#include -#include -#include -#include -#include -#include -#include - -__BEGIN_DECLS - -#define ELF_NGREG 38 - -typedef struct - { - union - { - unsigned long pr_regs[32]; - double pr_dregs[16]; - } pr_fr; - unsigned long __unused; - unsigned long pr_fsr; - unsigned char pr_qcnt; - unsigned char pr_q_entrysize; - unsigned char pr_en; - unsigned int pr_q[64]; - } elf_fpregset_t; - -typedef unsigned long elf_greg_t; -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -struct elf_siginfo - { - int si_signo; /* Signal number. */ - int si_code; /* Extra code. */ - int si_errno; /* Errno. */ - }; - -/* Definitions to generate Intel SVR4-like core files. These mostly - have the same names as the SVR4 types with "elf_" tacked on the - front to prevent clashes with linux definitions, and the typedef - forms have been avoided. This is mostly like the SVR4 structure, - but more Linuxy, with things that Linux does not support and which - gdb doesn't really use excluded. Fields present but not used are - marked with "XXX". */ -struct elf_prstatus - { - struct elf_siginfo pr_info; /* Info associated with signal. */ - short int pr_cursig; /* Current signal. */ - unsigned long int pr_sigpend; /* Set of pending signals. */ - unsigned long int pr_sighold; /* Set of held signals. */ - __pid_t pr_pid; - __pid_t pr_ppid; - __pid_t pr_pgrp; - __pid_t pr_sid; - struct timeval pr_utime; /* User time. */ - struct timeval pr_stime; /* System time. */ - struct timeval pr_cutime; /* Cumulative user time. */ - struct timeval pr_cstime; /* Cumulative system time. */ - elf_gregset_t pr_reg; /* GP registers. */ - int pr_fpvalid; /* True if math copro being used. */ - }; - - -#define ELF_PRARGSZ (80) /* Number of chars for args */ - -struct elf_prpsinfo - { - char pr_state; /* Numeric process state. */ - char pr_sname; /* Char for pr_state. */ - char pr_zomb; /* Zombie. */ - char pr_nice; /* Nice val. */ - unsigned long int pr_flag; /* Flags. */ - unsigned short int pr_uid; - unsigned short int pr_gid; - int pr_pid, pr_ppid, pr_pgrp, pr_sid; - /* Lots missing */ - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ - }; - -/* Addresses. */ -typedef void *psaddr_t; - -/* Register sets. Linux has different names. */ -typedef elf_gregset_t prgregset_t; -typedef elf_fpregset_t prfpregset_t; - -/* We don't have any differences between processes and threads, - therefore have only one PID type. */ -typedef __pid_t lwpid_t; - - -typedef struct elf_prstatus prstatus_t; -typedef struct elf_prpsinfo prpsinfo_t; - -__END_DECLS - -#endif /* sys/procfs.h */ diff --git a/libc/sysdeps/linux/nios/sys/ucontext.h b/libc/sysdeps/linux/nios/sys/ucontext.h deleted file mode 100644 index 02781c7b2..000000000 --- a/libc/sysdeps/linux/nios/sys/ucontext.h +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright (C) 1998, 1999 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include -#include -/* - * Location of the users' stored registers relative to R0. - * Usage is as an index into a gregset_t array or as u.u_ar0[XX]. - */ -#define REG_PSR (0) -#define REG_PC (1) -#define REG_SPARE (2) -#define REG_WVALID (3) -#define REG_G1 (4) -#define REG_G2 (5) -#define REG_G3 (6) -#define REG_G4 (7) -#define REG_G5 (8) -#define REG_G6 (9) -#define REG_G7 (10) -#define REG_O0 (11) -#define REG_O1 (12) -#define REG_O2 (13) -#define REG_O3 (14) -#define REG_O4 (15) -#define REG_O5 (16) -#define REG_O6 (17) -#define REG_O7 (18) -#define REG_GLOBALS (19) - -/* - * A gregset_t is defined as an array type for compatibility with the reference - * source. This is important due to differences in the way the C language - * treats arrays and structures as parameters. - * - * Note that NGREG is really (sizeof (struct regs) / sizeof (greg_t)), - * but that the ABI defines it absolutely to be 21 (resp. 19). - */ - -#define NGREG 20 -typedef int greg_t; - -typedef greg_t gregset_t[NGREG]; - -/* - * The following structures define how a register window can appear on the - * stack. This structure is available (when required) through the `gwins' - * field of an mcontext (nested within ucontext). NIOS_MAXWINDOW is the - * maximum number of outstanding register windows defined in the NIOS - * architecture (*not* implementation). - */ -#define NIOS_MAXREGWINDOW 31 /* max windows in NIOS arch. */ -struct rwindow - { - greg_t rw_local[8]; /* locals */ - greg_t rw_in[8]; /* ins */ - }; - -#define rw_fp rw_in[6] /* frame pointer */ -#define rw_rtn rw_in[7] /* return address */ - -typedef struct gwindows - { - int wbcnt; - int *spbuf[NIOS_MAXREGWINDOW]; - struct rwindow wbuf[NIOS_MAXREGWINDOW]; - } gwindows_t; - -typedef struct - { - gregset_t gregs; /* general register set */ - gwindows_t *gwins; /* POSSIBLE pointer to register windows */ - } mcontext_t; - - -/* Userlevel context. */ -typedef struct ucontext - { - unsigned long uc_flags; - struct ucontext *uc_link; - __sigset_t uc_sigmask; - stack_t uc_stack; - mcontext_t uc_mcontext; - } ucontext_t; - -#endif /* sys/ucontext.h */ diff --git a/libc/sysdeps/linux/nios/vfork.S b/libc/sysdeps/linux/nios/vfork.S deleted file mode 100644 index 603a07e83..000000000 --- a/libc/sysdeps/linux/nios/vfork.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - * libc/sysdeps/linux/nios/vfork.S -- `vfork' syscall for linux/nios - * - * Copyright (C) 2004 Microtronix Datacom Ltd - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License. See the file COPYING.LIB in the main - * directory of this archive for more details. - * - * Written by Wentao Xu - */ - -#include -#include "NM_Macros.S" - -#ifndef __NR_vfork -#define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */ -#endif - - .text - .align 2 - .globl __vfork - .hidden __vfork - .type __vfork,@function -__vfork: - MOVIP %g1, __NR_vfork - trap 63 - - bgen %g1, 12 - not %g1 /* (unsigned long) -4096 */ - cmp %o0, %g1 - skps cc_hi - jmp %o7 - nop - -fix_errno: - neg %o0 - save %sp, -16 - MOVIA %g1, __errno_location@h - call %g1 - nop - st [%o0], %i0 /* store errno */ - - xor %i0, %i0 - subi %i0, 1 /* retval=-1 */ - ret - restore - -.size __vfork,.-__vfork -weak_alias(__vfork,vfork) -libc_hidden_def(vfork) diff --git a/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h deleted file mode 100644 index 91bbf8fea..000000000 --- a/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Machine-dependent pthreads configuration and inline functions. - ARM version. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Philip Blundell . - - 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, - see . */ - -#ifndef _PT_MACHINE_H -#define _PT_MACHINE_H 1 - -#include - -#ifndef PT_EI -# define PT_EI __extern_always_inline -#endif - -/* Spinlock implementation; required. */ -/* it is weird and dangerous to disable interrupt in userspace, but for nios - what else we can do before we have a swap like instruction? This is better - than nothing - */ -PT_EI long int -testandset (int *spinlock) -{ - unsigned int ret; - - __asm__ __volatile__("pfx 8\n\t" - "wrctl %1 ; disable interrupt\n\t" - "nop\n\t" - "nop\n\t" - "ld %0, [%2]\n\t" - "st [%2], %1\n\t" - "pfx 9\n\t" - "wrctl %1 ; enable interrupt\n\t" - "nop\n\t" - "nop\n\t" - : "=&r"(ret) - : "r"(1), "r"(spinlock) - : "memory"); - - return ret; -} - - -/* Get some notion of the current stack. Need not be exactly the top - of the stack, just something somewhere in the current frame. */ -#define CURRENT_STACK_FRAME stack_pointer -register char * stack_pointer __asm__ ("%sp"); - -/* nios needs more because of reg windows */ -#define THREAD_MANAGER_STACK_SIZE (32*1024) -#define STACK_SIZE (32*1024) - -#endif /* pt-machine.h */ -- cgit v1.2.3