diff options
Diffstat (limited to 'libc')
28 files changed, 0 insertions, 2075 deletions
diff --git a/libc/string/sh64/Makefile b/libc/string/sh64/Makefile deleted file mode 100644 index 0a95346fd..000000000 --- a/libc/string/sh64/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> -# -# 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.in -include $(top_srcdir)Makerules diff --git a/libc/string/sh64/memcpy.S b/libc/string/sh64/memcpy.S deleted file mode 100644 index 470784ecd..000000000 --- a/libc/string/sh64/memcpy.S +++ /dev/null @@ -1,205 +0,0 @@ -/* Cloned and hacked for uClibc by Paul Mundt, December 2003 */ -/* Modified by SuperH, Inc. September 2003 */ -! -! Fast SH memcpy -! -! by Toshiyasu Morita (tm@netcom.com) -! hacked by J"orn Rernnecke (joern.rennecke@superh.com) ("o for o-umlaut) -! SH5 code Copyright 2002 SuperH Ltd. -! -! Entry: ARG0: destination pointer -! ARG1: source pointer -! ARG2: byte count -! -! Exit: RESULT: destination pointer -! any other registers in the range r0-r7: trashed -! -! Notes: Usually one wants to do small reads and write a longword, but -! unfortunately it is difficult in some cases to concatanate bytes -! into a longword on the SH, so this does a longword read and small -! writes. -! -! This implementation makes two assumptions about how it is called: -! -! 1.: If the byte count is nonzero, the address of the last byte to be -! copied is unsigned greater than the address of the first byte to -! be copied. This could be easily swapped for a signed comparison, -! but the algorithm used needs some comparison. -! -! 2.: When there are two or three bytes in the last word of an 11-or-more -! bytes memory chunk to b copied, the rest of the word can be read -! without side effects. -! This could be easily changed by increasing the minumum size of -! a fast memcpy and the amount subtracted from r7 before L_2l_loop be 2, -! however, this would cost a few extra cyles on average. -! For SHmedia, the assumption is that any quadword can be read in its -! enirety if at least one byte is included in the copy. -! - -#include <features.h> - - .section .text..SHmedia32,"ax" - .globl memcpy - .type memcpy, @function - .align 5 - -memcpy: - -#define LDUAQ(P,O,D0,D1) ldlo.q P,O,D0; ldhi.q P,O+7,D1 -#define STUAQ(P,O,D0,D1) stlo.q P,O,D0; sthi.q P,O+7,D1 -#define LDUAL(P,O,D0,D1) ldlo.l P,O,D0; ldhi.l P,O+3,D1 -#define STUAL(P,O,D0,D1) stlo.l P,O,D0; sthi.l P,O+3,D1 - - ld.b r3,0,r63 - pta/l Large,tr0 - movi 25,r0 - bgeu/u r4,r0,tr0 - nsb r4,r0 - shlli r0,5,r0 - movi (L1-L0+63*32 + 1) & 0xffff,r1 - sub r1, r0, r0 -L0: ptrel r0,tr0 - add r2,r4,r5 - ptabs r18,tr1 - add r3,r4,r6 - blink tr0,r63 - -/* Rearranged to make cut2 safe */ - .balign 8 -L4_7: /* 4..7 byte memcpy cntd. */ - stlo.l r2, 0, r0 - or r6, r7, r6 - sthi.l r5, -1, r6 - stlo.l r5, -4, r6 - blink tr1,r63 - - .balign 8 -L1: /* 0 byte memcpy */ - nop - blink tr1,r63 - nop - nop - nop - nop - -L2_3: /* 2 or 3 byte memcpy cntd. */ - st.b r5,-1,r6 - blink tr1,r63 - - /* 1 byte memcpy */ - ld.b r3,0,r0 - st.b r2,0,r0 - blink tr1,r63 - -L8_15: /* 8..15 byte memcpy cntd. */ - stlo.q r2, 0, r0 - or r6, r7, r6 - sthi.q r5, -1, r6 - stlo.q r5, -8, r6 - blink tr1,r63 - - /* 2 or 3 byte memcpy */ - ld.b r3,0,r0 - ld.b r2,0,r63 - ld.b r3,1,r1 - st.b r2,0,r0 - pta/l L2_3,tr0 - ld.b r6,-1,r6 - st.b r2,1,r1 - blink tr0, r63 - - /* 4 .. 7 byte memcpy */ - LDUAL (r3, 0, r0, r1) - pta L4_7, tr0 - ldlo.l r6, -4, r7 - or r0, r1, r0 - sthi.l r2, 3, r0 - ldhi.l r6, -1, r6 - blink tr0, r63 - - /* 8 .. 15 byte memcpy */ - LDUAQ (r3, 0, r0, r1) - pta L8_15, tr0 - ldlo.q r6, -8, r7 - or r0, r1, r0 - sthi.q r2, 7, r0 - ldhi.q r6, -1, r6 - blink tr0, r63 - - /* 16 .. 24 byte memcpy */ - LDUAQ (r3, 0, r0, r1) - LDUAQ (r3, 8, r8, r9) - or r0, r1, r0 - sthi.q r2, 7, r0 - or r8, r9, r8 - sthi.q r2, 15, r8 - ldlo.q r6, -8, r7 - ldhi.q r6, -1, r6 - stlo.q r2, 8, r8 - stlo.q r2, 0, r0 - or r6, r7, r6 - sthi.q r5, -1, r6 - stlo.q r5, -8, r6 - blink tr1,r63 - -Large: - ld.b r2, 0, r63 - pta/l Loop_ua, tr1 - ori r3, -8, r7 - sub r2, r7, r22 - sub r3, r2, r6 - add r2, r4, r5 - ldlo.q r3, 0, r0 - addi r5, -16, r5 - movi 64+8, r27 /* could subtract r7 from that. */ - stlo.q r2, 0, r0 - sthi.q r2, 7, r0 - ldx.q r22, r6, r0 - bgtu/l r27, r4, tr1 - - addi r5, -48, r27 - pta/l Loop_line, tr0 - addi r6, 64, r36 - addi r6, -24, r19 - addi r6, -16, r20 - addi r6, -8, r21 - -Loop_line: - ldx.q r22, r36, r63 - alloco r22, 32 - addi r22, 32, r22 - ldx.q r22, r19, r23 - sthi.q r22, -25, r0 - ldx.q r22, r20, r24 - ldx.q r22, r21, r25 - stlo.q r22, -32, r0 - ldx.q r22, r6, r0 - sthi.q r22, -17, r23 - sthi.q r22, -9, r24 - sthi.q r22, -1, r25 - stlo.q r22, -24, r23 - stlo.q r22, -16, r24 - stlo.q r22, -8, r25 - bgeu r27, r22, tr0 - -Loop_ua: - addi r22, 8, r22 - sthi.q r22, -1, r0 - stlo.q r22, -8, r0 - ldx.q r22, r6, r0 - bgtu/l r5, r22, tr1 - - add r3, r4, r7 - ldlo.q r7, -8, r1 - sthi.q r22, 7, r0 - ldhi.q r7, -1, r7 - ptabs r18,tr1 - stlo.q r22, 0, r0 - or r1, r7, r1 - sthi.q r5, 15, r1 - stlo.q r5, 8, r1 - blink tr1, r63 - - .size memcpy,.-memcpy - -libc_hidden_def(memcpy) diff --git a/libc/string/sh64/memset.S b/libc/string/sh64/memset.S deleted file mode 100644 index 1b8812cd6..000000000 --- a/libc/string/sh64/memset.S +++ /dev/null @@ -1,97 +0,0 @@ -/* Cloned and hacked for uClibc by Paul Mundt, December 2003 */ -/* Modified by SuperH, Inc. September 2003 */ -! -! Fast SH memset -! -! by Toshiyasu Morita (tm@netcom.com) -! -! SH5 code by J"orn Rennecke (joern.rennecke@superh.com) -! Copyright 2002 SuperH Ltd. -! - -#include <features.h> -#include <endian.h> - -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define SHHI shlld -#define SHLO shlrd -#else -#define SHHI shlrd -#define SHLO shlld -#endif - - .section .text..SHmedia32,"ax" - .globl memset - .type memset, @function - - .align 5 - -memset: - pta/l multiquad, tr0 - andi r2, 7, r22 - ptabs r18, tr2 - mshflo.b r3,r3,r3 - add r4, r22, r23 - mperm.w r3, r63, r3 /* Fill pattern now in every byte of r3 */ - - movi 8, r9 - bgtu/u r23, r9, tr0 /* multiquad */ - - beqi/u r4, 0, tr2 /* Return with size 0 - ensures no mem accesses */ - ldlo.q r2, 0, r7 - shlli r4, 2, r4 - movi -1, r8 - SHHI r8, r4, r8 - SHHI r8, r4, r8 - mcmv r7, r8, r3 - stlo.q r2, 0, r3 - blink tr2, r63 - -multiquad: - pta/l lastquad, tr0 - stlo.q r2, 0, r3 - shlri r23, 3, r24 - add r2, r4, r5 - beqi/u r24, 1, tr0 /* lastquad */ - pta/l loop, tr1 - sub r2, r22, r25 - andi r5, -8, r20 /* calculate end address and */ - addi r20, -7*8, r8 /* loop end address; This might overflow, so we need - to use a different test before we start the loop - */ - bge/u r24, r9, tr1 /* loop */ - st.q r25, 8, r3 - st.q r20, -8, r3 - shlri r24, 1, r24 - beqi/u r24, 1, tr0 /* lastquad */ - st.q r25, 16, r3 - st.q r20, -16, r3 - beqi/u r24, 2, tr0 /* lastquad */ - st.q r25, 24, r3 - st.q r20, -24, r3 -lastquad: - sthi.q r5, -1, r3 - blink tr2,r63 - -loop: -!!! alloco r25, 32 /* QQQ comment out for short-term fix to SHUK #3895. - QQQ commenting out is locically correct, but sub-optimal - QQQ Sean McGoogan - 4th April 2003. */ - st.q r25, 8, r3 - st.q r25, 16, r3 - st.q r25, 24, r3 - st.q r25, 32, r3 - addi r25, 32, r25 - bgeu/l r8, r25, tr1 /* loop */ - - st.q r20, -40, r3 - st.q r20, -32, r3 - st.q r20, -24, r3 - st.q r20, -16, r3 - st.q r20, -8, r3 - sthi.q r5, -1, r3 - blink tr2,r63 - - .size memset,.-memset - -libc_hidden_def(memset) diff --git a/libc/string/sh64/strcpy.S b/libc/string/sh64/strcpy.S deleted file mode 100644 index f317707b7..000000000 --- a/libc/string/sh64/strcpy.S +++ /dev/null @@ -1,102 +0,0 @@ -/* Cloned and hacked for uClibc by Paul Mundt, December 2003 */ -/* Modified by SuperH, Inc. September 2003 */ -! Entry: arg0: destination -! arg1: source -! Exit: result: destination -! -! SH5 code Copyright 2002 SuperH Ltd. - -#include <features.h> -#include <endian.h> - -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define SHHI shlld -#define SHLO shlrd -#else -#define SHHI shlrd -#define SHLO shlld -#endif - - .section .text..SHmedia32,"ax" - .globl strcpy - .type strcpy, @function - .align 5 - -strcpy: - - pta/l shortstring,tr1 - ldlo.q r3,0,r4 - ptabs r18,tr4 - shlli r3,3,r7 - addi r2, 8, r0 - mcmpeq.b r4,r63,r6 - SHHI r6,r7,r6 - bnei/u r6,0,tr1 /* shortstring */ - pta/l no_lddst, tr2 - ori r3,-8,r23 - sub r2, r23, r0 - sub r3, r2, r21 - addi r21, 8, r20 - ldx.q r0, r21, r5 - pta/l loop, tr0 - ori r2,-8,r22 - mcmpeq.b r5, r63, r6 - bgt/u r22, r23, tr2 /* no_lddst */ - - /* r22 < r23 : Need to do a load from the destination. */ - /* r22 == r23 : Doesn't actually need to load from destination, */ - /* but still can be handled here. */ - ldlo.q r2, 0, r9 - movi -1, r8 - SHLO r8, r7, r8 - mcmv r4, r8, r9 - stlo.q r2, 0, r9 - beqi/l r6, 0, tr0 /* loop */ - - add r5, r63, r4 - addi r0, 8, r0 - blink tr1, r63 /* shortstring */ -no_lddst: - /* r22 > r23: note that for r22 == r23 the sthi.q would clobber */ - /* bytes before the destination region. */ - stlo.q r2, 0, r4 - SHHI r4, r7, r4 - sthi.q r0, -1, r4 - beqi/l r6, 0, tr0 /* loop */ - - add r5, r63, r4 - addi r0, 8, r0 -shortstring: -#if __BYTE_ORDER != __LITTLE_ENDIAN - pta/l shortstring2,tr1 - byterev r4,r4 -#endif -shortstring2: - st.b r0,-8,r4 - andi r4,0xff,r5 - shlri r4,8,r4 - addi r0,1,r0 - bnei/l r5,0,tr1 - blink tr4,r63 /* return */ - - .balign 8 -loop: - stlo.q r0, 0, r5 - ldx.q r0, r20, r4 - addi r0, 16, r0 - sthi.q r0, -9, r5 - mcmpeq.b r4, r63, r6 - bnei/u r6, 0, tr1 /* shortstring */ - ldx.q r0, r21, r5 - stlo.q r0, -8, r4 - sthi.q r0, -1, r4 - mcmpeq.b r5, r63, r6 - beqi/l r6, 0, tr0 /* loop */ - - add r5, r63, r4 - addi r0, 8, r0 - blink tr1, r63 /* shortstring */ - - .size strcpy,.-strcpy - -libc_hidden_def(strcpy) diff --git a/libc/string/sh64/strlen.S b/libc/string/sh64/strlen.S deleted file mode 100644 index 18f4164ff..000000000 --- a/libc/string/sh64/strlen.S +++ /dev/null @@ -1,63 +0,0 @@ -/* vi: set sw=8 ts=8: */ -/* - * libc/string/sh64/strlen.S - * - * Simplistic strlen() implementation for SHmedia. - * - * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. The name of the above contributors may not be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <features.h> - - .section .text..SHmedia32,"ax" - .globl strlen - .type strlen,@function - - .balign 16 -strlen: - ptabs r18, tr4 - - /* - * Note: We could easily deal with the NULL case here with a simple - * sanity check, though it seems that the behavior we want is to fault - * in the event that r2 == NULL, so we don't bother. - */ -/* beqi r2, 0, tr4 */ ! Sanity check - - movi -1, r0 - pta/l loop, tr0 -loop: - ld.b r2, 0, r1 - addi r2, 1, r2 - addi r0, 1, r0 - bnei/l r1, 0, tr0 - - or r0, r63, r2 - blink tr4, r63 - - .size strlen,.-strlen - -libc_hidden_def(strlen) diff --git a/libc/sysdeps/linux/sh64/Makefile b/libc/sysdeps/linux/sh64/Makefile deleted file mode 100644 index ecbf14228..000000000 --- a/libc/sysdeps/linux/sh64/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2001 SuperH (UK) Ltd. -# Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org> -# -# 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 -TOPDIR=../../../../ -include $(TOPDIR)Rules.mak diff --git a/libc/sysdeps/linux/sh64/Makefile.arch b/libc/sysdeps/linux/sh64/Makefile.arch deleted file mode 100644 index 02fcd0b18..000000000 --- a/libc/sysdeps/linux/sh64/Makefile.arch +++ /dev/null @@ -1,10 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2008 Paul Mundt <lethal@linux-sh.org> -# -# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -# - -CSRC-y := __init_brk.c brk.c sbrk.c syscall.c - -SSRC-y := setjmp.S __longjmp.S diff --git a/libc/sysdeps/linux/sh64/__init_brk.c b/libc/sysdeps/linux/sh64/__init_brk.c deleted file mode 100644 index 8a41eb3c4..000000000 --- a/libc/sysdeps/linux/sh64/__init_brk.c +++ /dev/null @@ -1,26 +0,0 @@ -/* From libc-5.3.12 */ - -#include <errno.h> -#include <unistd.h> -#include <sys/syscall.h> - -void * __curbrk attribute_hidden = 0; - -#define __NR__brk __NR_brk -attribute_hidden _syscall1(void *, _brk, void *, ptr) - -extern int __init_brk (void) attribute_hidden; -int -__init_brk (void) -{ - if (__curbrk == 0) - { - __curbrk = _brk(0); - if (__curbrk == 0) - { - __set_errno(ENOMEM); - return -1; - } - } - return 0; -} diff --git a/libc/sysdeps/linux/sh64/__longjmp.S b/libc/sysdeps/linux/sh64/__longjmp.S deleted file mode 100644 index 84343d1bf..000000000 --- a/libc/sysdeps/linux/sh64/__longjmp.S +++ /dev/null @@ -1,140 +0,0 @@ -/* __longjmp for SH-5. - Copyright (C) 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 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 <http://www.gnu.org/licenses/>. */ - - -#define _SETJMP_H -#define _ASM -#include <bits/setjmp.h> - - -#define INTEGER(reg,offset) ld.q r2, offset*8, reg -#define DOUBLE(reg,offset) fld.d r2, offset*8, reg - - - .file "__longjmp.S" - - .section .text64,"xa" - .align 2 - - .global __longjmp - .type __longjmp,@function - -__longjmp: - /* - * extern void __longjmp(jmp_buf env, int val); - * - * r2 == env - * r3 == val - * r4 == temporary - */ - - /* callee-save registers R10-R16 */ - INTEGER(r10, __SETJMP_INT(0)) - INTEGER(r11, __SETJMP_INT(1)) - INTEGER(r12, __SETJMP_INT(2)) - INTEGER(r13, __SETJMP_INT(3)) - INTEGER(r14, __SETJMP_INT(4)) - INTEGER(r15, __SETJMP_INT(5)) - INTEGER(r16, __SETJMP_INT(6)) - - /* callee-save registers R28-R35 */ - INTEGER(r28, __SETJMP_INT(7)) - INTEGER(r29, __SETJMP_INT(8)) - INTEGER(r30, __SETJMP_INT(9)) - INTEGER(r31, __SETJMP_INT(10)) - INTEGER(r32, __SETJMP_INT(11)) - INTEGER(r33, __SETJMP_INT(12)) - INTEGER(r34, __SETJMP_INT(13)) - INTEGER(r35, __SETJMP_INT(14)) - - /* callee-save registers R44-R59 */ - INTEGER(r44, __SETJMP_INT(15)) - INTEGER(r45, __SETJMP_INT(16)) - INTEGER(r46, __SETJMP_INT(17)) - INTEGER(r47, __SETJMP_INT(18)) - INTEGER(r48, __SETJMP_INT(19)) - INTEGER(r49, __SETJMP_INT(20)) - INTEGER(r50, __SETJMP_INT(21)) - INTEGER(r51, __SETJMP_INT(22)) - INTEGER(r52, __SETJMP_INT(23)) - INTEGER(r53, __SETJMP_INT(24)) - INTEGER(r54, __SETJMP_INT(25)) - INTEGER(r55, __SETJMP_INT(26)) - INTEGER(r56, __SETJMP_INT(27)) - INTEGER(r57, __SETJMP_INT(28)) - INTEGER(r58, __SETJMP_INT(29)) - INTEGER(r59, __SETJMP_INT(30)) - - #if __SETJMP_NUM_INT != 31 - #error __SETJMP_NUM_INT does agree with expected value - #endif - -#if __SETJMP_NUM_DBL > 0 - /* callee-save registers FR12-FR15 */ - DOUBLE(d12, __SETJMP_DBL(0)) - DOUBLE(d14, __SETJMP_DBL(1)) - - /* callee-save registers FR36-FR63 */ - DOUBLE(d36, __SETJMP_DBL(2)) - DOUBLE(d38, __SETJMP_DBL(3)) - DOUBLE(d40, __SETJMP_DBL(4)) - DOUBLE(d42, __SETJMP_DBL(5)) - DOUBLE(d44, __SETJMP_DBL(6)) - DOUBLE(d46, __SETJMP_DBL(7)) - DOUBLE(d48, __SETJMP_DBL(8)) - DOUBLE(d50, __SETJMP_DBL(9)) - DOUBLE(d52, __SETJMP_DBL(10)) - DOUBLE(d54, __SETJMP_DBL(11)) - DOUBLE(d56, __SETJMP_DBL(12)) - DOUBLE(d58, __SETJMP_DBL(13)) - DOUBLE(d60, __SETJMP_DBL(14)) - DOUBLE(d62, __SETJMP_DBL(15)) - - #if __SETJMP_NUM_DBL != 16 - #error __SETJMP_NUM_DBL does agree with expected value - #endif - -#endif /* __SETJMP_NUM_DBL > 0 */ - - /* callee-save registers TR5-TR7 */ - INTEGER(r4, __SETJMP_TRG(0)) - ptabs r4, tr5 - INTEGER(r4, __SETJMP_TRG(1)) - ptabs r4, tr6 - INTEGER(r4, __SETJMP_TRG(2)) - ptabs r4, tr7 - - #if __SETJMP_NUM_TRG != 3 - #error __SETJMP_NUM_TRG does agree with expected value - #endif - - /* restore Linkage Register (LR) for __longjmp return */ - INTEGER(r18, __SETJMP_LR) - ptabs/l r18, tr0 - - /* - * must ensure __longjmp() never returns 0. - * if 'val' == 0, then return 1. - */ - cmpeq r3, r63, r2 /* r2 = (r3==0) ? 1 : 0; */ - add.l r3, r2, r2 /* return value */ - - /* return to caller */ - blink tr0, r63 - -libc_hidden_def(__longjmp) diff --git a/libc/sysdeps/linux/sh64/bits/endian.h b/libc/sysdeps/linux/sh64/bits/endian.h deleted file mode 100644 index ae7e3bb2d..000000000 --- a/libc/sysdeps/linux/sh64/bits/endian.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * libc/sysdeps/linux/sh64/bits/endian.h - * - * Copyright (C) 2003 Paul Mundt - * - * 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. - */ - -#ifndef _ENDIAN_H -# error "Never use <bits/endian.h> directly; include <endian.h> instead." -#endif - -#ifdef __LITTLE_ENDIAN__ -# define __BYTE_ORDER __LITTLE_ENDIAN -#else -# define __BYTE_ORDER __BIG_ENDIAN -#endif - diff --git a/libc/sysdeps/linux/sh64/bits/fcntl.h b/libc/sysdeps/linux/sh64/bits/fcntl.h deleted file mode 100644 index b319e8bcd..000000000 --- a/libc/sysdeps/linux/sh64/bits/fcntl.h +++ /dev/null @@ -1,218 +0,0 @@ -/* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995, 1996, 1997, 1998, 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 - <http://www.gnu.org/licenses/>. */ - -#ifndef _FCNTL_H -# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." -#endif - - -#include <sys/types.h> - -/* 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_DIRECT 040000 /* Direct disk access. */ -# define O_DIRECTORY 0200000 /* Must be a directory. */ -# define O_NOFOLLOW 0400000 /* Do not follow links. */ -# define O_NOATIME 01000000 /* Do not set atime. */ -# define O_CLOEXEC 02000000 /* set close_on_exec */ -#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 0100000 -#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 - -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/sh64/bits/kernel_stat.h b/libc/sysdeps/linux/sh64/bits/kernel_stat.h deleted file mode 100644 index 1a29433e1..000000000 --- a/libc/sysdeps/linux/sh64/bits/kernel_stat.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Stat structure for Linux/sh64 */ - -#ifndef _BITS_STAT_STRUCT_H -#define _BITS_STAT_STRUCT_H - -struct kernel_stat { - unsigned short st_dev; - unsigned short __pad1; - unsigned long st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned short st_rdev; - unsigned short __pad2; - unsigned long st_size; - unsigned long st_blksize; - unsigned long st_blocks; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; - unsigned long __unused4; - unsigned long __unused5; -}; - -struct kernel_stat64 { - unsigned short st_dev; - unsigned char __pad0[10]; - - unsigned long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - - unsigned long st_uid; - unsigned long st_gid; - - unsigned short st_rdev; - unsigned char __pad3[10]; - - long long st_size; - unsigned long st_blksize; - - unsigned long st_blocks; /* Number 512-byte blocks allocated. */ - unsigned long __pad4; /* future possible st_blocks high bits */ - - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; - - unsigned long __unused1; - unsigned long __unused2; -}; - -#endif /* _BITS_STAT_STRUCT_H */ - diff --git a/libc/sysdeps/linux/sh64/bits/kernel_types.h b/libc/sysdeps/linux/sh64/bits/kernel_types.h deleted file mode 100644 index 8cc6c6184..000000000 --- a/libc/sysdeps/linux/sh64/bits/kernel_types.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * sysdeps/linux/sh64/bits/kernel_types.h - * - * Copyright (C) 2000, 2001 Paolo Alberelli - * Copyright (C) 2003 Paul Mundt - * - * 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. - */ - -/* - * 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 __ASM_SH64_POSIX_TYPES_H -#define __ASM_SH64_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 long 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 __kernel_dev_t __kernel_old_dev_t; -typedef long __kernel_long_t; -typedef unsigned long __kernel_ulong_t; -typedef long long __kernel_loff_t; - -typedef struct { -#ifdef __USE_ALL - int val[2]; -#else - int __val[2]; -#endif -} __kernel_fsid_t; - -#endif /* __ASM_SH64_POSIX_TYPES_H */ diff --git a/libc/sysdeps/linux/sh64/bits/setjmp.h b/libc/sysdeps/linux/sh64/bits/setjmp.h deleted file mode 100644 index 5d13b883c..000000000 --- a/libc/sysdeps/linux/sh64/bits/setjmp.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) 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 - <http://www.gnu.org/licenses/>. */ - -/* Define the machine-dependent type `jmp_buf'. SH-5 version. */ -#ifndef _BITS_SETJMP_H -#define _BITS_SETJMP_H 1 - -#if !defined _SETJMP_H && !defined _PTHREAD_H -# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." -#endif - -#define __SETJMP_NUM_INT 31 /* number of integer registers to save */ -#define __SETJMP_NUM_DBL 0 /* 16 */ /* number of double registers to save */ -#define __SETJMP_NUM_TRG 3 /* number of traget registers to save */ - -#define __SETJMP_INT(x) (x) -#define __SETJMP_DBL(x) (__SETJMP_NUM_INT+(x)) -#define __SETJMP_TRG(x) (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+(x)) -#define __SETJMP_LR (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+__SETJMP_NUM_TRG) - -typedef struct - { - /* Callee-saved registers. */ - unsigned long long __ints[__SETJMP_NUM_INT]; /* integer registers */ -#if __SETJMP_NUM_DBL > 0 - unsigned long long __dbls[__SETJMP_NUM_DBL]; /* double registers */ -#endif - unsigned long long __trgs[__SETJMP_NUM_TRG]; /* traget registers */ - unsigned long long __lr; /* linkage register */ - } __jmp_buf[1]; - -#endif /* bits/setjmp.h */ diff --git a/libc/sysdeps/linux/sh64/bits/shm.h b/libc/sysdeps/linux/sh64/bits/shm.h deleted file mode 100644 index 274f36a78..000000000 --- a/libc/sysdeps/linux/sh64/bits/shm.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (C) 1995,1996,1997,2000,2002,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 - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_SHM_H -# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead." -#endif - -#include <bits/types.h> - -/* Permission flag for shmget. */ -#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ -#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */ - -/* Flags for `shmat'. */ -#define SHM_RDONLY 010000 /* attach read-only else read-write */ -#define SHM_RND 020000 /* round attach address to SHMLBA */ -#define SHM_REMAP 040000 /* take-over region on attach */ - -/* Commands for `shmctl'. */ -#define SHM_LOCK 11 /* lock segment (root only) */ -#define SHM_UNLOCK 12 /* unlock segment (root only) */ - -__BEGIN_DECLS - -/* Segment low boundary address multiple. */ -#define SHMLBA (__getpagesize() << 2) -extern int __getpagesize (void) __THROW __attribute__ ((__const__)); - - -/* Type to count number of attaches. */ -typedef unsigned long int shmatt_t; - -/* Data structure describing a set of semaphores. */ -struct shmid_ds - { - struct ipc_perm shm_perm; /* operation permission struct */ - size_t shm_segsz; /* size of segment in bytes */ - __time_t shm_atime; /* time of last shmat() */ - unsigned long int __unused1; - __time_t shm_dtime; /* time of last shmdt() */ - unsigned long int __unused2; - __time_t shm_ctime; /* time of last change by shmctl() */ - unsigned long int __unused3; - __pid_t shm_cpid; /* pid of creator */ - __pid_t shm_lpid; /* pid of last shmop */ - shmatt_t shm_nattch; /* number of current attaches */ - unsigned long int __unused4; - unsigned long int __unused5; - }; - -#ifdef __USE_MISC - -/* ipcs ctl commands */ -# define SHM_STAT 13 -# define SHM_INFO 14 - -/* shm_mode upper byte flags */ -# define SHM_DEST 01000 /* segment will be destroyed on last detach */ -# define SHM_LOCKED 02000 /* segment will not be swapped */ -# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */ -# define SHM_NORESERVE 010000 /* don't check for reservations */ - -struct shminfo - { - unsigned long int shmmax; - unsigned long int shmmin; - unsigned long int shmmni; - unsigned long int shmseg; - unsigned long int shmall; - unsigned long int __unused1; - unsigned long int __unused2; - unsigned long int __unused3; - unsigned long int __unused4; - }; - -struct shm_info - { - int used_ids; - unsigned long int shm_tot; /* total allocated shm */ - unsigned long int shm_rss; /* total resident shm */ - unsigned long int shm_swp; /* total swapped shm */ - unsigned long int swap_attempts; - unsigned long int swap_successes; - }; - -#endif /* __USE_MISC */ - -__END_DECLS diff --git a/libc/sysdeps/linux/sh64/bits/stackinfo.h b/libc/sysdeps/linux/sh64/bits/stackinfo.h deleted file mode 100644 index c52e7d7b7..000000000 --- a/libc/sysdeps/linux/sh64/bits/stackinfo.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (C) 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 - <http://www.gnu.org/licenses/>. */ - -/* This file contains a bit of information about the stack allocation - of the processor. */ - -#ifndef _STACKINFO_H -#define _STACKINFO_H 1 - -/* On SH the stack grows down. */ -#define _STACK_GROWS_DOWN 1 - -#endif /* stackinfo.h */ diff --git a/libc/sysdeps/linux/sh64/bits/syscalls.h b/libc/sysdeps/linux/sh64/bits/syscalls.h deleted file mode 100644 index 84877d042..000000000 --- a/libc/sysdeps/linux/sh64/bits/syscalls.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef _BITS_SYSCALLS_H -#define _BITS_SYSCALLS_H -#ifndef _SYSCALL_H -# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead." -#endif - -#ifndef __ASSEMBLER__ - -#include <errno.h> - -#define SYS_ify(syscall_name) (__NR_##syscall_name) - -/* user-visible error numbers are in the range -1 - -125: see <asm-sh64/errno.h> */ -#define __syscall_return(type, res) \ -do { \ - /* Note: when returning from kernel the return value is in r9 \ - ** This prevents conflicts between return value and arg1 \ - ** when dispatching signal handler, in other words makes \ - ** life easier in the system call epilogue (see entry.S) \ - */ \ - register unsigned long __sr2 __asm__ ("r2") = res; \ - if ((unsigned long)(res) >= (unsigned long)(-125)) { \ - errno = -(res); \ - __sr2 = -1; \ - } \ - return (type) (__sr2); \ -} while (0) - -/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */ - -#define _syscall0(type,name) \ -type name(void) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x10 << 16) | __NR_##name); \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0) ); \ -__syscall_return(type,__sc0); \ -} - -#define _syscall1(type,name,type1,arg1) \ -type name(type1 arg1) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x11 << 16) | __NR_##name); \ -register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2)); \ -__syscall_return(type,__sc0); \ -} - -#define _syscall2(type,name,type1,arg1,type2,arg2) \ -type name(type1 arg1,type2 arg2) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x12 << 16) | __NR_##name); \ -register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \ -register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2), "r" (__sc3) ); \ -__syscall_return(type,__sc0); \ -} - -#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ -type name(type1 arg1,type2 arg2,type3 arg3) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x13 << 16) | __NR_##name); \ -register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \ -register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \ -register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4) ); \ -__syscall_return(type,__sc0); \ -} - -#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x14 << 16) | __NR_##name); \ -register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \ -register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \ -register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \ -register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4; \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5) );\ -__syscall_return(type,__sc0); \ -} - -#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x15 << 16) | __NR_##name); \ -register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \ -register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \ -register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \ -register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4; \ -register unsigned long __sc6 __asm__ ("r6") = (unsigned long) arg5; \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \ - "r" (__sc6)); \ -__syscall_return(type,__sc0); \ -} - -#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \ -{ \ -register unsigned long __sc0 __asm__ ("r9") = ((0x16 << 16) | __NR_##name); \ -register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1; \ -register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2; \ -register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3; \ -register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4; \ -register unsigned long __sc6 __asm__ ("r6") = (unsigned long) arg5; \ -register unsigned long __sc7 __asm__ ("r7") = (unsigned long) arg6; \ -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \ - "r" (__sc6), "r" (__sc7)); \ -__syscall_return(type,__sc0); \ -} - -#endif /* __ASSEMBLER__ */ -#endif /* _BITS_SYSCALLS_H */ - diff --git a/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h b/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h deleted file mode 100644 index e2091b5da..000000000 --- a/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h +++ /dev/null @@ -1,41 +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__ "movi 0x10, r9; shori 0xff, r9; trapa r9" - -/* 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/sh64/bits/wordsize.h b/libc/sysdeps/linux/sh64/bits/wordsize.h deleted file mode 100644 index 7c2723be4..000000000 --- a/libc/sysdeps/linux/sh64/bits/wordsize.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * libc/sysdeps/linux/sh64/bits/wordsize.h - * - * Copyright (C) 2003 Paul Mundt - * - * 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. - */ - -#define __WORDSIZE 32 - diff --git a/libc/sysdeps/linux/sh64/brk.c b/libc/sysdeps/linux/sh64/brk.c deleted file mode 100644 index a98cd5446..000000000 --- a/libc/sysdeps/linux/sh64/brk.c +++ /dev/null @@ -1,27 +0,0 @@ -/* From libc-5.3.12 */ -/* - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> - * - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - */ - -#include <errno.h> -#include <unistd.h> -#include <sys/syscall.h> - -extern void * __curbrk attribute_hidden; -extern int __init_brk (void) attribute_hidden; -extern void *_brk(void *ptr) attribute_hidden; - -int brk(void * end_data_seg) -{ - if (__init_brk () == 0) - { - __curbrk = _brk(end_data_seg); - if (__curbrk == end_data_seg) - return 0; - __set_errno(ENOMEM); - } - return -1; -} -libc_hidden_def(brk) diff --git a/libc/sysdeps/linux/sh64/crt1.S b/libc/sysdeps/linux/sh64/crt1.S deleted file mode 100644 index 6cc3773b7..000000000 --- a/libc/sysdeps/linux/sh64/crt1.S +++ /dev/null @@ -1,82 +0,0 @@ -/* Startup code for SH5 & ELF. - Copyright (C) 1999 Free Software Foundation, Inc. - Copyright (C) 2001 Hewlett-Packard Australia - - 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 <http://www.gnu.org/licenses/>. */ - -/* This is the canonical entry point, usually the first thing in the text - segment. - - At this entry point, most registers' values are unspecified, except: - - sp The stack contains the arguments and environment: - 0(sp) argc - 4(sp) argv[0] - ... - (4*argc)(sp) NULL - (4*(argc+1))(sp) envp[0] - ... - NULL -*/ - - .file "crt1.S" - - .globl _start - .type _start,%function - .type main,%function - - .section .text64,"xa" - .align 2 /* 2^2 = 4 */ - -_start: - /* __uClibc_main (main, argc, argv, init, fini) */ - movi __main, r18 - or r2, r63, r18 - - /* Pop argc off the stack and save a pointer to argv */ - ld.l r15, 0, r3 /* argc */ - addi r15, 4, r4 /* argv */ - - movi _init, r5 - movi _fini, r6 - - /* call main() */ - movi __uClibc_main, r17 - ptabs/l r17, tr0 - blink tr0, r18 - - /* should never get here....*/ - movi abort, r17 - ptabs/l r17, tr0 - blink tr0, r63 /* call abort() => (r63) do not come back ... */ - -/* - * The following is a stub to stop the GNU toolchain - * from calling its C-RTL initialization routines. - */ -__main: - movi main, r18 - ptabs/l r18, tr0 - blink tr0, r63 - -/* Define a symbol for the first piece of initialized data. */ - .data - .globl __data_start -__data_start: - .long 0 - .weak data_start - data_start = __data_start diff --git a/libc/sysdeps/linux/sh64/crti.S b/libc/sysdeps/linux/sh64/crti.S deleted file mode 100644 index 597be363d..000000000 --- a/libc/sysdeps/linux/sh64/crti.S +++ /dev/null @@ -1,42 +0,0 @@ - .file "initfini.c" - .section .text..SHmedia32,"ax" - .little - - .section .init - .hidden _init - .align 2 - .global _init - .type _init, @function -_init: - addi.l r15, -16, r15 - st.l r15, 4, r12 - movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS0-.)) >> 16) & 65535), r12 - shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS0-.)) & 65535), r12 - .LPCS0: ptrel/u r12, tr0 - st.l r15, 8, r14 - st.l r15, 12, r18 - add.l r15, r63, r14 - gettr tr0, r12 - - .align 2 - - - .section .fini - .hidden _fini - .align 2 - .global _fini - .type _fini, @function -_fini: - addi.l r15, -16, r15 - st.l r15, 4, r12 - movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS1-.)) >> 16) & 65535), r12 - shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS1-.)) & 65535), r12 - .LPCS1: ptrel/u r12, tr0 - st.l r15, 8, r14 - st.l r15, 12, r18 - add.l r15, r63, r14 - gettr tr0, r12 - .align 2 - - - .ident "GCC: (GNU) 3.3.2" diff --git a/libc/sysdeps/linux/sh64/crtn.S b/libc/sysdeps/linux/sh64/crtn.S deleted file mode 100644 index 501fe9167..000000000 --- a/libc/sysdeps/linux/sh64/crtn.S +++ /dev/null @@ -1,31 +0,0 @@ - .file "initfini.c" - .section .text..SHmedia32,"ax" - .little - - .section .init - .hidden _init - .align 2 - .global _init - .type _init, @function - add.l r14, r63, r15 - ld.l r15, 12, r18 - ld.l r15, 4, r12 - ld.l r15, 8, r14 - ptabs r18, tr0 - addi.l r15, 16, r15 - blink tr0, r63 - - .section .fini - .hidden _fini - .align 2 - .global _fini - .type _fini, @function - add.l r14, r63, r15 - ld.l r15, 12, r18 - ld.l r15, 4, r12 - ld.l r15, 8, r14 - ptabs r18, tr0 - addi.l r15, 16, r15 - blink tr0, r63 - - .ident "GCC: (GNU) 3.3.2" diff --git a/libc/sysdeps/linux/sh64/sbrk.c b/libc/sysdeps/linux/sh64/sbrk.c deleted file mode 100644 index 2dc719a16..000000000 --- a/libc/sysdeps/linux/sh64/sbrk.c +++ /dev/null @@ -1,25 +0,0 @@ -/* From libc-5.3.12 */ - -#include <errno.h> -#include <unistd.h> -#include <sys/syscall.h> - -extern void * __curbrk attribute_hidden; -extern int __init_brk (void) attribute_hidden; -extern void *_brk(void *ptr) attribute_hidden; - -void * -sbrk(intptr_t increment) -{ - if (__init_brk () == 0) - { - char * tmp = (char*)__curbrk+increment; - __curbrk = _brk(tmp); - if (__curbrk == tmp) - return tmp-increment; - __set_errno(ENOMEM); - return ((void *) -1); - } - return ((void *) -1); -} -libc_hidden_def(sbrk) diff --git a/libc/sysdeps/linux/sh64/setjmp.S b/libc/sysdeps/linux/sh64/setjmp.S deleted file mode 100644 index f81961c17..000000000 --- a/libc/sysdeps/linux/sh64/setjmp.S +++ /dev/null @@ -1,139 +0,0 @@ -/* setjmp for SH-5. - Copyright (C) 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 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 <http://www.gnu.org/licenses/>. */ - - -#define _SETJMP_H -#define _ASM -#include <bits/setjmp.h> - - -#define INTEGER(reg,offset) st.q r2, offset*8, reg -#define DOUBLE(reg,offset) fst.d r2, offset*8, reg - - - .file "setjmp.S" - - .section .text64,"xa" - .align 2 - - .global __sigsetjmp - .type __sigsetjmp,@function - -__sigsetjmp: - /* - * extern int __sigsetjmp(jmp_buf env, int savemask); - * - * r2 == env - * r3 == savemask - * r4 == temporary - */ - - /* callee-save registers R10-R16 */ - INTEGER(r10, __SETJMP_INT(0)) - INTEGER(r11, __SETJMP_INT(1)) - INTEGER(r12, __SETJMP_INT(2)) - INTEGER(r13, __SETJMP_INT(3)) - INTEGER(r14, __SETJMP_INT(4)) - INTEGER(r15, __SETJMP_INT(5)) - INTEGER(r16, __SETJMP_INT(6)) - - /* callee-save registers R28-R35 */ - INTEGER(r28, __SETJMP_INT(7)) - INTEGER(r29, __SETJMP_INT(8)) - INTEGER(r30, __SETJMP_INT(9)) - INTEGER(r31, __SETJMP_INT(10)) - INTEGER(r32, __SETJMP_INT(11)) - INTEGER(r33, __SETJMP_INT(12)) - INTEGER(r34, __SETJMP_INT(13)) - INTEGER(r35, __SETJMP_INT(14)) - - /* callee-save registers R44-R59 */ - INTEGER(r44, __SETJMP_INT(15)) - INTEGER(r45, __SETJMP_INT(16)) - INTEGER(r46, __SETJMP_INT(17)) - INTEGER(r47, __SETJMP_INT(18)) - INTEGER(r48, __SETJMP_INT(19)) - INTEGER(r49, __SETJMP_INT(20)) - INTEGER(r50, __SETJMP_INT(21)) - INTEGER(r51, __SETJMP_INT(22)) - INTEGER(r52, __SETJMP_INT(23)) - INTEGER(r53, __SETJMP_INT(24)) - INTEGER(r54, __SETJMP_INT(25)) - INTEGER(r55, __SETJMP_INT(26)) - INTEGER(r56, __SETJMP_INT(27)) - INTEGER(r57, __SETJMP_INT(28)) - INTEGER(r58, __SETJMP_INT(29)) - INTEGER(r59, __SETJMP_INT(30)) - - #if __SETJMP_NUM_INT != 31 - #error __SETJMP_NUM_INT does agree with expected value - #endif - -#if __SETJMP_NUM_DBL > 0 - /* callee-save registers FR12-FR15 */ - DOUBLE(d12, __SETJMP_DBL(0)) - DOUBLE(d14, __SETJMP_DBL(1)) - - /* callee-save registers FR36-FR63 */ - DOUBLE(d36, __SETJMP_DBL(2)) - DOUBLE(d38, __SETJMP_DBL(3)) - DOUBLE(d40, __SETJMP_DBL(4)) - DOUBLE(d42, __SETJMP_DBL(5)) - DOUBLE(d44, __SETJMP_DBL(6)) - DOUBLE(d46, __SETJMP_DBL(7)) - DOUBLE(d48, __SETJMP_DBL(8)) - DOUBLE(d50, __SETJMP_DBL(9)) - DOUBLE(d52, __SETJMP_DBL(10)) - DOUBLE(d54, __SETJMP_DBL(11)) - DOUBLE(d56, __SETJMP_DBL(12)) - DOUBLE(d58, __SETJMP_DBL(13)) - DOUBLE(d60, __SETJMP_DBL(14)) - DOUBLE(d62, __SETJMP_DBL(15)) - - #if __SETJMP_NUM_DBL != 16 - #error __SETJMP_NUM_DBL does agree with expected value - #endif - -#endif /* __SETJMP_NUM_DBL > 0 */ - - /* callee-save registers TR5-TR7 */ - gettr tr5, r4 - INTEGER(r4, __SETJMP_TRG(0)) - gettr tr6, r4 - INTEGER(r4, __SETJMP_TRG(1)) - gettr tr7, r4 - INTEGER(r4, __SETJMP_TRG(2)) - - #if __SETJMP_NUM_TRG != 3 - #error __SETJMP_NUM_TRG does agree with expected value - #endif - - /* save Linkage Register (LR) for longjmp return */ - INTEGER(r18, __SETJMP_LR) - - /* - * return a value of zero if call is __sigsetjmp(). - * This is so that caller of setjmp() knows - * we have retruned via setjmp, and not via longjmp. - * R0 is the result register. - */ - - ptabs/l r18, tr0 /* return to caller */ - movi 0, r2 /* return value */ - blink tr0, r63 - diff --git a/libc/sysdeps/linux/sh64/sys/procfs.h b/libc/sysdeps/linux/sh64/sys/procfs.h deleted file mode 100644 index 5fc4c579c..000000000 --- a/libc/sysdeps/linux/sh64/sys/procfs.h +++ /dev/null @@ -1,125 +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 - <http://www.gnu.org/licenses/>. */ - -#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 <features.h> -#include <signal.h> -#include <sys/time.h> -#include <sys/types.h> -#include <sys/ucontext.h> -#include <sys/user.h> - -__BEGIN_DECLS - -/* - * ELF register definitions... - */ -typedef unsigned long elf_greg_t; - -#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -typedef struct user_fpu_struct elf_fpregset_t; - -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 - { -#if 0 - long int pr_flags; /* XXX Process flags. */ - short int pr_why; /* XXX Reason for process halt. */ - short int pr_what; /* XXX More detailed reason. */ -#endif - 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. */ -#if 0 - struct sigaltstack pr_altstack; /* Alternate stack info. */ - struct sigaction pr_action; /* Signal action for current sig. */ -#endif - __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. */ -#if 0 - long int pr_instr; /* Current instruction. */ -#endif - 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. */ - long pr_uid; - long 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 habe only ine 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/sh64/sys/ucontext.h b/libc/sysdeps/linux/sh64/sys/ucontext.h deleted file mode 100644 index 73695592a..000000000 --- a/libc/sysdeps/linux/sh64/sys/ucontext.h +++ /dev/null @@ -1,204 +0,0 @@ -/* Copyright (C) 1999, 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 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 <http://www.gnu.org/licenses/>. */ - -/* Where is System V/SH ABI? */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include <features.h> -#include <signal.h> - -/* We need the signal context definitions even if they are not used - included in <signal.h>. */ -#include <bits/sigcontext.h> - - -typedef long long greg_t; - -/* Number of general registers. */ -#define NGREG 64 - -/* Container for all general registers. */ -typedef greg_t gregset_t[NGREG]; - -#ifdef __USE_GNU -/* Number of each register is the `gregset_t' array. */ -enum -{ - R0 = 0, -#define R0 R0 - R1 = 1, -#define R1 R1 - R2 = 2, -#define R2 R2 - R3 = 3, -#define R3 R3 - R4 = 4, -#define R4 R4 - R5 = 5, -#define R5 R5 - R6 = 6, -#define R6 R6 - R7 = 7, -#define R7 R7 - R8 = 8, -#define R8 R8 - R9 = 9, -#define R9 R9 - R10 = 10, -#define R10 R10 - R11 = 11, -#define R11 R11 - R12 = 12, -#define R12 R12 - R13 = 13, -#define R13 R13 - R14 = 14, -#define R14 R14 - R15 = 15, -#define R15 R15 - R16 = 16, -#define R16 R16 - R17 = 17, -#define R17 R17 - R18 = 18, -#define R18 R18 - R19 = 19, -#define R19 R19 - R20 = 20, -#define R20 R20 - R21 = 21, -#define R21 R21 - R22 = 22, -#define R22 R22 - R23 = 23, -#define R23 R23 - R24 = 24, -#define R24 R24 - R25 = 25, -#define R25 R25 - R26 = 26, -#define R26 R26 - R27 = 27, -#define R27 R27 - R28 = 28, -#define R28 R28 - R29 = 29, -#define R29 R29 - R30 = 30, -#define R30 R30 - R31 = 31, -#define R31 R31 - R32 = 32, -#define R32 R32 - R33 = 33, -#define R33 R33 - R34 = 34, -#define R34 R34 - R35 = 35, -#define R35 R35 - R36 = 36, -#define R36 R36 - R37 = 37, -#define R37 R37 - R38 = 38, -#define R38 R38 - R39 = 39, -#define R39 R39 - R40 = 40, -#define R40 R40 - R41 = 41, -#define R41 R41 - R42 = 42, -#define R42 R42 - R43 = 43, -#define R43 R43 - R44 = 44, -#define R44 R44 - R45 = 45, -#define R45 R45 - R46 = 46, -#define R46 R46 - R47 = 47, -#define R47 R47 - R48 = 48, -#define R48 R48 - R49 = 49, -#define R49 R49 - R50 = 50, -#define R50 R50 - R51 = 51, -#define R51 R51 - R52 = 52, -#define R52 R52 - R53 = 53, -#define R53 R53 - R54 = 54, -#define R54 R54 - R55 = 55, -#define R55 R55 - R56 = 56, -#define R56 R56 - R57 = 57, -#define R57 R57 - R58 = 58, -#define R58 R58 - R59 = 59, -#define R59 R59 - R60 = 60, -#define R60 R60 - R61 = 61, -#define R61 R61 - R62 = 62, -#define R62 R62 - R63 = 63, -#define R63 R63 -}; -#endif - -typedef int freg_t; - -/* Number of FPU registers. */ -#define NFPREG 32 - -/* Structure to describe FPU registers. */ -typedef freg_t fpregset_t[NFPREG]; - -/* Context to describe whole processor state. */ -typedef struct - { - gregset_t gregs; - fpregset_t fpregs; - unsigned long long sc_tregs[8]; - unsigned long long sc_pc; - unsigned long long sc_sr; - unsigned long long sc_fpscr; - - } mcontext_t; - -/* Userlevel context. */ -typedef struct ucontext - { - unsigned long int uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - mcontext_t uc_mcontext; - __sigset_t uc_sigmask; - } ucontext_t; - -#endif /* sys/ucontext.h */ diff --git a/libc/sysdeps/linux/sh64/syscall.c b/libc/sysdeps/linux/sh64/syscall.c deleted file mode 100644 index a6c55ebe9..000000000 --- a/libc/sysdeps/linux/sh64/syscall.c +++ /dev/null @@ -1,24 +0,0 @@ - - -#include <features.h> -#include <errno.h> -#include <sys/types.h> -#include <sys/syscall.h> - -long syscall(long sysnum, - long arg1, long arg2, long arg3, - long arg4, long arg5, long arg6) -{ -register long __sc0 __asm__ ("r9") = ((0x16 << 16) | sysnum); -register long __sc2 __asm__ ("r2") = (long) arg1; -register long __sc3 __asm__ ("r3") = (long) arg2; -register long __sc4 __asm__ ("r4") = (long) arg3; -register long __sc5 __asm__ ("r5") = (long) arg4; -register long __sc6 __asm__ ("r6") = (long) arg5; -register long __sc7 __asm__ ("r7") = (long) arg6; -__asm__ __volatile__ ("trapa %1" \ - : "=r" (__sc0) \ - : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \ - "r" (__sc6), "r" (__sc7)); -__syscall_return(long,__sc0); -} |