diff --git a/libc/Android.mk b/libc/Android.mk
index 225d14f..9881d59 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -427,43 +427,6 @@
 libc_arch_dynamic_src_files :=
 else # !x86
 
-ifeq ($(TARGET_ARCH),sh)
-libc_common_src_files += \
-	arch-sh/bionic/__get_pc.S \
-	arch-sh/bionic/__get_sp.S \
-	arch-sh/bionic/_exit_with_stack_teardown.S \
-	arch-sh/bionic/_setjmp.S \
-	arch-sh/bionic/atomics_sh.c \
-	arch-sh/bionic/atomic_cmpxchg.S \
-	arch-sh/bionic/clone.S \
-	arch-sh/bionic/pipe.S \
-	arch-sh/bionic/memcpy.S \
-	arch-sh/bionic/memset.S \
-	arch-sh/bionic/bzero.S \
-	arch-sh/bionic/setjmp.S \
-	arch-sh/bionic/sigsetjmp.S \
-	arch-sh/bionic/syscall.S \
-	arch-sh/bionic/memmove.S \
-	arch-sh/bionic/__set_tls.c \
-	arch-sh/bionic/__get_tls.c \
-	arch-sh/bionic/ffs.S \
-	string/bcopy.c \
-	string/strcmp.c \
-	string/strncmp.c \
-	string/memcmp.c \
-	string/strlen.c \
-	string/strcpy.c \
-	bionic/pthread-atfork.c \
-	bionic/pthread-rwlocks.c \
-	bionic/pthread-timers.c \
-	bionic/ptrace.c \
-	unistd/socketcalls.c
-
-libc_static_common_src_files += \
-        bionic/pthread.c \
-
-endif # sh
-
 endif # !x86
 endif # !arm
 
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT
index fc5f808..c346d5a 100644
--- a/libc/SYSCALLS.TXT
+++ b/libc/SYSCALLS.TXT
@@ -4,7 +4,7 @@
 #
 # each non comment line has the following format:
 #
-# return_type    func_name[:syscall_name[:call_id]]([parameter_list])  (#syscall_number|stub)
+# return_type    func_name[:syscall_name[:call_id]]([parameter_list])  (syscall_number|"stub")
 #
 # note that:
 #      - syscall_name correspond to the name of the syscall, which may differ from
@@ -22,15 +22,15 @@
 #        assembler template for the syscall; it's up to the bionic implementation to provide
 #        a relevant C stub
 #
-#      - additionally, if the syscall number is different amoung ARM, x86 and SuperH, use:
-#        return_type funcname[:syscall_name](parameters) arm_number,x86_number,superh_number
+#      - additionally, if the syscall number is different amoung ARM, and x86, use:
+#        return_type funcname[:syscall_name](parameters) arm_number,x86_number
 #
 # the file is processed by a python script named gensyscalls.py
 #
 
 # process management
 void    _exit:exit_group (int)      248,252
-void    _exit_thread:exit (int)	    1
+void    _exit_thread:exit (int)     1
 pid_t   __fork:fork (void)           2
 pid_t   _waitpid:waitpid (pid_t, int*, int, struct rusage*)   -1,7
 int     __waitid:waitid(int, pid_t, struct siginfo_t*, int,void*)          280,284
@@ -53,7 +53,7 @@
 ssize_t readahead(int, off64_t, size_t)     225
 int     getgroups:getgroups32(int, gid_t *)    205
 pid_t   getpgid(pid_t)             132
-pid_t   getppid()		   64
+pid_t   getppid()                  64
 pid_t   setsid()                   66
 int     setgid:setgid32(gid_t)     214
 int     seteuid:seteuid32(uid_t)   stub
@@ -114,7 +114,7 @@
 int         flock(int, int)   143
 int         fchmod(int, mode_t)  94
 int         dup(int)  41
-int         pipe(int *)  42,42,-1
+int         pipe(int *)  42,42
 int         pipe2(int *, int) 359,331
 int         dup2(int, int)   63
 int         select:_newselect(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *)  142
@@ -219,24 +219,21 @@
 int           recvmsg(int, struct msghdr *, unsigned int)   297,-1
 
 # sockets for x86. These are done as an "indexed" call to socketcall syscall.
-int           socket:socketcall:1 (int, int, int) -1,102,-1
-int           bind:socketcall:2 (int, struct sockaddr *, int)  -1,102,-1
-int           connect:socketcall:3(int, struct sockaddr *, socklen_t)   -1,102,-1
-int           listen:socketcall:4(int, int)                   -1,102,-1
-int           accept:socketcall:5(int, struct sockaddr *, socklen_t *)  -1,102,-1
-int           getsockname:socketcall:6(int, struct sockaddr *, socklen_t *)  -1,102,-1
-int           getpeername:socketcall:7(int, struct sockaddr *, socklen_t *)  -1,102,-1
-int           socketpair:socketcall:8(int, int, int, int*)    -1,102,-1
-int           sendto:socketcall:11(int, const void *, size_t, int, const struct sockaddr *, socklen_t)  -1,102,-1
-int           recvfrom:socketcall:12(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *)  -1,102,-1
+int           socket:socketcall:1 (int, int, int) -1,102
+int           bind:socketcall:2 (int, struct sockaddr *, int)  -1,102
+int           connect:socketcall:3(int, struct sockaddr *, socklen_t)   -1,102
+int           listen:socketcall:4(int, int)                   -1,102
+int           accept:socketcall:5(int, struct sockaddr *, socklen_t *)  -1,102
+int           getsockname:socketcall:6(int, struct sockaddr *, socklen_t *)  -1,102
+int           getpeername:socketcall:7(int, struct sockaddr *, socklen_t *)  -1,102
+int           socketpair:socketcall:8(int, int, int, int*)    -1,102
+int           sendto:socketcall:11(int, const void *, size_t, int, const struct sockaddr *, socklen_t)  -1,102
+int           recvfrom:socketcall:12(int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *)  -1,102
 int           shutdown:socketcall:13(int, int)  -1,102,-1
-int           setsockopt:socketcall:14(int, int, int, const void *, socklen_t)  -1,102,-1
-int           getsockopt:socketcall:15(int, int, int, void *, socklen_t *)    -1,102,-1
-int           sendmsg:socketcall:16(int, const struct msghdr *, unsigned int)  -1,102,-1
-int           recvmsg:socketcall:17(int, struct msghdr *, unsigned int)   -1,102,-1
-
-# sockets for sh.
-int           __socketcall:socketcall(int, unsigned long*) -1,-1,102
+int           setsockopt:socketcall:14(int, int, int, const void *, socklen_t)  -1,102
+int           getsockopt:socketcall:15(int, int, int, void *, socklen_t *)    -1,102
+int           sendmsg:socketcall:16(int, const struct msghdr *, unsigned int)  -1,102
+int           recvmsg:socketcall:17(int, struct msghdr *, unsigned int)   -1,102
 
 # scheduler & real-time
 int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param)  156
@@ -249,11 +246,11 @@
 int sched_rr_get_interval(pid_t pid, struct timespec *interval)  161
 int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set) 241
 int __sched_getaffinity:sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set)  242
-int __getcpu:getcpu(unsigned *cpu, unsigned *node, void *unused) 345,318,318
+int __getcpu:getcpu(unsigned *cpu, unsigned *node, void *unused) 345,318
 
 # io priorities
-int ioprio_set(int which, int who, int ioprio) 314,289,288
-int ioprio_get(int which, int who) 315,290,289
+int ioprio_set(int which, int who, int ioprio) 314,289
+int ioprio_get(int which, int who) 315,290
 
 # other
 int     uname(struct utsname *)  122
@@ -275,8 +272,8 @@
 int     epoll_wait(int epfd, struct epoll_event *events, int max, int timeout)   252,256
 
 int     inotify_init(void)      316,291,290
-int     inotify_add_watch(int, const char *, unsigned int)  317,292,291
-int     inotify_rm_watch(int, unsigned int)  318,293,292
+int     inotify_add_watch(int, const char *, unsigned int)  317,292
+int     inotify_rm_watch(int, unsigned int)  318,293
 
 int     poll(struct pollfd *, unsigned int, long)  168
 
diff --git a/libc/arch-sh/bionic/__get_pc.S b/libc/arch-sh/bionic/__get_pc.S
deleted file mode 100644
index 155b387..0000000
--- a/libc/arch-sh/bionic/__get_pc.S
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-.text
-.type   __get_pc, @function
-.globl  __get_pc
-.align  4
-
-__get_pc:
-    mova    1f, r0
-    rts
-1:  nop
-
diff --git a/libc/arch-sh/bionic/__get_sp.S b/libc/arch-sh/bionic/__get_sp.S
deleted file mode 100644
index 0e34a01..0000000
--- a/libc/arch-sh/bionic/__get_sp.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-.text
-.type   __get_sp, @function
-.globl  __get_sp
-.align  4
-
-__get_sp:
-    rts
-    mov     r15, r0
-
diff --git a/libc/arch-sh/bionic/__get_tls.c b/libc/arch-sh/bionic/__get_tls.c
deleted file mode 100644
index 8a5e4ff..0000000
--- a/libc/arch-sh/bionic/__get_tls.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-/* see the implementation of __set_tls and pthread.c to understand this
- * code. Basically, the content of fs:[0] always is a pointer to the base
- * address of the tls region
- */
-void *__get_tls(void)
-{
-    void *tls;
-    asm volatile("stc gbr, %0" : "=r"(tls));
-    return tls;
-}
diff --git a/libc/arch-sh/bionic/__set_tls.c b/libc/arch-sh/bionic/__set_tls.c
deleted file mode 100644
index 7f863de..0000000
--- a/libc/arch-sh/bionic/__set_tls.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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 <pthread.h>
-
-/*
- * Simply set tls address into GBR.
- */
-int __set_tls(void *ptr)
-{
-    asm volatile("ldc %0, gbr" : /* no output */ : "r" (ptr));
-    return 0;
-}
diff --git a/libc/arch-sh/bionic/_exit_with_stack_teardown.S b/libc/arch-sh/bionic/_exit_with_stack_teardown.S
deleted file mode 100644
index 6356eb6..0000000
--- a/libc/arch-sh/bionic/_exit_with_stack_teardown.S
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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 <asm/unistd.h>
-
-.text
-.type   _exit_with_stack_teardown, @function
-.globl  _exit_with_stack_teardown
-.align  4
-
-# void _exit_with_stack_teardown(void * stackBase, int stackSize, int retCode)
-
-_exit_with_stack_teardown:
-    mov     r6, r8      /* save retCode : breaks r8 value */
-    mov.l   0f, r3      /* system call number */
-    trapa   #(2 + 0x10) /* invoke system call with num of args */
-
-    mov     r8, r4      /* restore retCode */
-    mov.l   1f, r3      /* system call number */
-    trapa   #(1 + 0x10) /* invoke system call with num of args */
-
-    /* exit() should never return, cause a crash if it does */
-    mov     #0, r0
-    mov.l   @r0, r0
-
-    .align  2
-0:  .long   __NR_munmap
-1:  .long   __NR_exit
diff --git a/libc/arch-sh/bionic/_setjmp.S b/libc/arch-sh/bionic/_setjmp.S
deleted file mode 100644
index a04fcb6..0000000
--- a/libc/arch-sh/bionic/_setjmp.S
+++ /dev/null
@@ -1,125 +0,0 @@
-/*	$OpenBSD: _setjmp.S,v 1.2 2007/03/02 06:11:54 miod Exp $	*/
-/*	$NetBSD: _setjmp.S,v 1.7 2006/01/05 02:04:41 uwe Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND 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 REGENTS OR 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.
- *
- *	from: @(#)_setjmp.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-#include <machine/setjmp.h>
-
-/*
- * C library -- _setjmp, _longjmp
- *
- *	_longjmp(a,v)
- * will generate a "return(v)" from the last call to
- *	_setjmp(a)
- * by restoring registers from the stack.
- * The previous signal state is NOT restored.
- */
-
-ENTRY(_setjmp)
-	xor	r0,	r0
-#if defined(__SH4__) && !defined(__SH4_NOFPU__)
-	add	#(_JBLEN * 4), r4
-	sts	fpscr,	r1
-	mov.l	r1,	@-r4
-	lds	r0,	fpscr
-	sts.l	fpul,	@-r4
-	fmov.s	fr15,	@-r4
-	fmov.s	fr14,	@-r4
-	fmov.s	fr13,	@-r4
-	fmov.s	fr12,	@-r4
-	frchg
-	fmov.s	fr15,	@-r4
-	fmov.s	fr14,	@-r4
-	fmov.s	fr13,	@-r4
-	fmov.s	fr12,	@-r4
-	lds	r1,	fpscr
-#else
-	add	#((_JBLEN - 10) * 4), r4
-#endif
-	sts.l	mach,	@-r4
-	sts.l	macl,	@-r4
-	mov.l	r15,	@-r4
-	mov.l	r14,	@-r4
-	mov.l	r13,	@-r4
-	mov.l	r12,	@-r4
-	mov.l	r11,	@-r4
-	mov.l	r10,	@-r4
-	mov.l	r9,	@-r4
-	mov.l	r8,	@-r4
-	sts.l	pr,	@-r4
-	mov.l	r0,	@-r4		/* dummy signal mask */
-	rts
-	 mov.l	r0,	@-r4		/* no saved signal mask */
-	SET_ENTRY_SIZE(_setjmp)
-
-ENTRY(_longjmp)
-	add	#8,	r4
-	lds.l	@r4+,	pr
-	mov.l	@r4+,	r8
-	mov.l	@r4+,	r9
-	mov.l	@r4+,	r10
-	mov.l	@r4+,	r11
-	mov.l	@r4+,	r12
-	mov.l	@r4+,	r13
-	mov.l	@r4+,	r14
-	mov.l	@r4+,	r15
-	lds.l	@r4+,	macl
-	lds.l	@r4+,	mach
-#if defined(__SH4__) && !defined(__SH4_NOFPU__)
-	xor	r0, 	r0
-	lds	r0,	fpscr
-	frchg
-	fmov.s	@r4+,	fr12
-	fmov.s	@r4+,	fr13
-	fmov.s	@r4+,	fr14
-	fmov.s	@r4+,	fr15
-	frchg
-	fmov.s	@r4+,	fr12
-	fmov.s	@r4+,	fr13
-	fmov.s	@r4+,	fr14
-	fmov.s	@r4+,	fr15
-	lds.l	@r4+,	fpul
-	lds.l	@r4+,	fpscr
-#endif
-
-	mov	r5,	r0
-	tst	r0,	r0
-	bf	.L0
-	add	#1,	r0
-.L0:
-	rts
-	 nop
-	SET_ENTRY_SIZE(_longjmp)
diff --git a/libc/arch-sh/bionic/atomic_cmpxchg.S b/libc/arch-sh/bionic/atomic_cmpxchg.S
deleted file mode 100644
index 4ccd6cf..0000000
--- a/libc/arch-sh/bionic/atomic_cmpxchg.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-.text
-.type   __atomic_cmpxchg, @function
-.globl  __atomic_cmpxchg
-.align 4
-
-__atomic_cmpxchg:
-    mova    1f, r0
-    nop
-    mov     r15, r1
-    mov     #-8, r15    /* critical region start */
-0:  mov.l   @r6, r2
-    cmp/eq  r2, r4
-    bt      not_yet_modified
-    mov     #1, r0
-    bra     done
-    nop
-not_yet_modified:
-    mov     #0, r0
-    mov.l   r5, @r6
-done:
-1:  mov     r1, r15     /* critical region end */
-    rts
-    nop
diff --git a/libc/arch-sh/bionic/atomics_sh.c b/libc/arch-sh/bionic/atomics_sh.c
deleted file mode 100644
index c7815ff..0000000
--- a/libc/arch-sh/bionic/atomics_sh.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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 <pthread.h>
-#include <linux/futex.h>
-
-#define  SWAP_LOCK_COUNT  32U
-static pthread_mutex_t  _swap_locks[SWAP_LOCK_COUNT];
-
-#define  SWAP_LOCK(addr)   \
-   &_swap_locks[((unsigned)(void *)(addr) >> 3U) % SWAP_LOCK_COUNT]
-
-#if 0
-/*
- * Only this function is moved to atomic_cmpxchg.S, and
- * implemented with gUSA framework.
- */
-int __atomic_cmpxchg(int old, int _new, volatile int *ptr)
-{
-    int result;
-    pthread_mutex_t *lock = SWAP_LOCK(ptr);
-
-    pthread_mutex_lock(lock);
-
-    if (*ptr == old) {
-        *ptr  = _new;
-        result = 0;
-    } else {
-        result = 1;
-    }
-    pthread_mutex_unlock(lock);
-    return result;
-}
-#else
-extern int __atomic_cmpxchg(int old, int _new, volatile int *ptr);
-#endif
-
-int __atomic_swap(int _new, volatile int *ptr)
-{
-    int oldValue;
-    do {
-        oldValue = *ptr;
-    } while (__atomic_cmpxchg(oldValue, _new, ptr));
-    return oldValue;
-}
-
-int __atomic_dec(volatile int *ptr)
-{
-    int oldValue;
-    do {
-        oldValue = *ptr;
-    } while (__atomic_cmpxchg(oldValue, oldValue-1, ptr));
-    return oldValue;
-}
-
-int __atomic_inc(volatile int *ptr)
-{
-    int32_t oldValue;
-    do {
-        oldValue = *ptr;
-    } while (__atomic_cmpxchg(oldValue, oldValue+1, ptr));
-    return oldValue;
-}
-
-extern int futex(volatile void *, int, int, void *, void *, int);
-
-int __futex_wait(volatile void *ftx, int val, const struct timespec *timeout)
-{
-    return futex(ftx, FUTEX_WAIT, val, (void *)timeout, NULL, 0);
-}
-
-int __futex_wake(volatile void *ftx, int count)
-{
-    return futex(ftx, FUTEX_WAKE, count, NULL, NULL, 0);
-}
-
-int __futex_syscall3(volatile void *ftx, int op, int val)
-{
-    return futex(ftx, op, val, NULL, NULL, 0);
-}
-
-int __futex_syscall4(volative void *ftx, int op, int val, const struct timespec *timeout)
-{
-    return futex(ftx, op, val, (void *)timeout, NULL, 0);
-}
diff --git a/libc/arch-sh/bionic/bzero.S b/libc/arch-sh/bionic/bzero.S
deleted file mode 100644
index ca8bed4..0000000
--- a/libc/arch-sh/bionic/bzero.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-#define BZERO
-#include "memset.S"
diff --git a/libc/arch-sh/bionic/clone.S b/libc/arch-sh/bionic/clone.S
deleted file mode 100644
index 9cb19ee..0000000
--- a/libc/arch-sh/bionic/clone.S
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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 <sys/linux-syscalls.h>
-
-.text
-.type   __pthread_clone, @function
-.globl  __pthread_clone
-.align  4
-
-__pthread_clone:
-    /* insert the args onto the new stack */
-    mov     r5, r0
-    mov.l   r4, @-r0    /* func */
-    mov.l   r7, @-r0    /* arg */
-
-    /* do the system call */
-    mov     r6, r4      /* Set clone_flags. new sp is ready in r5. */
-    mov.l   0f, r3
-    trapa   #(4 + 0x10)
-
-    /* check error */
-    cmp/pz  r0
-    bf      __error
-
-    /* check if parent or child */
-    cmp/pl  r0
-    bt      __return
-
-    /* prepare args for __thread_entry */
-    mov     #8, r1
-    sub     r1, r15     /* -8 */
-    mov.l   @r15+, r5   /* +4 */ /* arg */
-    mov.l   @r15+, r4   /* +4 */ /* func */
-    mov     r15, r6              /* tls */
-
-    /* jump to __thread_entry */
-    mov.l   1f, r0
-    jmp @r0
-    nop
-
-__error:
-    mov     #-1, r0
-__return:
-    rts
-    nop
-
-    .align 2
-0:  .long   __NR_clone
-1:  .long   __thread_entry
-
-/* XXX: TODO: Add __bionic_clone here
- *            See bionic/bionic_clone.c and arch-arm/bionic/clone.S
- *            for more details...
- */
\ No newline at end of file
diff --git a/libc/arch-sh/bionic/crtbegin_dynamic.S b/libc/arch-sh/bionic/crtbegin_dynamic.S
deleted file mode 100644
index daf6c8b..0000000
--- a/libc/arch-sh/bionic/crtbegin_dynamic.S
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2009-2010 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-.text
-.align  4
-.type   _start,#function
-.globl  _start
-
-# this is the small startup code that is first run when
-# any executable that is dynamically-linked with Bionic
-# runs.
-#
-# it's purpose is to call __libc_init with appropriate
-# arguments, which are:
-#
-#    - the address of the raw data block setup by the Linux
-#      kernel ELF loader
-#
-#    - address of an "onexit" function, not used on any
-#      platform supported by Bionic
-#
-#    - address of the "main" function of the program. We
-#      can't hard-code it in the adr pseudo instruction
-#      so we use a tiny trampoline that will get relocated
-#      by the dynamic linker before this code runs
-#
-#    - address of the constructor list
-#
-_start:
-    mov     r15, r4
-    mov     #0, r5
-    mov.l   0f, r6
-    mova    2f, r0
-    mov     r0, r7
-    mov.l   1f, r0
-    jmp     @r0
-    nop
-
-    .balign 4
-0:  .long   main
-1:  .long   __libc_init
-2:  .long   __PREINIT_ARRAY__
-    .long   __INIT_ARRAY__
-    .long   __FINI_ARRAY__
-    .long   __CTOR_LIST__
-
-# the .ctors section contains a list of pointers to "constructor"
-# functions that need to be called in order during C library initialization,
-# just before the program is being run. This is a C++ requirement
-#
-# the last entry shall be 0, and is defined in crtend.S
-#
-    .section .preinit_array, "aw"
-    .globl __PREINIT_ARRAY__
-__PREINIT_ARRAY__:
-    .long -1
-
-    .section .init_array, "aw"
-    .globl __INIT_ARRAY__
-__INIT_ARRAY__:
-    .long -1
-
-    .section .fini_array, "aw"
-    .globl __FINI_ARRAY__
-__FINI_ARRAY__:
-    .long -1
-
-    .section .ctors, "aw"
-    .globl __CTOR_LIST__
-__CTOR_LIST__:
-    .long -1
-
-#include "__dso_handle.S"
diff --git a/libc/arch-sh/bionic/crtbegin_static.S b/libc/arch-sh/bionic/crtbegin_static.S
deleted file mode 100644
index 1d3fdf8..0000000
--- a/libc/arch-sh/bionic/crtbegin_static.S
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2009-2010 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-.text
-.align  4
-.type   _start,#function
-.globl  _start
-
-# this is the small startup code that is first run when
-# any executable that is statically-linked with Bionic
-# runs.
-#
-# it's purpose is to call __libc_init with appropriate
-# arguments, which are:
-#
-#    - the address of the raw data block setup by the Linux
-#      kernel ELF loader
-#
-#    - address of an "onexit" function, not used on any
-#      platform supported by Bionic
-#
-#    - address of the "main" function of the program. We
-#      can't hard-code it in the adr pseudo instruction
-#      so we use a tiny trampoline that will get relocated
-#      by the dynamic linker before this code runs
-#
-#    - address of the constructor list
-#
-_start:
-    mov     r15, r4
-    mov     #0, r5
-    mov.l   0f, r6
-    mova    2f, r0
-    mov     r0, r7
-    mov.l   1f, r0
-    jmp     @r0
-    nop
-
-    .balign 4
-0:  .long   main
-1:  .long   __libc_init
-2:  .long   __PREINIT_ARRAY__
-    .long   __INIT_ARRAY__
-    .long   __FINI_ARRAY__
-    .long   __CTOR_LIST__
-
-    .section .preinit_array, "aw"
-    .globl __PREINIT_ARRAY__
-__PREINIT_ARRAY__:
-    .long -1
-
-    .section .init_array, "aw"
-    .globl __INIT_ARRAY__
-__INIT_ARRAY__:
-    .long -1
-
-    .section .fini_array, "aw"
-    .globl __FINI_ARRAY__
-__FINI_ARRAY__:
-    .long -1
-
-    .section .ctors, "aw"
-    .globl __CTOR_LIST__
-__CTOR_LIST__:
-    .long -1
-
-#include "__dso_handle.S"
diff --git a/libc/arch-sh/bionic/crtend.S b/libc/arch-sh/bionic/crtend.S
deleted file mode 100644
index 4ced3aa..0000000
--- a/libc/arch-sh/bionic/crtend.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-
-    .section .preinit_array, "aw"
-    .long 0
-
-    .section .init_array, "aw"
-    .long 0
-
-    .section .fini_array, "aw"
-    .long 0
-
-    .section .ctors, "aw"
-    .long 0
diff --git a/libc/arch-sh/bionic/ffs.S b/libc/arch-sh/bionic/ffs.S
deleted file mode 100644
index 733694b..0000000
--- a/libc/arch-sh/bionic/ffs.S
+++ /dev/null
@@ -1,103 +0,0 @@
-/*	$NetBSD: ffs.S,v 1.1 2005/12/20 19:28:50 christos Exp $	*/
-
-/*-
- * Copyright (c) 2002 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by ITOH Yasufumi.
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 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 FOUNDATION OR 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 <machine/asm.h>
-
-#if defined(LIBC_SCCS) && !defined(lint)
-	RCSID("$NetBSD: ffs.S,v 1.1 2005/12/20 19:28:50 christos Exp $")
-#endif
-
-/*
- * ffs - find first bit set
- *
- * This code makes use of ``test 8bit'' and ``shift 8bit'' instructions.
- * The remaining 8bit is tested in every 2bit.
- */
-
-ENTRY(ffs)
-	mov	r4,r0		! using r0 specific instructions
-	tst	#0xff,r0
-	bf/s	L8bit
-	mov	#0+1,r1		! ret = 1..8
-
-	tst	r0,r0		! ffs(0) is 0
-	bt	Lzero		! testing here to accelerate ret=1..8 cases
-
-	shlr8	r0
-	tst	#0xff,r0
-	bf/s	L8bit
-	mov	#8+1,r1		! ret = 9..16
-
-	shlr8	r0
-	tst	#0xff,r0
-	bf/s	L8bit
-	mov	#16+1,r1	! ret = 17..24
-
-	shlr8	r0
-	mov	#24+1,r1	! ret = 25..32
-
-L8bit:
-	tst	#0x0f,r0
-	bt	4f
-
-	tst	#0x03,r0
-	bt	2f
-	tst	#0x01,r0	! not bit 0 -> T
-	mov	#0,r0
-	rts
-	 addc	r1,r0		! 0 + r1 + T -> r0
-
-2:	tst	#0x04,r0
-	mov	#2,r0
-	rts
-	 addc	r1,r0
-
-4:	tst	#0x30,r0
-	bt	6f
-	tst	#0x10,r0
-	mov	#4,r0
-	rts
-	 addc	r1,r0
-
-6:	tst	#0x40,r0
-	mov	#6,r0
-	rts
-	 addc	r1,r0
-
-Lzero:	rts
-	 nop
diff --git a/libc/arch-sh/bionic/memcpy.S b/libc/arch-sh/bionic/memcpy.S
deleted file mode 100644
index 9d1b897..0000000
--- a/libc/arch-sh/bionic/memcpy.S
+++ /dev/null
@@ -1,268 +0,0 @@
-/*	$OpenBSD: memcpy.S,v 1.1.1.1 2006/10/10 22:07:10 miod Exp $	*/
-/*	$NetBSD: memcpy.S,v 1.2 2006/04/22 23:53:47 uwe Exp $	*/
-
-/*
- * Copyright (c) 2000 SHIMIZU Ryo <ryo@misakimix.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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 <machine/asm.h>
-
-#if !defined(MEMCOPY) && !defined(MEMMOVE) && !defined(BCOPY)
-#define MEMCOPY
-#endif
-
-#if defined(MEMCOPY) || defined(MEMMOVE)
-#define	REG_DST0	r3
-#define	REG_SRC		r5
-#define	REG_DST		r4
-#else
-#define	REG_SRC		r4
-#define	REG_DST		r5
-#endif
-
-#define	REG_LEN		r6
-
-#if defined(MEMCOPY)
-ENTRY(memcpy)
-#elif defined(MEMMOVE)
-ENTRY(memmove)
-#elif defined(BCOPY)
-ENTRY(bcopy)
-#endif
-#ifdef REG_DST0
-	mov	REG_DST,REG_DST0
-#endif
-	cmp/eq	REG_DST,REG_SRC	/* if ( src == dst ) return; */
-	bt/s	bcopy_return
-	cmp/hi	REG_DST,REG_SRC
-	bf/s	bcopy_overlap
-
-	mov	REG_SRC,r0
-	xor	REG_DST,r0
-	and	#3,r0
-	mov	r0,r1
-	tst	r0,r0		/* (src ^ dst) & 3         */
-	bf/s	word_align
-
-longword_align:
-	tst	REG_LEN,REG_LEN	/* if ( len==0 ) return;   */
-	bt/s	bcopy_return
-
-
-	mov	REG_SRC,r0
-	tst	#1,r0		/* if ( src & 1 )          */
-	bt	1f
-	mov.b	@REG_SRC+,r0	/*    *dst++ = *src++;     */
-	add	#-1,REG_LEN
-	mov.b	r0,@REG_DST
-	add	#1,REG_DST
-1:
-
-
-	mov	#1,r0
-	cmp/hi	r0,REG_LEN	/* if ( (len > 1) &&       */
-	bf/s	1f
-	mov	REG_SRC,r0
-	tst	#2,r0		/*      (src & 2) {        */
-	bt	1f
-	mov.w	@REG_SRC+,r0	/*        *((unsigned short*)dst)++ = *((unsigned short*)src)++; */
-	add	#-2,REG_LEN	/*        len -= 2;                                              */
-	mov.w	r0,@REG_DST
-	add	#2,REG_DST	/* }                       */
-1:
-
-
-	mov	#3,r1
-	cmp/hi	r1,REG_LEN	/* while ( len > 3 ) {     */
-	bf/s	no_align_delay
-	tst	REG_LEN,REG_LEN
-2:
-	mov.l	@REG_SRC+,r0	/*   *((unsigned long*)dst)++ = *((unsigned long*)src)++;        */
-	add	#-4,REG_LEN	/*   len -= 4;                                                   */
-	mov.l	r0,@REG_DST
-	cmp/hi	r1,REG_LEN
-	bt/s	2b
-	add	#4,REG_DST	/* }                       */
-
-	bra	no_align_delay
-	tst	REG_LEN,REG_LEN
-
-
-word_align:
-	mov	r1,r0
-	tst	#1,r0
-	bf/s	no_align_delay
-	tst	REG_LEN,REG_LEN	/* if ( len == 0 ) return; */
-	bt	bcopy_return
-
-
-	mov	REG_SRC,r0	/* if ( src & 1 )          */
-	tst	#1,r0
-	bt	1f
-	mov.b	@REG_SRC+,r0	/*    *dst++ = *src++;     */
-	add	#-1,REG_LEN
-	mov.b	r0,@REG_DST
-	add	#1,REG_DST
-1:
-
-
-	mov	#1,r1
-	cmp/hi	r1,REG_LEN	/* while ( len > 1 ) {     */
-	bf/s	no_align_delay
-	tst	REG_LEN,REG_LEN
-2:
-	mov.w	@REG_SRC+,r0	/*   *((unsigned short*)dst)++ = *((unsigned short*)src)++;      */
-	add	#-2,REG_LEN	/*   len -= 2;                                                   */
-	mov.w	r0,@REG_DST
-	cmp/hi	r1,REG_LEN
-	bt/s	2b
-	add	#2,REG_DST	/* }                       */
-
-
-no_align:
-	tst	REG_LEN,REG_LEN	/* while ( len!= ) {       */
-no_align_delay:
-	bt	bcopy_return
-1:
-	mov.b	@REG_SRC+,r0	/*    *dst++ = *src++;     */
-	add	#-1,REG_LEN	/*    len--;               */
-	mov.b	r0,@REG_DST
-	tst	REG_LEN,REG_LEN
-	bf/s	1b
-	add	#1,REG_DST	/* }                       */
-bcopy_return:
-	rts
-#ifdef REG_DST0
-	mov	REG_DST0,r0
-#else
-	nop
-#endif
-
-
-bcopy_overlap:
-	add	REG_LEN,REG_SRC
-	add	REG_LEN,REG_DST
-
-	mov	REG_SRC,r0
-	xor	REG_DST,r0
-	and	#3,r0
-	mov	r0,r1
-	tst	r0,r0		/* (src ^ dst) & 3         */
-	bf/s	ov_word_align
-
-ov_longword_align:
-	tst	REG_LEN,REG_LEN	/* if ( len==0 ) return;   */
-	bt/s	bcopy_return
-
-
-	mov	REG_SRC,r0
-	tst	#1,r0		/* if ( src & 1 )          */
-	bt	1f
-	add	#-1,REG_SRC	/*    *--dst = *--src;     */
-	mov.b	@REG_SRC,r0
-	mov.b	r0,@-REG_DST
-	add	#-1,REG_LEN
-1:
-
-
-	mov	#1,r0
-	cmp/hi	r0,REG_LEN	/* if ( (len > 1) &&       */
-	bf/s	1f
-	mov	REG_SRC,r0
-	tst	#2,r0		/*      (src & 2) {        */
-	bt	1f
-	add	#-2,REG_SRC	/*        *--((unsigned short*)dst) = *--((unsigned short*)src); */
-	mov.w	@REG_SRC,r0
-	add	#-2,REG_LEN	/*        len -= 2;                                              */
-	mov.w	r0,@-REG_DST	/* }                       */
-1:
-
-
-	mov	#3,r1
-	cmp/hi	r1,REG_LEN	/* while ( len > 3 ) {     */
-	bf/s	ov_no_align_delay
-	tst	REG_LEN,REG_LEN
-2:
-	add	#-4,REG_SRC
-	mov.l	@REG_SRC,r0	/*   *((unsigned long*)dst)++ = *((unsigned long*)src)++;        */
-	add	#-4,REG_LEN	/*   len -= 4;                                                   */
-	cmp/hi	r1,REG_LEN
-	bt/s	2b
-	mov.l	r0,@-REG_DST	/* }                       */
-
-	bra	ov_no_align_delay
-	tst	REG_LEN,REG_LEN
-
-
-ov_word_align:
-	mov	r1,r0
-	tst	#1,r0
-	bf/s	ov_no_align_delay
-	tst	REG_LEN,REG_LEN	/* if ( len == 0 ) return; */
-	bt	bcopy_return
-
-
-	mov	REG_SRC,r0	/* if ( src & 1 )          */
-	tst	#1,r0
-	bt	1f
-	add	#-1,REG_SRC
-	mov.b	@REG_SRC,r0	/*    *--dst = *--src;     */
-	add	#-1,REG_LEN
-	mov.b	r0,@-REG_DST
-1:
-
-
-	mov	#1,r1
-	cmp/hi	r1,REG_LEN	/* while ( len > 1 ) {     */
-	bf/s	ov_no_align_delay
-	tst	REG_LEN,REG_LEN
-2:
-	add	#-2,REG_SRC
-	mov.w	@REG_SRC,r0	/*   *--((unsigned short*)dst) = *--((unsigned short*)src);      */
-	add	#-2,REG_LEN	/*   len -= 2;                                                   */
-	cmp/hi	r1,REG_LEN
-	bt/s	2b
-	mov.w	r0,@-REG_DST	/* }                       */
-
-
-ov_no_align:
-	tst	REG_LEN,REG_LEN	/* while ( len!= ) {       */
-ov_no_align_delay:
-	bt	9f
-1:
-	add	#-1,REG_SRC
-	mov.b	@REG_SRC,r0	/*    *--dst = *--src;     */
-	add	#-1,REG_LEN	/*    len--;               */
-	tst	REG_LEN,REG_LEN
-	bf/s	1b
-	mov.b	r0,@-REG_DST	/* }                       */
-9:
-	rts
-#ifdef REG_DST0
-	mov	REG_DST0,r0
-#else
-	nop
-#endif
diff --git a/libc/arch-sh/bionic/memmove.S b/libc/arch-sh/bionic/memmove.S
deleted file mode 100644
index 023fc10..0000000
--- a/libc/arch-sh/bionic/memmove.S
+++ /dev/null
@@ -1,5 +0,0 @@
-/*	$OpenBSD: memmove.S,v 1.1.1.1 2006/10/10 22:07:10 miod Exp $	*/
-/*	$NetBSD: memmove.S,v 1.2 2006/04/22 23:53:47 uwe Exp $	*/
-
-#define MEMMOVE
-#include "memcpy.S"
diff --git a/libc/arch-sh/bionic/memset.S b/libc/arch-sh/bionic/memset.S
deleted file mode 100644
index 73b0d06..0000000
--- a/libc/arch-sh/bionic/memset.S
+++ /dev/null
@@ -1,295 +0,0 @@
-/*	$OpenBSD: memset.S,v 1.1.1.1 2006/10/10 22:07:10 miod Exp $	*/
-/*	$NetBSD: memset.S,v 1.1 2005/12/20 19:28:50 christos Exp $	*/
-
-/*-
- * Copyright (c) 2002 SHIMIZU Ryo.  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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 <machine/asm.h>
-
-#define	REG_PTR				r0
-#define	REG_TMP1			r1
-
-#ifdef BZERO
-# define	REG_C			r2
-# define	REG_DST			r4
-# define	REG_LEN			r5
-#else
-# define	REG_DST0		r3
-# define	REG_DST			r4
-# define	REG_C			r5
-# define	REG_LEN			r6
-#endif
-
-#ifdef BZERO
-ENTRY(bzero)
-#else
-ENTRY(memset)
-	mov	REG_DST,REG_DST0	/* for return value */
-#endif
-	/* small amount to fill ? */
-	mov	#28,REG_TMP1
-	cmp/hs	REG_TMP1,REG_LEN	/* if (len >= 28) goto large; */
-	bt/s	large
-	mov	#12,REG_TMP1		/* if (len >= 12) goto small; */
-	cmp/hs	REG_TMP1,REG_LEN
-	bt/s	small
-#ifdef BZERO
-	mov	#0,REG_C
-#endif
-	/* very little fill (0 ~ 11 bytes) */
-	tst	REG_LEN,REG_LEN
-	add	REG_DST,REG_LEN
-	bt/s	done
-	add	#1,REG_DST
-
-	/* unroll 4 loops */
-	cmp/eq	REG_DST,REG_LEN
-1:	mov.b	REG_C,@-REG_LEN
-	bt/s	done
-	cmp/eq	REG_DST,REG_LEN
-	mov.b	REG_C,@-REG_LEN
-	bt/s	done
-	cmp/eq	REG_DST,REG_LEN
-	mov.b	REG_C,@-REG_LEN
-	bt/s	done
-	cmp/eq	REG_DST,REG_LEN
-	mov.b	REG_C,@-REG_LEN
-	bf/s	1b
-	cmp/eq	REG_DST,REG_LEN
-done:
-#ifdef BZERO
-	rts
-	nop
-#else
-	rts
-	mov	REG_DST0,r0
-#endif
-
-
-small:
-	mov	REG_DST,r0
-	tst	#1,r0
-	bt/s	small_aligned
-	mov	REG_DST,REG_TMP1
-	shll	REG_LEN
-	mova	1f,r0			/* 1f must be 4bytes aligned! */
-	add	#16,REG_TMP1		/* REG_TMP1 = dst+16; */
-	sub	REG_LEN,r0
-	jmp	@r0
-	mov	REG_C,r0
-
-	.align	2
-	mov.b	r0,@(15,REG_TMP1)
-	mov.b	r0,@(14,REG_TMP1)
-	mov.b	r0,@(13,REG_TMP1)
-	mov.b	r0,@(12,REG_TMP1)
-	mov.b	r0,@(11,REG_TMP1)
-	mov.b	r0,@(10,REG_TMP1)
-	mov.b	r0,@(9,REG_TMP1)
-	mov.b	r0,@(8,REG_TMP1)
-	mov.b	r0,@(7,REG_TMP1)
-	mov.b	r0,@(6,REG_TMP1)
-	mov.b	r0,@(5,REG_TMP1)
-	mov.b	r0,@(4,REG_TMP1)
-	mov.b	r0,@(3,REG_TMP1)
-	mov.b	r0,@(2,REG_TMP1)
-	mov.b	r0,@(1,REG_TMP1)
-	mov.b	r0,@REG_TMP1
-	mov.b	r0,@(15,REG_DST)
-	mov.b	r0,@(14,REG_DST)
-	mov.b	r0,@(13,REG_DST)
-	mov.b	r0,@(12,REG_DST)
-	mov.b	r0,@(11,REG_DST)
-	mov.b	r0,@(10,REG_DST)
-	mov.b	r0,@(9,REG_DST)
-	mov.b	r0,@(8,REG_DST)
-	mov.b	r0,@(7,REG_DST)
-	mov.b	r0,@(6,REG_DST)
-	mov.b	r0,@(5,REG_DST)
-	mov.b	r0,@(4,REG_DST)
-	mov.b	r0,@(3,REG_DST)
-	mov.b	r0,@(2,REG_DST)
-	mov.b	r0,@(1,REG_DST)
-#ifdef BZERO
-	rts
-1:	mov.b	r0,@REG_DST
-#else
-	mov.b	r0,@REG_DST
-1:	rts
-	mov	REG_DST0,r0
-#endif
-
-
-/* 2 bytes aligned small fill */
-small_aligned:
-#ifndef BZERO
-	extu.b	REG_C,REG_TMP1		/* REG_C = ??????xx, REG_TMP1 = ????00xx */
-	shll8	REG_C			/* REG_C = ????xx00, REG_TMP1 = ????00xx */
-	or	REG_TMP1,REG_C		/* REG_C = ????xxxx */
-#endif
-
-	mov	REG_LEN,r0
-	tst	#1,r0			/* len is aligned? */
-	bt/s	1f
-	add	#-1,r0
-	mov.b	REG_C,@(r0,REG_DST)	/* fill last a byte */
-	mov	r0,REG_LEN
-1:
-
-	mova	1f,r0			/* 1f must be 4bytes aligned! */
-	sub	REG_LEN,r0
-	jmp	@r0
-	mov	REG_C,r0
-
-	.align	2
-	mov.w	r0,@(30,REG_DST)
-	mov.w	r0,@(28,REG_DST)
-	mov.w	r0,@(26,REG_DST)
-	mov.w	r0,@(24,REG_DST)
-	mov.w	r0,@(22,REG_DST)
-	mov.w	r0,@(20,REG_DST)
-	mov.w	r0,@(18,REG_DST)
-	mov.w	r0,@(16,REG_DST)
-	mov.w	r0,@(14,REG_DST)
-	mov.w	r0,@(12,REG_DST)
-	mov.w	r0,@(10,REG_DST)
-	mov.w	r0,@(8,REG_DST)
-	mov.w	r0,@(6,REG_DST)
-	mov.w	r0,@(4,REG_DST)
-	mov.w	r0,@(2,REG_DST)
-#ifdef BZERO
-	rts
-1:	mov.w	r0,@REG_DST
-#else
-	mov.w	r0,@REG_DST
-1:	rts
-	mov	REG_DST0,r0
-#endif
-
-
-
-	.align	2
-large:
-#ifdef BZERO
-	mov	#0,REG_C
-#else
-	extu.b	REG_C,REG_TMP1		/* REG_C = ??????xx, REG_TMP1 = ????00xx */
-	shll8	REG_C			/* REG_C = ????xx00, REG_TMP1 = ????00xx */
-	or	REG_C,REG_TMP1		/* REG_C = ????xx00, REG_TMP1 = ????xxxx */
-	swap.w	REG_TMP1,REG_C		/* REG_C = xxxx????, REG_TMP1 = ????xxxx */
-	xtrct	REG_TMP1,REG_C		/* REG_C = xxxxxxxx */
-#endif
-
-	mov	#3,REG_TMP1
-	tst	REG_TMP1,REG_DST
-	mov	REG_DST,REG_PTR
-	bf/s	unaligned_dst
-	add	REG_LEN,REG_PTR		/* REG_PTR = dst + len; */
-	tst	REG_TMP1,REG_LEN
-	bf/s	unaligned_len
-
-aligned:
-	/* fill 32*n bytes */
-	mov	#32,REG_TMP1
-	cmp/hi	REG_LEN,REG_TMP1
-	bt	9f
-	.align	2
-1:	sub	REG_TMP1,REG_PTR
-	mov.l	REG_C,@REG_PTR
-	sub	REG_TMP1,REG_LEN
-	mov.l	REG_C,@(4,REG_PTR)
-	cmp/hi	REG_LEN,REG_TMP1
-	mov.l	REG_C,@(8,REG_PTR)
-	mov.l	REG_C,@(12,REG_PTR)
-	mov.l	REG_C,@(16,REG_PTR)
-	mov.l	REG_C,@(20,REG_PTR)
-	mov.l	REG_C,@(24,REG_PTR)
-	bf/s	1b
-	mov.l	REG_C,@(28,REG_PTR)
-9:
-
-	/* fill left 4*n bytes */
-	cmp/eq	REG_DST,REG_PTR
-	bt	9f
-	add	#4,REG_DST
-	cmp/eq	REG_DST,REG_PTR
-1:	mov.l	REG_C,@-REG_PTR
-	bt/s	9f
-	cmp/eq	REG_DST,REG_PTR
-	mov.l	REG_C,@-REG_PTR
-	bt/s	9f
-	cmp/eq	REG_DST,REG_PTR
-	mov.l	REG_C,@-REG_PTR
-	bt/s	9f
-	cmp/eq	REG_DST,REG_PTR
-	mov.l	REG_C,@-REG_PTR
-	bf/s	1b
-	cmp/eq	REG_DST,REG_PTR
-9:
-#ifdef BZERO
-	rts
-	nop
-#else
-	rts
-	mov	REG_DST0,r0
-#endif
-
-
-unaligned_dst:
-	mov	#1,REG_TMP1
-	tst	REG_TMP1,REG_DST	/* if (dst & 1) {               */
-	add	#1,REG_TMP1
-	bt/s	2f
-	tst	REG_TMP1,REG_DST
-	mov.b	REG_C,@REG_DST		/*   *dst++ = c;                */
-	add	#1,REG_DST
-	tst	REG_TMP1,REG_DST
-2:					/* }                            */
-					/* if (dst & 2) {               */
-	bt	4f
-	mov.w	REG_C,@REG_DST		/*   *(u_int16_t*)dst++ = c;    */
-	add	#2,REG_DST
-4:					/* }                            */
-
-
-	tst	#3,REG_PTR		/* if (ptr & 3) {               */
-	bt/s	4f			/*                              */
-unaligned_len:
-	tst	#1,REG_PTR		/*   if (ptr & 1) {             */
-	bt/s	2f
-	tst	#2,REG_PTR
-	mov.b	REG_C,@-REG_PTR		/*     --ptr = c;               */
-2:					/*   }                          */
-					/*   if (ptr & 2) {             */
-	bt	4f
-	mov.w	REG_C,@-REG_PTR		/*     *--(u_int16_t*)ptr = c;  */
-4:					/*   }                          */
-					/* }                            */
-
-	mov	REG_PTR,REG_LEN
-	bra	aligned
-	sub	REG_DST,REG_LEN
-
diff --git a/libc/arch-sh/bionic/pipe.S b/libc/arch-sh/bionic/pipe.S
deleted file mode 100644
index 936da2d..0000000
--- a/libc/arch-sh/bionic/pipe.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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 <sys/linux-syscalls.h>
-
-.text
-.type   pipe, @function
-.globl  pipe
-.align  4
-
-pipe:
-    /* invoke trap */
-    mov.l   0f, r3          /* trap num */
-    trapa   #(0 + 0x10)
-
-
-    /* check return value */
-    cmp/pz  r0
-    bt      setfds
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-    bra     end
-    nop
-setfds:
-    mov.l   r0, @r4
-    add     #4, r4
-    mov.l   r1, @r4
-end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_pipe
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/bionic/setjmp.S b/libc/arch-sh/bionic/setjmp.S
deleted file mode 100644
index 67f3397..0000000
--- a/libc/arch-sh/bionic/setjmp.S
+++ /dev/null
@@ -1,167 +0,0 @@
-/*	$OpenBSD: setjmp.S,v 1.2 2007/03/02 06:11:54 miod Exp $	*/
-/*	$NetBSD: setjmp.S,v 1.10 2006/01/05 19:21:37 uwe Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND 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 REGENTS OR 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.
- *
- *	from: @(#)setjmp.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-#include <machine/setjmp.h>
-
-/*
- * C library -- setjmp, longjmp
- *
- *	longjmp(a,v)
- * will generate a "return(v)" from the last call to
- *	setjmp(a)
- * by restoring registers from the stack.
- * The previous signal state is restored.
- */
-
-ENTRY(setjmp)
-	PIC_PROLOGUE(.L_got_1)
-	sts.l	pr,	@-sp
-	mov.l	r4,	@-sp
-
-	mov.l	.L_sigprocmask_1, r0
-	mov	r4,	r6
-	mov	#1,	r4		/* how = SIG_BLOCK */
-	mov	#0,	r5		/* new = NULL */
-1:	CALL	r0
-	 add	#4,	r6		/* old = &sigmask */
-
-	mov.l	@sp+,	r4
-	lds.l	@sp+,	pr
-	PIC_EPILOGUE
-
-	/* identical to _setjmp except that the first word is non-zero */
-#if defined(__SH4__) && !defined(__SH4_NOFPU__)
-	add	#(_JBLEN * 4), r4
-	sts	fpscr,	r1
-	xor	r0,	r0
-	mov.l	r1,	@-r4
-	lds	r0,	fpscr
-	sts.l	fpul,	@-r4
-	fmov.s	fr15,	@-r4
-	fmov.s	fr14,	@-r4
-	fmov.s	fr13,	@-r4
-	fmov.s	fr12,	@-r4
-	frchg
-	fmov.s	fr15,	@-r4
-	fmov.s	fr14,	@-r4
-	fmov.s	fr13,	@-r4
-	fmov.s	fr12,	@-r4
-	lds	r1,	fpscr
-#else
-	add	#((_JBLEN - 10) * 4), r4
-#endif
-	sts.l	mach,	@-r4
-	sts.l	macl,	@-r4
-	mov.l	r15,	@-r4
-	mov.l	r14,	@-r4
-	mov.l	r13,	@-r4
-	mov.l	r12,	@-r4
-	mov.l	r11,	@-r4
-	mov.l	r10,	@-r4
-	mov.l	r9,	@-r4
-	mov.l	r8,	@-r4
-	sts.l	pr,	@-r4
-	add	#-4,	r4		/* skip signal mask */
-	mov	#1,	r0
-	mov.l	r0,	@-r4		/* has signal mask */
-	rts
-	 xor	r0,	r0
-
-	.align	2
-.L_got_1:		PIC_GOT_DATUM
-.L_sigprocmask_1:	CALL_DATUM(_C_LABEL(sigprocmask), 1b)
-	SET_ENTRY_SIZE(setjmp)
-
-ENTRY(longjmp)
-	/* we won't return here, so we don't need to save pr and r12 */
-	PIC_PROLOGUE_NOSAVE(.L_got_2)
-	mov.l	r5,	@-sp
-	mov.l	r4,	@-sp
-
-	mov.l	.L_sigprocmask_2, r0
-	mov	r4,	r5
-	mov	#3,	r4		/* how = SIG_SETMASK */
-	add	#4,	r5		/* new = &sigmask */
-1:	CALL	r0
-	 mov	#0,	r6		/* old = NULL */
-
-	mov.l	@sp+,	r4
-	mov.l	@sp+,	r5
-
-	/* identical to _longjmp */
-	add	#8,	r4
-	lds.l	@r4+,	pr
-	mov.l	@r4+,	r8
-	mov.l	@r4+,	r9
-	mov.l	@r4+,	r10
-	mov.l	@r4+,	r11
-	mov.l	@r4+,	r12
-	mov.l	@r4+,	r13
-	mov.l	@r4+,	r14
-	mov.l	@r4+,	r15
-	lds.l	@r4+,	macl
-	lds.l	@r4+,	mach
-#if defined(__SH4__) && !defined(__SH4_NOFPU__)
-	xor	r0, 	r0
-	lds	r0,	fpscr
-	frchg
-	fmov.s	@r4+,	fr12
-	fmov.s	@r4+,	fr13
-	fmov.s	@r4+,	fr14
-	fmov.s	@r4+,	fr15
-	frchg
-	fmov.s	@r4+,	fr12
-	fmov.s	@r4+,	fr13
-	fmov.s	@r4+,	fr14
-	fmov.s	@r4+,	fr15
-	lds.l	@r4+,	fpul
-	lds.l	@r4+,	fpscr
-#endif
-
-	mov	r5,	r0
-	tst	r0,	r0	/* make sure return value is non-zero */
-	bf	.L0
-	add	#1,	r0
-.L0:
-	rts
-	 nop
-
-	.align	2
-.L_got_2:		PIC_GOT_DATUM
-.L_sigprocmask_2:	CALL_DATUM(_C_LABEL(sigprocmask), 1b)
-	SET_ENTRY_SIZE(longjmp)
diff --git a/libc/arch-sh/bionic/sigsetjmp.S b/libc/arch-sh/bionic/sigsetjmp.S
deleted file mode 100644
index f88913a..0000000
--- a/libc/arch-sh/bionic/sigsetjmp.S
+++ /dev/null
@@ -1,166 +0,0 @@
-/*	$OpenBSD: sigsetjmp.S,v 1.2 2007/03/02 06:11:54 miod Exp $	*/
-/*	$NetBSD: sigsetjmp.S,v 1.9 2006/01/05 19:21:37 uwe Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND 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 REGENTS OR 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.
- *
- *	from: @(#)setjmp.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-#include <machine/setjmp.h>
-
-ENTRY(sigsetjmp)
-	tst	r5,	r5		/* if (savemask == 0) */
-	bt	2f
-
-	/* identical to setjmp */
-	PIC_PROLOGUE(.L_got_1)
-	sts.l	pr,	@-sp
-	mov.l	r4,	@-sp
-	mov.l	r5,	@-sp
-
-	mov.l	.L_sigprocmask_1, r0
-	mov	r4,	r6
-	mov	#1,	r4		/* how = SIG_BLOCK */
-	mov	#0,	r5		/* new = NULL */
-1:	CALL	r0
-	 add	#4,	r6		/* old = &sigmask */
-
-	mov.l	@sp+,	r5
-	mov.l	@sp+,	r4
-	lds.l	@sp+,	pr
-	PIC_EPILOGUE
-
-2:	/* identical to _setjmp except that first word is in r5 */
-#if defined(__SH4__) && !defined(__SH4_NOFPU__)
-	add	#(_JBLEN * 4), r4
-	sts	fpscr,	r1
-	xor	r0,	r0
-	mov.l	r1,	@-r4
-	lds	r0,	fpscr
-	sts.l	fpul,	@-r4
-	fmov.s	fr15,	@-r4
-	fmov.s	fr14,	@-r4
-	fmov.s	fr13,	@-r4
-	fmov.s	fr12,	@-r4
-	frchg
-	fmov.s	fr15,	@-r4
-	fmov.s	fr14,	@-r4
-	fmov.s	fr13,	@-r4
-	fmov.s	fr12,	@-r4
-	lds	r1,	fpscr
-#else
-	add	#((_JBLEN - 10) * 4), r4
-#endif
-	sts.l	mach,	@-r4
-	sts.l	macl,	@-r4
-	mov.l	r15,	@-r4
-	mov.l	r14,	@-r4
-	mov.l	r13,	@-r4
-	mov.l	r12,	@-r4
-	mov.l	r11,	@-r4
-	mov.l	r10,	@-r4
-	mov.l	r9,	@-r4
-	mov.l	r8,	@-r4
-	sts.l	pr,	@-r4
-	add	#-4,	r4		/* skip signal mask */
-	mov.l	r5,	@-r4		/* has signal mask? */
-	rts
-	 xor	r0,	r0
-
-	.align	2
-.L_got_1:		PIC_GOT_DATUM
-.L_sigprocmask_1:	CALL_DATUM(_C_LABEL(sigprocmask), 1b)
-	SET_ENTRY_SIZE(sigsetjmp)
-
-ENTRY(siglongjmp)
-	mov.l	@r4+,	r0
-	tst	r0,	r0
-	bt	2f			/* if no mask */
-
-	/* identical to longjmp */
-	/* we won't return here, so we don't need to save pr and r12 */
-	PIC_PROLOGUE_NOSAVE(.L_got_2)
-	mov.l	r5,	@-sp
-	mov.l	r4,	@-sp
-
-	mov.l	.L_sigprocmask_2, r0
-	mov	r4,	r5		/* new = &sigmask */
-	mov	#3,	r4		/* how = SIG_SETMASK */
-1:	CALL	r0
-	 mov	#0,	r6		/* old = NULL */
-
-	mov.l	@sp+,	r4
-	mov.l	@sp+,	r5
-
-2:	/* identical to _longjmp */
-	add	#4,	r4
-	lds.l	@r4+,	pr
-	mov.l	@r4+,	r8
-	mov.l	@r4+,	r9
-	mov.l	@r4+,	r10
-	mov.l	@r4+,	r11
-	mov.l	@r4+,	r12
-	mov.l	@r4+,	r13
-	mov.l	@r4+,	r14
-	mov.l	@r4+,	r15
-	lds.l	@r4+,	macl
-	lds.l	@r4+,	mach
-#if defined(__SH4__) && !defined(__SH4_NOFPU__)
-	xor	r0, 	r0
-	lds	r0,	fpscr
-	frchg
-	fmov.s	@r4+,	fr12
-	fmov.s	@r4+,	fr13
-	fmov.s	@r4+,	fr14
-	fmov.s	@r4+,	fr15
-	frchg
-	fmov.s	@r4+,	fr12
-	fmov.s	@r4+,	fr13
-	fmov.s	@r4+,	fr14
-	fmov.s	@r4+,	fr15
-	lds.l	@r4+,	fpul
-	lds.l	@r4+,	fpscr
-#endif
-
-	mov	r5,	r0
-	tst	r0,	r0	/* make sure return value is non-zero */
-	bf	.L0
-	add	#1,	r0
-.L0:
-	rts
-	 nop
-
-	.align	2
-.L_got_2:		PIC_GOT_DATUM
-.L_sigprocmask_2:	CALL_DATUM(_C_LABEL(sigprocmask), 1b)
-	SET_ENTRY_SIZE(siglongjmp)
diff --git a/libc/arch-sh/bionic/syscall.S b/libc/arch-sh/bionic/syscall.S
deleted file mode 100644
index 7e9f307..0000000
--- a/libc/arch-sh/bionic/syscall.S
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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 <sys/linux-syscalls.h>
-
-.text
-.type syscall, @function
-.globl syscall
-.align 4
-
-/*
- * Current implementation assumes that the all syscall
- * has maximum 7 arguments.
- */
-syscall:
-    /* get args */
-    mov     r4, r3      /* system call number */
-    mov     r5, r4
-    mov     r6, r5
-    mov     r7, r6
-    mov.l   @r15, r7
-    mov.l   @(4, r15), r0
-    mov.l   @(8, r15), r1
-    mov.l   @(12, r15), r2
-
-    /* invoke trap */
-    trapa   #(7 + 0x10) /* assuming 7 arguments */
-
-    /* check return value */
-    cmp/pz  r0
-    bt      end
-
-    /* keep error number */
-    mov.l   r0, @-r15
-    mov.l   0f, r1
-    jsr     @r1
-    mov     r0, r4
-    mov.l   @r15+, r0
-
-end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __set_errno
diff --git a/libc/arch-sh/bionic/unwind.c b/libc/arch-sh/bionic/unwind.c
deleted file mode 100644
index 33ec58c..0000000
--- a/libc/arch-sh/bionic/unwind.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-
-typedef long unsigned int *_Unwind_Ptr;
-
diff --git a/libc/arch-sh/include/endian.h b/libc/arch-sh/include/endian.h
deleted file mode 100644
index ad10164..0000000
--- a/libc/arch-sh/include/endian.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*	$OpenBSD: endian.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $	*/
-/*	$NetBSD: endian.h,v 1.4 2000/03/17 00:09:25 mycroft Exp $	*/
-
-/* Written by Manuel Bouyer. Public domain */
-
-#ifndef _SH_ENDIAN_H_
-#define	_SH_ENDIAN_H_
-
-#ifdef  __GNUC__
-
-#define	__swap64md	__swap64gen
-
-#define __swap16md(x) ({						\
-	uint16_t rval;							\
-									\
-	__asm volatile ("swap.b %1,%0" : "=r"(rval) : "r"(x));		\
-									\
-	rval;								\
-})
-
-#define __swap32md(x) ({						\
-	uint32_t rval;							\
-									\
-	__asm volatile ("swap.b %1,%0; swap.w %0,%0; swap.b %0,%0"	\
-			  : "=r"(rval) : "r"(x));			\
-									\
-	rval;								\
-})
-
-#define MD_SWAP
-
-#endif /* __GNUC_ */
-
-#define	_BYTE_ORDER _LITTLE_ENDIAN
-#include <sys/endian.h>
-
-#define	__STRICT_ALIGNMENT
-
-#endif /* !_SH_ENDIAN_H_ */
diff --git a/libc/arch-sh/include/machine/_types.h b/libc/arch-sh/include/machine/_types.h
deleted file mode 100644
index 6f59e21..0000000
--- a/libc/arch-sh/include/machine/_types.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*	$OpenBSD: _types.h,v 1.6 2008/07/21 20:50:55 martynas Exp $	*/
-
-/*-
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND 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 REGENTS OR 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.
- *
- *	@(#)types.h	8.3 (Berkeley) 1/5/94
- *	@(#)ansi.h	8.2 (Berkeley) 1/4/94
- */
-
-#ifndef _SH__TYPES_H_
-#define _SH__TYPES_H_
-
-#if defined(_KERNEL)
-typedef struct label_t {
-	int val[9];
-} label_t;
-#endif
-
-/* 7.18.1.1 Exact-width integer types */
-typedef	__signed char		__int8_t;
-typedef	unsigned char		__uint8_t;
-typedef	short			__int16_t;
-typedef	unsigned short		__uint16_t;
-typedef	int			__int32_t;
-typedef	unsigned int		__uint32_t;
-/* LONGLONG */
-typedef	long long		__int64_t;
-/* LONGLONG */
-typedef	unsigned long long	__uint64_t;
-
-/* 7.18.1.2 Minimum-width integer types */
-typedef	__int8_t		__int_least8_t;
-typedef	__uint8_t		__uint_least8_t;
-typedef	__int16_t		__int_least16_t;
-typedef	__uint16_t		__uint_least16_t;
-typedef	__int32_t		__int_least32_t;
-typedef	__uint32_t		__uint_least32_t;
-typedef	__int64_t		__int_least64_t;
-typedef	__uint64_t		__uint_least64_t;
-
-/* 7.18.1.3 Fastest minimum-width integer types */
-typedef	__int32_t		__int_fast8_t;
-typedef	__uint32_t		__uint_fast8_t;
-typedef	__int32_t		__int_fast16_t;
-typedef	__uint32_t		__uint_fast16_t;
-typedef	__int32_t		__int_fast32_t;
-typedef	__uint32_t		__uint_fast32_t;
-typedef	__int64_t		__int_fast64_t;
-typedef	__uint64_t		__uint_fast64_t;
-
-/* 7.18.1.4 Integer types capable of holding object pointers */
-typedef	long			__intptr_t;
-typedef	unsigned long		__uintptr_t;
-
-/* 7.18.1.5 Greatest-width integer types */
-typedef	__int64_t		__intmax_t;
-typedef	__uint64_t		__uintmax_t;
-
-/* Register size */
-typedef __uint32_t		__register_t;
-
-/* VM system types */
-typedef unsigned long		__vaddr_t;
-typedef unsigned long		__paddr_t;
-typedef unsigned long		__vsize_t;
-typedef unsigned long		__psize_t;
-
-/* Standard system types */
-typedef int			__clock_t;
-typedef int			__clockid_t;
-typedef double			__double_t;
-typedef float			__float_t;
-typedef long long		__off_t;
-typedef long			__ptrdiff_t;
-#if 0
-/* cut it off for Android-SH */
-typedef	unsigned long		__size_t;
-#endif
-typedef	long			__ssize_t;
-typedef	int			__time_t;
-typedef int			__timer_t;
-#if defined(__GNUC__) && __GNUC__ >= 3
-typedef	__builtin_va_list	__va_list;
-#else
-struct __va_list_tag;
-typedef	struct __va_list_tag *	__va_list;
-#endif
-
-/* Wide character support types */
-#ifndef __cplusplus
-typedef	int			__wchar_t;
-#endif
-typedef int			__wint_t;
-typedef	int			__rune_t;
-typedef	void *			__wctrans_t;
-typedef	void *			__wctype_t;
-
-/* Feature test macros */
-#define	__HAVE_GENERIC_SOFT_INTERRUPTS
-
-#endif	/* _SH__TYPES_H_ */
diff --git a/libc/arch-sh/include/machine/asm.h b/libc/arch-sh/include/machine/asm.h
deleted file mode 100644
index c659a9d..0000000
--- a/libc/arch-sh/include/machine/asm.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*	$OpenBSD: asm.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $	*/
-/*	$NetBSD: asm.h,v 1.25 2006/01/20 22:02:40 christos Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND 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 REGENTS OR 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.
- *
- *	@(#)asm.h	5.5 (Berkeley) 5/7/91
- */
-
-#ifndef _SH_ASM_H_
-#define	_SH_ASM_H_
-
-#ifdef __ELF__
-# define _C_LABEL(x)	x
-#else
-#ifdef __STDC__
-# define _C_LABEL(x)	_ ## x
-#else
-# define _C_LABEL(x)	_/**/x
-#endif
-#endif
-#define	_ASM_LABEL(x)	x
-
-#ifdef __STDC__
-# define __CONCAT(x,y)	x ## y
-# define __STRING(x)	#x
-#else
-# define __CONCAT(x,y)	x/**/y
-# define __STRING(x)	"x"
-#endif
-
-/* let kernels and others override entrypoint alignment */
-#ifndef _ALIGN_TEXT
-# define _ALIGN_TEXT .align 2
-#endif
-
-#ifdef __ELF__
-#define	_ENTRY(x)							\
-	.text								;\
-	_ALIGN_TEXT							;\
-	.globl x							;\
-	.type x,@function						;\
-	x:
-#else /* !__ELF__ */
-#define	_ENTRY(x)							\
-	.text								;\
-	_ALIGN_TEXT							;\
-	.globl x							;\
-	x:
-#endif /* !__ELF__ */
-
-#ifdef GPROF
-#define	_PROF_PROLOGUE				  \
-	mov.l	1f,r1				; \
-	mova	2f,r0				; \
-	jmp	@r1				; \
-	 nop					; \
-	.align	2				; \
-1:	.long	__mcount			; \
-2:
-#else  /* !GPROF */
-#define	_PROF_PROLOGUE
-#endif /* !GPROF */
-
-#define	ENTRY(y)	_ENTRY(_C_LABEL(y)) _PROF_PROLOGUE
-#define	NENTRY(y)	_ENTRY(_C_LABEL(y))
-#define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)) _PROF_PROLOGUE
-
-#define SET_ENTRY_SIZE(y) \
-	.size	_C_LABEL(y), . - _C_LABEL(y)
-
-#define SET_ASENTRY_SIZE(y) \
-	.size	_ASM_LABEL(y), . - _ASM_LABEL(y)
-
-#ifdef __ELF__
-#define	ALTENTRY(name)				 \
-	.globl _C_LABEL(name)			;\
-	.type _C_LABEL(name),@function		;\
-	_C_LABEL(name):
-#else
-#define	ALTENTRY(name)				 \
-	.globl _C_LABEL(name)			;\
-	_C_LABEL(name):
-#endif
-
-
-/*
- * Hide the gory details of PIC calls vs. normal calls.  Use as in the
- * following example:
- *
- *	sts.l	pr, @-sp
- *	PIC_PROLOGUE(.L_got, r0)	! saves old r12 on stack
- *	...
- *	mov.l	.L_function_1, r0
- * 1:	CALL	r0			! each call site needs a label
- *	 nop
- *      ...
- *	mov.l	.L_function_2, r0
- * 2:	CALL	r0
- *	 nop
- *	...
- *	PIC_EPILOGUE			! restores r12 from stack
- *	lds.l	@sp+, pr		!  so call in right order 
- *	rts
- *	 nop
- *
- *	.align 2
- * .L_got:
- *	PIC_GOT_DATUM
- * .L_function_1:			! if you call the same function twice
- *	CALL_DATUM(function, 1b)	!  provide call datum for each call
- * .L_function_2:
- * 	CALL_DATUM(function, 2b)
- */
-
-#ifdef PIC
-
-#define	PIC_PLT(x)	x@PLT
-#define	PIC_GOT(x)	x@GOT
-#define	PIC_GOTOFF(x)	x@GOTOFF
-
-#define	PIC_PROLOGUE(got)			\
-        	mov.l	r12, @-sp;		\
-		PIC_PROLOGUE_NOSAVE(got)
-
-/*
- * Functions that do non local jumps don't need to preserve r12,
- * so we can shave off two instructions to save/restore it.
- */
-#define	PIC_PROLOGUE_NOSAVE(got)		\
-        	mov.l	got, r12;		\
-        	mova	got, r0;		\
-        	add	r0, r12
-
-#define	PIC_EPILOGUE				\
-		mov.l	@sp+, r12
-
-#define PIC_EPILOGUE_SLOT 			\
-		PIC_EPILOGUE
-
-#define PIC_GOT_DATUM \
-		.long	_GLOBAL_OFFSET_TABLE_
-
-#define CALL	bsrf
-#define JUMP	braf
-
-#define CALL_DATUM(function, lpcs) \
-		.long	PIC_PLT(function) - ((lpcs) + 4 - (.))
-
-/*
- * This will result in text relocations in the shared library,
- * unless the function is local or has hidden or protected visibility.
- * Does not require PIC prologue.
- */
-#define CALL_DATUM_LOCAL(function, lpcs) \
-		.long	function - ((lpcs) + 4)
-
-#else  /* !PIC */
-
-#define	PIC_PROLOGUE(label)
-#define	PIC_PROLOGUE_NOSAVE(label)
-#define	PIC_EPILOGUE
-#define	PIC_EPILOGUE_SLOT	nop
-#define PIC_GOT_DATUM
-
-#define CALL	jsr @
-#define JUMP	jmp @
-
-#define CALL_DATUM(function, lpcs) \
-		.long	function
-
-#define CALL_DATUM_LOCAL(function, lpcs) \
-		.long	function
-
-#endif /* !PIC */
-
-
-#define	ASMSTR		.asciz
-
-#ifdef __ELF__
-#define	WEAK_ALIAS(alias,sym)						\
-	.weak _C_LABEL(alias);						\
-	_C_LABEL(alias) = _C_LABEL(sym)
-#endif
-
-#define	WARN_REFERENCES(_sym,_msg)				\
-	.section .gnu.warning._sym; .ascii _msg; .previous
-
-#endif /* !_SH_ASM_H_ */
diff --git a/libc/arch-sh/include/machine/exec.h b/libc/arch-sh/include/machine/exec.h
deleted file mode 100644
index 48a9680..0000000
--- a/libc/arch-sh/include/machine/exec.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*	$OpenBSD: exec.h,v 1.2 2006/11/10 20:34:06 drahn Exp $	*/
-/*	$NetBSD: elf_machdep.h,v 1.8 2002/04/28 17:10:34 uch Exp $	*/
-
-#define __LDPGSZ	4096
-
-#define	NATIVE_EXEC_ELF
-
-#define	ARCH_ELFSIZE		32	/* MD native binary size */
-#define	ELF_TARG_CLASS		ELFCLASS32
-#ifdef __LITTLE_ENDIAN__
-#define	ELF_TARG_DATA		ELFDATA2LSB
-#else
-#define	ELF_TARG_DATA		ELFDATA2MSB
-#endif
-#define	ELF_TARG_MACH		EM_SH
-
-#define	_KERN_DO_ELF
-#define	_NLIST_DO_ELF
-
-/*
- * SuperH ELF header flags.
- */
-#define	EF_SH_MACH_MASK		0x1f
-
-#define	EF_SH_UNKNOWN		0x00
-#define	EF_SH_SH1		0x01
-#define	EF_SH_SH2		0x02
-#define	EF_SH_SH3		0x03
-#define	EF_SH_DSP		0x04
-#define	EF_SH_SH3_DSP		0x05
-#define	EF_SH_SH3E		0x08
-#define	EF_SH_SH4		0x09
-
-#define	EF_SH_HAS_DSP(x)	((x) & EF_SH_DSP)
-#define	EF_SH_HAS_FP(x)		((x) & EF_SH_SH3E)
diff --git a/libc/arch-sh/include/machine/ieee.h b/libc/arch-sh/include/machine/ieee.h
deleted file mode 100644
index 7646f85..0000000
--- a/libc/arch-sh/include/machine/ieee.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*	$OpenBSD: ieee.h,v 1.2 2006/11/10 20:29:36 otto Exp $	*/
-
-/*
- * Copyright (c) 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Lawrence Berkeley Laboratory.
- *
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND 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 REGENTS OR 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.
- *
- *	@(#)ieee.h	8.1 (Berkeley) 6/11/93
- */
-
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point.  It does *not* define (yet?) any of the rounding
- * mode bits, exceptions, and so forth.
- */
-
-/*
- * Define the number of bits in each fraction and exponent.
- *
- *		     k	         k+1
- * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
- *
- *					  (-exp_bias+1)
- * as fractions that look like 0.fffff x 2             .  This means that
- *
- *			 -126
- * the number 0.10000 x 2    , for instance, is the same as the normalized
- *
- *		-127			   -128
- * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
- *
- *				  -129
- * in the fraction; to represent 2    , we need two, and so on.  This
- *
- *						     (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- *						-126		-149
- * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
- *
- * -149 == -127 - 23 + 1.
- */
-#define	SNG_EXPBITS	8
-#define	SNG_FRACBITS	23
-
-#define	DBL_EXPBITS	11
-#define	DBL_FRACBITS	52
-
-#define	EXT_EXPBITS	15
-#define	EXT_FRACBITS	112
-
-struct ieee_single {
-	u_int	sng_frac:23;
-	u_int	sng_exp:8;
-	u_int	sng_sign:1;
-};
-
-struct ieee_double {
-	u_int	dbl_fracl;
-	u_int	dbl_frach:20;
-	u_int	dbl_exp:11;
-	u_int	dbl_sign:1;
-};
-
-struct ieee_ext {
-	u_int	ext_sign:1;
-	u_int	ext_exp:15;
-	u_int	ext_frach:16;
-	u_int	ext_frachm;
-	u_int	ext_fraclm;
-	u_int	ext_fracl;
-};
-
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define	SNG_EXP_INFNAN	255
-#define	DBL_EXP_INFNAN	2047
-#define	EXT_EXP_INFNAN	32767
-
-#if 0
-#define	SNG_QUIETNAN	(1 << 22)
-#define	DBL_QUIETNAN	(1 << 19)
-#define	EXT_QUIETNAN	(1 << 15)
-#endif
-
-/*
- * Exponent biases.
- */
-#define	SNG_EXP_BIAS	127
-#define	DBL_EXP_BIAS	1023
-#define	EXT_EXP_BIAS	16383
diff --git a/libc/arch-sh/include/machine/internal_types.h b/libc/arch-sh/include/machine/internal_types.h
deleted file mode 100644
index ea9b7c4..0000000
--- a/libc/arch-sh/include/machine/internal_types.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* $OpenBSD: internal_types.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $ */
-/* Public domain */
-#ifndef _SH_INTERNAL_TYPES_H_
-#define _SH_INTERNAL_TYPES_H_
-
-#endif
diff --git a/libc/arch-sh/include/machine/kernel.h b/libc/arch-sh/include/machine/kernel.h
deleted file mode 100644
index 948021a..0000000
--- a/libc/arch-sh/include/machine/kernel.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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
- * COPYRIGHT OWNER OR 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.
- */
-#ifndef _ARCH_SH_KERNEL_H
-#define _ARCH_SH_KERNEL_H
-
-/* this file contains kernel-specific definitions that were optimized out of
-   our processed kernel headers, but still useful nonetheless... */
-
-typedef unsigned long   __kernel_blkcnt_t;
-typedef unsigned long   __kernel_blksize_t;
-
-/* these aren't really defined by the kernel headers though... */
-typedef unsigned long   __kernel_fsblkcnt_t;
-typedef unsigned long   __kernel_fsfilcnt_t;
-typedef unsigned int    __kernel_id_t;
-
-#endif /* _ARCH_SH_KERNEL_H */
diff --git a/libc/arch-sh/include/machine/limits.h b/libc/arch-sh/include/machine/limits.h
deleted file mode 100644
index d602138..0000000
--- a/libc/arch-sh/include/machine/limits.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*	$OpenBSD: limits.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $	*/
-/*	$NetBSD: limits.h,v 1.1 1996/09/30 16:34:28 ws Exp $	*/
-
-/*-
- * Copyright (C) 1995, 1996 Wolfgang Solfrank.
- * Copyright (C) 1995, 1996 TooLs GmbH.
- * 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. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by TooLs GmbH.
- * 4. The name of TooLs GmbH may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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.
- */
-
-#ifndef _SH_LIMITS_H_
-#define _SH_LIMITS_H_
-
-#include <sys/cdefs.h>
-
-#define	MB_LEN_MAX	1		/* no multibyte characters	*/
-
-#ifndef	SIZE_MAX
-#define	SIZE_MAX	UINT_MAX	/* max value for a size_t */
-#endif
-#define SSIZE_MAX	INT_MAX		/* max value for a ssize_t */  
-
-#if __BSD_VISIBLE
-#define	SIZE_T_MAX	UINT_MAX	/* max value for a size_t (historic) */
-
-#define	UQUAD_MAX	0xffffffffffffffffULL		/* max unsigned quad */
-#define	QUAD_MAX	0x7fffffffffffffffLL		/* max signed quad */
-#define	QUAD_MIN	(-0x7fffffffffffffffLL-1)	/* min signed quad */
-#endif	/* __BSD_VISIBLE */
-
-#define LONGLONG_BIT    64
-#define LONGLONG_MIN    (-9223372036854775807LL-1)
-#define LONGLONG_MAX    9223372036854775807LL
-#define ULONGLONG_MAX   18446744073709551615ULL
-
-#endif /* _SH_LIMITS_H_ */
diff --git a/libc/arch-sh/include/machine/setjmp.h b/libc/arch-sh/include/machine/setjmp.h
deleted file mode 100644
index 014ad3e..0000000
--- a/libc/arch-sh/include/machine/setjmp.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/*	$OpenBSD: setjmp.h,v 1.2 2007/03/02 06:11:54 miod Exp $	*/
-/*	$NetBSD: setjmp.h,v 1.3 2006/01/05 00:50:23 uwe Exp $	*/
-
-/*
- * machine/setjmp.h: machine dependent setjmp-related information.
- */
-
diff --git a/libc/arch-sh/syscalls.mk b/libc/arch-sh/syscalls.mk
deleted file mode 100644
index 03ce7fd..0000000
--- a/libc/arch-sh/syscalls.mk
+++ /dev/null
@@ -1,182 +0,0 @@
-# auto-generated by gensyscalls.py, do not touch
-syscall_src := 
-syscall_src += arch-sh/syscalls/_exit.S
-syscall_src += arch-sh/syscalls/_exit_thread.S
-syscall_src += arch-sh/syscalls/__fork.S
-syscall_src += arch-sh/syscalls/_waitpid.S
-syscall_src += arch-sh/syscalls/__waitid.S
-syscall_src += arch-sh/syscalls/__sys_clone.S
-syscall_src += arch-sh/syscalls/execve.S
-syscall_src += arch-sh/syscalls/__setuid.S
-syscall_src += arch-sh/syscalls/getuid.S
-syscall_src += arch-sh/syscalls/getgid.S
-syscall_src += arch-sh/syscalls/geteuid.S
-syscall_src += arch-sh/syscalls/getegid.S
-syscall_src += arch-sh/syscalls/getresuid.S
-syscall_src += arch-sh/syscalls/getresgid.S
-syscall_src += arch-sh/syscalls/gettid.S
-syscall_src += arch-sh/syscalls/readahead.S
-syscall_src += arch-sh/syscalls/getgroups.S
-syscall_src += arch-sh/syscalls/getpgid.S
-syscall_src += arch-sh/syscalls/getppid.S
-syscall_src += arch-sh/syscalls/setsid.S
-syscall_src += arch-sh/syscalls/setgid.S
-syscall_src += arch-sh/syscalls/__setreuid.S
-syscall_src += arch-sh/syscalls/__setresuid.S
-syscall_src += arch-sh/syscalls/setresgid.S
-syscall_src += arch-sh/syscalls/__brk.S
-syscall_src += arch-sh/syscalls/kill.S
-syscall_src += arch-sh/syscalls/tkill.S
-syscall_src += arch-sh/syscalls/__ptrace.S
-syscall_src += arch-sh/syscalls/__set_thread_area.S
-syscall_src += arch-sh/syscalls/__getpriority.S
-syscall_src += arch-sh/syscalls/setpriority.S
-syscall_src += arch-sh/syscalls/setrlimit.S
-syscall_src += arch-sh/syscalls/getrlimit.S
-syscall_src += arch-sh/syscalls/getrusage.S
-syscall_src += arch-sh/syscalls/setgroups.S
-syscall_src += arch-sh/syscalls/setpgid.S
-syscall_src += arch-sh/syscalls/vfork.S
-syscall_src += arch-sh/syscalls/setregid.S
-syscall_src += arch-sh/syscalls/chroot.S
-syscall_src += arch-sh/syscalls/prctl.S
-syscall_src += arch-sh/syscalls/capget.S
-syscall_src += arch-sh/syscalls/capset.S
-syscall_src += arch-sh/syscalls/sigaltstack.S
-syscall_src += arch-sh/syscalls/acct.S
-syscall_src += arch-sh/syscalls/read.S
-syscall_src += arch-sh/syscalls/write.S
-syscall_src += arch-sh/syscalls/pread64.S
-syscall_src += arch-sh/syscalls/pwrite64.S
-syscall_src += arch-sh/syscalls/__open.S
-syscall_src += arch-sh/syscalls/__openat.S
-syscall_src += arch-sh/syscalls/close.S
-syscall_src += arch-sh/syscalls/lseek.S
-syscall_src += arch-sh/syscalls/__llseek.S
-syscall_src += arch-sh/syscalls/getpid.S
-syscall_src += arch-sh/syscalls/__mmap2.S
-syscall_src += arch-sh/syscalls/munmap.S
-syscall_src += arch-sh/syscalls/mremap.S
-syscall_src += arch-sh/syscalls/msync.S
-syscall_src += arch-sh/syscalls/mprotect.S
-syscall_src += arch-sh/syscalls/madvise.S
-syscall_src += arch-sh/syscalls/mlock.S
-syscall_src += arch-sh/syscalls/munlock.S
-syscall_src += arch-sh/syscalls/mincore.S
-syscall_src += arch-sh/syscalls/__ioctl.S
-syscall_src += arch-sh/syscalls/readv.S
-syscall_src += arch-sh/syscalls/writev.S
-syscall_src += arch-sh/syscalls/__fcntl.S
-syscall_src += arch-sh/syscalls/flock.S
-syscall_src += arch-sh/syscalls/fchmod.S
-syscall_src += arch-sh/syscalls/dup.S
-syscall_src += arch-sh/syscalls/pipe2.S
-syscall_src += arch-sh/syscalls/dup2.S
-syscall_src += arch-sh/syscalls/select.S
-syscall_src += arch-sh/syscalls/ftruncate.S
-syscall_src += arch-sh/syscalls/ftruncate64.S
-syscall_src += arch-sh/syscalls/getdents.S
-syscall_src += arch-sh/syscalls/fsync.S
-syscall_src += arch-sh/syscalls/fdatasync.S
-syscall_src += arch-sh/syscalls/fchown.S
-syscall_src += arch-sh/syscalls/sync.S
-syscall_src += arch-sh/syscalls/__fcntl64.S
-syscall_src += arch-sh/syscalls/__fstatfs64.S
-syscall_src += arch-sh/syscalls/sendfile.S
-syscall_src += arch-sh/syscalls/fstatat.S
-syscall_src += arch-sh/syscalls/mkdirat.S
-syscall_src += arch-sh/syscalls/fchownat.S
-syscall_src += arch-sh/syscalls/fchmodat.S
-syscall_src += arch-sh/syscalls/renameat.S
-syscall_src += arch-sh/syscalls/fsetxattr.S
-syscall_src += arch-sh/syscalls/fgetxattr.S
-syscall_src += arch-sh/syscalls/flistxattr.S
-syscall_src += arch-sh/syscalls/fremovexattr.S
-syscall_src += arch-sh/syscalls/link.S
-syscall_src += arch-sh/syscalls/unlink.S
-syscall_src += arch-sh/syscalls/unlinkat.S
-syscall_src += arch-sh/syscalls/chdir.S
-syscall_src += arch-sh/syscalls/mknod.S
-syscall_src += arch-sh/syscalls/chmod.S
-syscall_src += arch-sh/syscalls/chown.S
-syscall_src += arch-sh/syscalls/lchown.S
-syscall_src += arch-sh/syscalls/mount.S
-syscall_src += arch-sh/syscalls/umount2.S
-syscall_src += arch-sh/syscalls/fstat.S
-syscall_src += arch-sh/syscalls/stat.S
-syscall_src += arch-sh/syscalls/lstat.S
-syscall_src += arch-sh/syscalls/mkdir.S
-syscall_src += arch-sh/syscalls/readlink.S
-syscall_src += arch-sh/syscalls/rmdir.S
-syscall_src += arch-sh/syscalls/rename.S
-syscall_src += arch-sh/syscalls/__getcwd.S
-syscall_src += arch-sh/syscalls/access.S
-syscall_src += arch-sh/syscalls/symlink.S
-syscall_src += arch-sh/syscalls/fchdir.S
-syscall_src += arch-sh/syscalls/truncate.S
-syscall_src += arch-sh/syscalls/setxattr.S
-syscall_src += arch-sh/syscalls/lsetxattr.S
-syscall_src += arch-sh/syscalls/getxattr.S
-syscall_src += arch-sh/syscalls/lgetxattr.S
-syscall_src += arch-sh/syscalls/listxattr.S
-syscall_src += arch-sh/syscalls/llistxattr.S
-syscall_src += arch-sh/syscalls/removexattr.S
-syscall_src += arch-sh/syscalls/lremovexattr.S
-syscall_src += arch-sh/syscalls/__statfs64.S
-syscall_src += arch-sh/syscalls/pause.S
-syscall_src += arch-sh/syscalls/gettimeofday.S
-syscall_src += arch-sh/syscalls/settimeofday.S
-syscall_src += arch-sh/syscalls/times.S
-syscall_src += arch-sh/syscalls/nanosleep.S
-syscall_src += arch-sh/syscalls/clock_gettime.S
-syscall_src += arch-sh/syscalls/clock_settime.S
-syscall_src += arch-sh/syscalls/clock_getres.S
-syscall_src += arch-sh/syscalls/clock_nanosleep.S
-syscall_src += arch-sh/syscalls/getitimer.S
-syscall_src += arch-sh/syscalls/setitimer.S
-syscall_src += arch-sh/syscalls/__timer_create.S
-syscall_src += arch-sh/syscalls/__timer_settime.S
-syscall_src += arch-sh/syscalls/__timer_gettime.S
-syscall_src += arch-sh/syscalls/__timer_getoverrun.S
-syscall_src += arch-sh/syscalls/__timer_delete.S
-syscall_src += arch-sh/syscalls/utimes.S
-syscall_src += arch-sh/syscalls/utimensat.S
-syscall_src += arch-sh/syscalls/sigaction.S
-syscall_src += arch-sh/syscalls/sigprocmask.S
-syscall_src += arch-sh/syscalls/__sigsuspend.S
-syscall_src += arch-sh/syscalls/__rt_sigaction.S
-syscall_src += arch-sh/syscalls/__rt_sigprocmask.S
-syscall_src += arch-sh/syscalls/__rt_sigtimedwait.S
-syscall_src += arch-sh/syscalls/sigpending.S
-syscall_src += arch-sh/syscalls/__socketcall.S
-syscall_src += arch-sh/syscalls/sched_setscheduler.S
-syscall_src += arch-sh/syscalls/sched_getscheduler.S
-syscall_src += arch-sh/syscalls/sched_yield.S
-syscall_src += arch-sh/syscalls/sched_setparam.S
-syscall_src += arch-sh/syscalls/sched_getparam.S
-syscall_src += arch-sh/syscalls/sched_get_priority_max.S
-syscall_src += arch-sh/syscalls/sched_get_priority_min.S
-syscall_src += arch-sh/syscalls/sched_rr_get_interval.S
-syscall_src += arch-sh/syscalls/sched_setaffinity.S
-syscall_src += arch-sh/syscalls/__sched_getaffinity.S
-syscall_src += arch-sh/syscalls/__getcpu.S
-syscall_src += arch-sh/syscalls/ioprio_set.S
-syscall_src += arch-sh/syscalls/ioprio_get.S
-syscall_src += arch-sh/syscalls/uname.S
-syscall_src += arch-sh/syscalls/__wait4.S
-syscall_src += arch-sh/syscalls/umask.S
-syscall_src += arch-sh/syscalls/__reboot.S
-syscall_src += arch-sh/syscalls/__syslog.S
-syscall_src += arch-sh/syscalls/init_module.S
-syscall_src += arch-sh/syscalls/delete_module.S
-syscall_src += arch-sh/syscalls/klogctl.S
-syscall_src += arch-sh/syscalls/sysinfo.S
-syscall_src += arch-sh/syscalls/futex.S
-syscall_src += arch-sh/syscalls/epoll_create.S
-syscall_src += arch-sh/syscalls/epoll_ctl.S
-syscall_src += arch-sh/syscalls/epoll_wait.S
-syscall_src += arch-sh/syscalls/inotify_init.S
-syscall_src += arch-sh/syscalls/inotify_add_watch.S
-syscall_src += arch-sh/syscalls/inotify_rm_watch.S
-syscall_src += arch-sh/syscalls/poll.S
-syscall_src += arch-sh/syscalls/eventfd.S
diff --git a/libc/arch-sh/syscalls/__brk.S b/libc/arch-sh/syscalls/__brk.S
deleted file mode 100644
index 465389d..0000000
--- a/libc/arch-sh/syscalls/__brk.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __brk, @function
-    .globl __brk
-    .align 4
-
-__brk:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_brk_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_brk_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_brk
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__fcntl.S b/libc/arch-sh/syscalls/__fcntl.S
deleted file mode 100644
index 654ee84..0000000
--- a/libc/arch-sh/syscalls/__fcntl.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __fcntl, @function
-    .globl __fcntl
-    .align 4
-
-__fcntl:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fcntl_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fcntl_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fcntl
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__fcntl64.S b/libc/arch-sh/syscalls/__fcntl64.S
deleted file mode 100644
index 8a2f73f..0000000
--- a/libc/arch-sh/syscalls/__fcntl64.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __fcntl64, @function
-    .globl __fcntl64
-    .align 4
-
-__fcntl64:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fcntl64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fcntl64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fcntl64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__fork.S b/libc/arch-sh/syscalls/__fork.S
deleted file mode 100644
index 5a00daf..0000000
--- a/libc/arch-sh/syscalls/__fork.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __fork, @function
-    .globl __fork
-    .align 4
-
-__fork:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fork_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fork_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fork
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__fstatfs64.S b/libc/arch-sh/syscalls/__fstatfs64.S
deleted file mode 100644
index dcf1d80..0000000
--- a/libc/arch-sh/syscalls/__fstatfs64.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __fstatfs64, @function
-    .globl __fstatfs64
-    .align 4
-
-__fstatfs64:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fstatfs64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fstatfs64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fstatfs64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__getcpu.S b/libc/arch-sh/syscalls/__getcpu.S
deleted file mode 100644
index 125387b..0000000
--- a/libc/arch-sh/syscalls/__getcpu.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __getcpu, @function
-    .globl __getcpu
-    .align 4
-
-__getcpu:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getcpu_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getcpu_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getcpu
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__getcwd.S b/libc/arch-sh/syscalls/__getcwd.S
deleted file mode 100644
index 9ce1f14..0000000
--- a/libc/arch-sh/syscalls/__getcwd.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __getcwd, @function
-    .globl __getcwd
-    .align 4
-
-__getcwd:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getcwd_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getcwd_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getcwd
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__getpriority.S b/libc/arch-sh/syscalls/__getpriority.S
deleted file mode 100644
index aa9f4f3..0000000
--- a/libc/arch-sh/syscalls/__getpriority.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __getpriority, @function
-    .globl __getpriority
-    .align 4
-
-__getpriority:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getpriority_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getpriority_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getpriority
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__ioctl.S b/libc/arch-sh/syscalls/__ioctl.S
deleted file mode 100644
index ec447cf..0000000
--- a/libc/arch-sh/syscalls/__ioctl.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __ioctl, @function
-    .globl __ioctl
-    .align 4
-
-__ioctl:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ioctl_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ioctl_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ioctl
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__llseek.S b/libc/arch-sh/syscalls/__llseek.S
deleted file mode 100644
index e43b3ed..0000000
--- a/libc/arch-sh/syscalls/__llseek.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __llseek, @function
-    .globl __llseek
-    .align 4
-
-__llseek:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR__llseek_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR__llseek_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR__llseek
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__mmap2.S b/libc/arch-sh/syscalls/__mmap2.S
deleted file mode 100644
index 6f70d46..0000000
--- a/libc/arch-sh/syscalls/__mmap2.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __mmap2, @function
-    .globl __mmap2
-    .align 4
-
-__mmap2:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-    mov.l   @(4, r15), r1
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(6 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mmap2_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mmap2_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mmap2
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__open.S b/libc/arch-sh/syscalls/__open.S
deleted file mode 100644
index f57b5b9..0000000
--- a/libc/arch-sh/syscalls/__open.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __open, @function
-    .globl __open
-    .align 4
-
-__open:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_open_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_open_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_open
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__openat.S b/libc/arch-sh/syscalls/__openat.S
deleted file mode 100644
index 08cf096..0000000
--- a/libc/arch-sh/syscalls/__openat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __openat, @function
-    .globl __openat
-    .align 4
-
-__openat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_openat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_openat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_openat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__ptrace.S b/libc/arch-sh/syscalls/__ptrace.S
deleted file mode 100644
index 89bbc98..0000000
--- a/libc/arch-sh/syscalls/__ptrace.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __ptrace, @function
-    .globl __ptrace
-    .align 4
-
-__ptrace:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ptrace_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ptrace_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ptrace
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__reboot.S b/libc/arch-sh/syscalls/__reboot.S
deleted file mode 100644
index 07cff36..0000000
--- a/libc/arch-sh/syscalls/__reboot.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __reboot, @function
-    .globl __reboot
-    .align 4
-
-__reboot:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_reboot_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_reboot_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_reboot
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__rt_sigaction.S b/libc/arch-sh/syscalls/__rt_sigaction.S
deleted file mode 100644
index 693cb76..0000000
--- a/libc/arch-sh/syscalls/__rt_sigaction.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __rt_sigaction, @function
-    .globl __rt_sigaction
-    .align 4
-
-__rt_sigaction:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_rt_sigaction_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_rt_sigaction_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_rt_sigaction
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__rt_sigprocmask.S b/libc/arch-sh/syscalls/__rt_sigprocmask.S
deleted file mode 100644
index 7822d4f..0000000
--- a/libc/arch-sh/syscalls/__rt_sigprocmask.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __rt_sigprocmask, @function
-    .globl __rt_sigprocmask
-    .align 4
-
-__rt_sigprocmask:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_rt_sigprocmask_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_rt_sigprocmask_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_rt_sigprocmask
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__rt_sigtimedwait.S b/libc/arch-sh/syscalls/__rt_sigtimedwait.S
deleted file mode 100644
index 2804169..0000000
--- a/libc/arch-sh/syscalls/__rt_sigtimedwait.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __rt_sigtimedwait, @function
-    .globl __rt_sigtimedwait
-    .align 4
-
-__rt_sigtimedwait:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_rt_sigtimedwait_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_rt_sigtimedwait_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_rt_sigtimedwait
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__sched_getaffinity.S b/libc/arch-sh/syscalls/__sched_getaffinity.S
deleted file mode 100644
index 7e8be6a..0000000
--- a/libc/arch-sh/syscalls/__sched_getaffinity.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __sched_getaffinity, @function
-    .globl __sched_getaffinity
-    .align 4
-
-__sched_getaffinity:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_getaffinity_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_getaffinity_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_getaffinity
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__set_thread_area.S b/libc/arch-sh/syscalls/__set_thread_area.S
deleted file mode 100644
index 7d5aea6..0000000
--- a/libc/arch-sh/syscalls/__set_thread_area.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __set_thread_area, @function
-    .globl __set_thread_area
-    .align 4
-
-__set_thread_area:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_set_thread_area_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_set_thread_area_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_set_thread_area
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__setresuid.S b/libc/arch-sh/syscalls/__setresuid.S
deleted file mode 100644
index 424100e..0000000
--- a/libc/arch-sh/syscalls/__setresuid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __setresuid, @function
-    .globl __setresuid
-    .align 4
-
-__setresuid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setresuid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setresuid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setresuid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__setreuid.S b/libc/arch-sh/syscalls/__setreuid.S
deleted file mode 100644
index 6990748..0000000
--- a/libc/arch-sh/syscalls/__setreuid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __setreuid, @function
-    .globl __setreuid
-    .align 4
-
-__setreuid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setreuid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setreuid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setreuid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__setuid.S b/libc/arch-sh/syscalls/__setuid.S
deleted file mode 100644
index f563de7..0000000
--- a/libc/arch-sh/syscalls/__setuid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __setuid, @function
-    .globl __setuid
-    .align 4
-
-__setuid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setuid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setuid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setuid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__sigsuspend.S b/libc/arch-sh/syscalls/__sigsuspend.S
deleted file mode 100644
index 9643940..0000000
--- a/libc/arch-sh/syscalls/__sigsuspend.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __sigsuspend, @function
-    .globl __sigsuspend
-    .align 4
-
-__sigsuspend:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sigsuspend_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sigsuspend_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sigsuspend
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__socketcall.S b/libc/arch-sh/syscalls/__socketcall.S
deleted file mode 100644
index 7c705bb..0000000
--- a/libc/arch-sh/syscalls/__socketcall.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __socketcall, @function
-    .globl __socketcall
-    .align 4
-
-__socketcall:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_socketcall_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_socketcall_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_socketcall
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__statfs64.S b/libc/arch-sh/syscalls/__statfs64.S
deleted file mode 100644
index ccd137b..0000000
--- a/libc/arch-sh/syscalls/__statfs64.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __statfs64, @function
-    .globl __statfs64
-    .align 4
-
-__statfs64:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_statfs64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_statfs64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_statfs64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__sys_clone.S b/libc/arch-sh/syscalls/__sys_clone.S
deleted file mode 100644
index c2e7dd2..0000000
--- a/libc/arch-sh/syscalls/__sys_clone.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __sys_clone, @function
-    .globl __sys_clone
-    .align 4
-
-__sys_clone:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_clone_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_clone_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_clone
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__syslog.S b/libc/arch-sh/syscalls/__syslog.S
deleted file mode 100644
index ea1ac38..0000000
--- a/libc/arch-sh/syscalls/__syslog.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __syslog, @function
-    .globl __syslog
-    .align 4
-
-__syslog:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_syslog_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_syslog_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_syslog
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__timer_create.S b/libc/arch-sh/syscalls/__timer_create.S
deleted file mode 100644
index f2e2e5c..0000000
--- a/libc/arch-sh/syscalls/__timer_create.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __timer_create, @function
-    .globl __timer_create
-    .align 4
-
-__timer_create:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_timer_create_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_timer_create_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_timer_create
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__timer_delete.S b/libc/arch-sh/syscalls/__timer_delete.S
deleted file mode 100644
index d655d3d..0000000
--- a/libc/arch-sh/syscalls/__timer_delete.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __timer_delete, @function
-    .globl __timer_delete
-    .align 4
-
-__timer_delete:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_timer_delete_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_timer_delete_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_timer_delete
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__timer_getoverrun.S b/libc/arch-sh/syscalls/__timer_getoverrun.S
deleted file mode 100644
index 64fa92f..0000000
--- a/libc/arch-sh/syscalls/__timer_getoverrun.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __timer_getoverrun, @function
-    .globl __timer_getoverrun
-    .align 4
-
-__timer_getoverrun:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_timer_getoverrun_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_timer_getoverrun_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_timer_getoverrun
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__timer_gettime.S b/libc/arch-sh/syscalls/__timer_gettime.S
deleted file mode 100644
index f1c63ed..0000000
--- a/libc/arch-sh/syscalls/__timer_gettime.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __timer_gettime, @function
-    .globl __timer_gettime
-    .align 4
-
-__timer_gettime:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_timer_gettime_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_timer_gettime_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_timer_gettime
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__timer_settime.S b/libc/arch-sh/syscalls/__timer_settime.S
deleted file mode 100644
index ea438a6..0000000
--- a/libc/arch-sh/syscalls/__timer_settime.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __timer_settime, @function
-    .globl __timer_settime
-    .align 4
-
-__timer_settime:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_timer_settime_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_timer_settime_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_timer_settime
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__wait4.S b/libc/arch-sh/syscalls/__wait4.S
deleted file mode 100644
index a145e34..0000000
--- a/libc/arch-sh/syscalls/__wait4.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __wait4, @function
-    .globl __wait4
-    .align 4
-
-__wait4:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_wait4_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_wait4_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_wait4
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/__waitid.S b/libc/arch-sh/syscalls/__waitid.S
deleted file mode 100644
index 1f58de0..0000000
--- a/libc/arch-sh/syscalls/__waitid.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type __waitid, @function
-    .globl __waitid
-    .align 4
-
-__waitid:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_waitid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_waitid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_waitid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/_exit.S b/libc/arch-sh/syscalls/_exit.S
deleted file mode 100644
index 377a98a..0000000
--- a/libc/arch-sh/syscalls/_exit.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type _exit, @function
-    .globl _exit
-    .align 4
-
-_exit:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_exit_group_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_exit_group_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_exit_group
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/_exit_thread.S b/libc/arch-sh/syscalls/_exit_thread.S
deleted file mode 100644
index 536d000..0000000
--- a/libc/arch-sh/syscalls/_exit_thread.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type _exit_thread, @function
-    .globl _exit_thread
-    .align 4
-
-_exit_thread:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_exit_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_exit_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_exit
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/_waitpid.S b/libc/arch-sh/syscalls/_waitpid.S
deleted file mode 100644
index db2cf61..0000000
--- a/libc/arch-sh/syscalls/_waitpid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type _waitpid, @function
-    .globl _waitpid
-    .align 4
-
-_waitpid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_waitpid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_waitpid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_waitpid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/access.S b/libc/arch-sh/syscalls/access.S
deleted file mode 100644
index dea8dfb..0000000
--- a/libc/arch-sh/syscalls/access.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type access, @function
-    .globl access
-    .align 4
-
-access:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_access_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_access_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_access
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/acct.S b/libc/arch-sh/syscalls/acct.S
deleted file mode 100644
index 22d939e..0000000
--- a/libc/arch-sh/syscalls/acct.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type acct, @function
-    .globl acct
-    .align 4
-
-acct:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_acct_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_acct_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_acct
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/capget.S b/libc/arch-sh/syscalls/capget.S
deleted file mode 100644
index 77f6c54..0000000
--- a/libc/arch-sh/syscalls/capget.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type capget, @function
-    .globl capget
-    .align 4
-
-capget:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_capget_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_capget_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_capget
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/capset.S b/libc/arch-sh/syscalls/capset.S
deleted file mode 100644
index c35b48e..0000000
--- a/libc/arch-sh/syscalls/capset.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type capset, @function
-    .globl capset
-    .align 4
-
-capset:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_capset_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_capset_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_capset
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/chdir.S b/libc/arch-sh/syscalls/chdir.S
deleted file mode 100644
index 32b4a92..0000000
--- a/libc/arch-sh/syscalls/chdir.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type chdir, @function
-    .globl chdir
-    .align 4
-
-chdir:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_chdir_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_chdir_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_chdir
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/chmod.S b/libc/arch-sh/syscalls/chmod.S
deleted file mode 100644
index f145e4b..0000000
--- a/libc/arch-sh/syscalls/chmod.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type chmod, @function
-    .globl chmod
-    .align 4
-
-chmod:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_chmod_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_chmod_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_chmod
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/chown.S b/libc/arch-sh/syscalls/chown.S
deleted file mode 100644
index 4938a2a..0000000
--- a/libc/arch-sh/syscalls/chown.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type chown, @function
-    .globl chown
-    .align 4
-
-chown:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_chown32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_chown32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_chown32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/chroot.S b/libc/arch-sh/syscalls/chroot.S
deleted file mode 100644
index a60b59d..0000000
--- a/libc/arch-sh/syscalls/chroot.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type chroot, @function
-    .globl chroot
-    .align 4
-
-chroot:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_chroot_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_chroot_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_chroot
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/clock_getres.S b/libc/arch-sh/syscalls/clock_getres.S
deleted file mode 100644
index 0b38f22..0000000
--- a/libc/arch-sh/syscalls/clock_getres.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type clock_getres, @function
-    .globl clock_getres
-    .align 4
-
-clock_getres:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_clock_getres_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_clock_getres_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_clock_getres
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/clock_gettime.S b/libc/arch-sh/syscalls/clock_gettime.S
deleted file mode 100644
index 67952a6..0000000
--- a/libc/arch-sh/syscalls/clock_gettime.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type clock_gettime, @function
-    .globl clock_gettime
-    .align 4
-
-clock_gettime:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_clock_gettime_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_clock_gettime_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_clock_gettime
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/clock_nanosleep.S b/libc/arch-sh/syscalls/clock_nanosleep.S
deleted file mode 100644
index 7ef8d5e..0000000
--- a/libc/arch-sh/syscalls/clock_nanosleep.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type clock_nanosleep, @function
-    .globl clock_nanosleep
-    .align 4
-
-clock_nanosleep:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_clock_nanosleep_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_clock_nanosleep_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_clock_nanosleep
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/clock_settime.S b/libc/arch-sh/syscalls/clock_settime.S
deleted file mode 100644
index fd48ac6..0000000
--- a/libc/arch-sh/syscalls/clock_settime.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type clock_settime, @function
-    .globl clock_settime
-    .align 4
-
-clock_settime:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_clock_settime_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_clock_settime_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_clock_settime
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/close.S b/libc/arch-sh/syscalls/close.S
deleted file mode 100644
index b59002d..0000000
--- a/libc/arch-sh/syscalls/close.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type close, @function
-    .globl close
-    .align 4
-
-close:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_close_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_close_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_close
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/delete_module.S b/libc/arch-sh/syscalls/delete_module.S
deleted file mode 100644
index 73410a9..0000000
--- a/libc/arch-sh/syscalls/delete_module.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type delete_module, @function
-    .globl delete_module
-    .align 4
-
-delete_module:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_delete_module_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_delete_module_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_delete_module
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/dup.S b/libc/arch-sh/syscalls/dup.S
deleted file mode 100644
index 1c87dd7..0000000
--- a/libc/arch-sh/syscalls/dup.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type dup, @function
-    .globl dup
-    .align 4
-
-dup:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_dup_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_dup_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_dup
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/dup2.S b/libc/arch-sh/syscalls/dup2.S
deleted file mode 100644
index da2b7bd..0000000
--- a/libc/arch-sh/syscalls/dup2.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type dup2, @function
-    .globl dup2
-    .align 4
-
-dup2:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_dup2_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_dup2_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_dup2
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/epoll_create.S b/libc/arch-sh/syscalls/epoll_create.S
deleted file mode 100644
index 64ca8a0..0000000
--- a/libc/arch-sh/syscalls/epoll_create.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type epoll_create, @function
-    .globl epoll_create
-    .align 4
-
-epoll_create:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_epoll_create_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_epoll_create_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_epoll_create
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/epoll_ctl.S b/libc/arch-sh/syscalls/epoll_ctl.S
deleted file mode 100644
index 0293e73..0000000
--- a/libc/arch-sh/syscalls/epoll_ctl.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type epoll_ctl, @function
-    .globl epoll_ctl
-    .align 4
-
-epoll_ctl:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_epoll_ctl_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_epoll_ctl_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_epoll_ctl
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/epoll_wait.S b/libc/arch-sh/syscalls/epoll_wait.S
deleted file mode 100644
index acea8b5..0000000
--- a/libc/arch-sh/syscalls/epoll_wait.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type epoll_wait, @function
-    .globl epoll_wait
-    .align 4
-
-epoll_wait:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_epoll_wait_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_epoll_wait_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_epoll_wait
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/eventfd.S b/libc/arch-sh/syscalls/eventfd.S
deleted file mode 100644
index c73bf23..0000000
--- a/libc/arch-sh/syscalls/eventfd.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type eventfd, @function
-    .globl eventfd
-    .align 4
-
-eventfd:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_eventfd2_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_eventfd2_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_eventfd2
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/execve.S b/libc/arch-sh/syscalls/execve.S
deleted file mode 100644
index e4c451a..0000000
--- a/libc/arch-sh/syscalls/execve.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type execve, @function
-    .globl execve
-    .align 4
-
-execve:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_execve_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_execve_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_execve
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fchdir.S b/libc/arch-sh/syscalls/fchdir.S
deleted file mode 100644
index 9743935..0000000
--- a/libc/arch-sh/syscalls/fchdir.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fchdir, @function
-    .globl fchdir
-    .align 4
-
-fchdir:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fchdir_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fchdir_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fchdir
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fchmod.S b/libc/arch-sh/syscalls/fchmod.S
deleted file mode 100644
index 07b8156..0000000
--- a/libc/arch-sh/syscalls/fchmod.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fchmod, @function
-    .globl fchmod
-    .align 4
-
-fchmod:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fchmod_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fchmod_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fchmod
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fchmodat.S b/libc/arch-sh/syscalls/fchmodat.S
deleted file mode 100644
index 2532d12..0000000
--- a/libc/arch-sh/syscalls/fchmodat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fchmodat, @function
-    .globl fchmodat
-    .align 4
-
-fchmodat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fchmodat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fchmodat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fchmodat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fchown.S b/libc/arch-sh/syscalls/fchown.S
deleted file mode 100644
index a49f7d7..0000000
--- a/libc/arch-sh/syscalls/fchown.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fchown, @function
-    .globl fchown
-    .align 4
-
-fchown:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fchown32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fchown32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fchown32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fchownat.S b/libc/arch-sh/syscalls/fchownat.S
deleted file mode 100644
index 3e82637..0000000
--- a/libc/arch-sh/syscalls/fchownat.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fchownat, @function
-    .globl fchownat
-    .align 4
-
-fchownat:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fchownat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fchownat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fchownat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fdatasync.S b/libc/arch-sh/syscalls/fdatasync.S
deleted file mode 100644
index d81c33a..0000000
--- a/libc/arch-sh/syscalls/fdatasync.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fdatasync, @function
-    .globl fdatasync
-    .align 4
-
-fdatasync:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fdatasync_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fdatasync_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fdatasync
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fgetxattr.S b/libc/arch-sh/syscalls/fgetxattr.S
deleted file mode 100644
index 49b43de..0000000
--- a/libc/arch-sh/syscalls/fgetxattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fgetxattr, @function
-    .globl fgetxattr
-    .align 4
-
-fgetxattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fgetxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fgetxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fgetxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/flistxattr.S b/libc/arch-sh/syscalls/flistxattr.S
deleted file mode 100644
index 9b91424..0000000
--- a/libc/arch-sh/syscalls/flistxattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type flistxattr, @function
-    .globl flistxattr
-    .align 4
-
-flistxattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_flistxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_flistxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_flistxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/flock.S b/libc/arch-sh/syscalls/flock.S
deleted file mode 100644
index d4274ea..0000000
--- a/libc/arch-sh/syscalls/flock.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type flock, @function
-    .globl flock
-    .align 4
-
-flock:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_flock_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_flock_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_flock
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fremovexattr.S b/libc/arch-sh/syscalls/fremovexattr.S
deleted file mode 100644
index b6ebc8e..0000000
--- a/libc/arch-sh/syscalls/fremovexattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fremovexattr, @function
-    .globl fremovexattr
-    .align 4
-
-fremovexattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fremovexattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fremovexattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fremovexattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fsetxattr.S b/libc/arch-sh/syscalls/fsetxattr.S
deleted file mode 100644
index 7e0681a..0000000
--- a/libc/arch-sh/syscalls/fsetxattr.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fsetxattr, @function
-    .globl fsetxattr
-    .align 4
-
-fsetxattr:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fsetxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fsetxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fsetxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fstat.S b/libc/arch-sh/syscalls/fstat.S
deleted file mode 100644
index bdb4952..0000000
--- a/libc/arch-sh/syscalls/fstat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fstat, @function
-    .globl fstat
-    .align 4
-
-fstat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fstat64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fstat64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fstat64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fstatat.S b/libc/arch-sh/syscalls/fstatat.S
deleted file mode 100644
index a5b18d1..0000000
--- a/libc/arch-sh/syscalls/fstatat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fstatat, @function
-    .globl fstatat
-    .align 4
-
-fstatat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fstatat64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fstatat64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fstatat64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/fsync.S b/libc/arch-sh/syscalls/fsync.S
deleted file mode 100644
index 7904f53..0000000
--- a/libc/arch-sh/syscalls/fsync.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type fsync, @function
-    .globl fsync
-    .align 4
-
-fsync:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_fsync_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_fsync_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_fsync
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/ftruncate.S b/libc/arch-sh/syscalls/ftruncate.S
deleted file mode 100644
index 8c34333..0000000
--- a/libc/arch-sh/syscalls/ftruncate.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type ftruncate, @function
-    .globl ftruncate
-    .align 4
-
-ftruncate:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ftruncate_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ftruncate_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ftruncate
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/ftruncate64.S b/libc/arch-sh/syscalls/ftruncate64.S
deleted file mode 100644
index f4c7c1e..0000000
--- a/libc/arch-sh/syscalls/ftruncate64.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type ftruncate64, @function
-    .globl ftruncate64
-    .align 4
-
-ftruncate64:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ftruncate64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ftruncate64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ftruncate64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/futex.S b/libc/arch-sh/syscalls/futex.S
deleted file mode 100644
index 2aabd92..0000000
--- a/libc/arch-sh/syscalls/futex.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type futex, @function
-    .globl futex
-    .align 4
-
-futex:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-    mov.l   @(4, r15), r1
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(6 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_futex_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_futex_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_futex
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getdents.S b/libc/arch-sh/syscalls/getdents.S
deleted file mode 100644
index 66aedf3..0000000
--- a/libc/arch-sh/syscalls/getdents.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getdents, @function
-    .globl getdents
-    .align 4
-
-getdents:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getdents64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getdents64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getdents64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getegid.S b/libc/arch-sh/syscalls/getegid.S
deleted file mode 100644
index b3b91ca..0000000
--- a/libc/arch-sh/syscalls/getegid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getegid, @function
-    .globl getegid
-    .align 4
-
-getegid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getegid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getegid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getegid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/geteuid.S b/libc/arch-sh/syscalls/geteuid.S
deleted file mode 100644
index 50f3549..0000000
--- a/libc/arch-sh/syscalls/geteuid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type geteuid, @function
-    .globl geteuid
-    .align 4
-
-geteuid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_geteuid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_geteuid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_geteuid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getgid.S b/libc/arch-sh/syscalls/getgid.S
deleted file mode 100644
index 54480b7..0000000
--- a/libc/arch-sh/syscalls/getgid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getgid, @function
-    .globl getgid
-    .align 4
-
-getgid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getgid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getgid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getgid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getgroups.S b/libc/arch-sh/syscalls/getgroups.S
deleted file mode 100644
index 854477e..0000000
--- a/libc/arch-sh/syscalls/getgroups.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getgroups, @function
-    .globl getgroups
-    .align 4
-
-getgroups:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getgroups32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getgroups32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getgroups32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getitimer.S b/libc/arch-sh/syscalls/getitimer.S
deleted file mode 100644
index aa444a6..0000000
--- a/libc/arch-sh/syscalls/getitimer.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getitimer, @function
-    .globl getitimer
-    .align 4
-
-getitimer:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getitimer_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getitimer_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getitimer
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getpgid.S b/libc/arch-sh/syscalls/getpgid.S
deleted file mode 100644
index 0ff101d..0000000
--- a/libc/arch-sh/syscalls/getpgid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getpgid, @function
-    .globl getpgid
-    .align 4
-
-getpgid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getpgid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getpgid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getpgid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getpid.S b/libc/arch-sh/syscalls/getpid.S
deleted file mode 100644
index 5606694..0000000
--- a/libc/arch-sh/syscalls/getpid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getpid, @function
-    .globl getpid
-    .align 4
-
-getpid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getpid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getpid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getpid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getppid.S b/libc/arch-sh/syscalls/getppid.S
deleted file mode 100644
index bf12372..0000000
--- a/libc/arch-sh/syscalls/getppid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getppid, @function
-    .globl getppid
-    .align 4
-
-getppid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getppid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getppid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getppid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getresgid.S b/libc/arch-sh/syscalls/getresgid.S
deleted file mode 100644
index 3677211..0000000
--- a/libc/arch-sh/syscalls/getresgid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getresgid, @function
-    .globl getresgid
-    .align 4
-
-getresgid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getresgid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getresgid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getresgid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getresuid.S b/libc/arch-sh/syscalls/getresuid.S
deleted file mode 100644
index 857495e..0000000
--- a/libc/arch-sh/syscalls/getresuid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getresuid, @function
-    .globl getresuid
-    .align 4
-
-getresuid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getresuid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getresuid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getresuid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getrlimit.S b/libc/arch-sh/syscalls/getrlimit.S
deleted file mode 100644
index 78135d4..0000000
--- a/libc/arch-sh/syscalls/getrlimit.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getrlimit, @function
-    .globl getrlimit
-    .align 4
-
-getrlimit:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ugetrlimit_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ugetrlimit_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ugetrlimit
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getrusage.S b/libc/arch-sh/syscalls/getrusage.S
deleted file mode 100644
index ccd9094..0000000
--- a/libc/arch-sh/syscalls/getrusage.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getrusage, @function
-    .globl getrusage
-    .align 4
-
-getrusage:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getrusage_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getrusage_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getrusage
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/gettid.S b/libc/arch-sh/syscalls/gettid.S
deleted file mode 100644
index bc25405..0000000
--- a/libc/arch-sh/syscalls/gettid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type gettid, @function
-    .globl gettid
-    .align 4
-
-gettid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_gettid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_gettid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_gettid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/gettimeofday.S b/libc/arch-sh/syscalls/gettimeofday.S
deleted file mode 100644
index 50aba80..0000000
--- a/libc/arch-sh/syscalls/gettimeofday.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type gettimeofday, @function
-    .globl gettimeofday
-    .align 4
-
-gettimeofday:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_gettimeofday_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_gettimeofday_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_gettimeofday
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getuid.S b/libc/arch-sh/syscalls/getuid.S
deleted file mode 100644
index 9f9740d..0000000
--- a/libc/arch-sh/syscalls/getuid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getuid, @function
-    .globl getuid
-    .align 4
-
-getuid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getuid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getuid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getuid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/getxattr.S b/libc/arch-sh/syscalls/getxattr.S
deleted file mode 100644
index 7d16c21..0000000
--- a/libc/arch-sh/syscalls/getxattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type getxattr, @function
-    .globl getxattr
-    .align 4
-
-getxattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_getxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_getxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_getxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/init_module.S b/libc/arch-sh/syscalls/init_module.S
deleted file mode 100644
index bd3be14..0000000
--- a/libc/arch-sh/syscalls/init_module.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type init_module, @function
-    .globl init_module
-    .align 4
-
-init_module:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_init_module_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_init_module_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_init_module
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/inotify_add_watch.S b/libc/arch-sh/syscalls/inotify_add_watch.S
deleted file mode 100644
index 84d373e..0000000
--- a/libc/arch-sh/syscalls/inotify_add_watch.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type inotify_add_watch, @function
-    .globl inotify_add_watch
-    .align 4
-
-inotify_add_watch:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_inotify_add_watch_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_inotify_add_watch_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_inotify_add_watch
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/inotify_init.S b/libc/arch-sh/syscalls/inotify_init.S
deleted file mode 100644
index 4030f69..0000000
--- a/libc/arch-sh/syscalls/inotify_init.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type inotify_init, @function
-    .globl inotify_init
-    .align 4
-
-inotify_init:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_inotify_init_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_inotify_init_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_inotify_init
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/inotify_rm_watch.S b/libc/arch-sh/syscalls/inotify_rm_watch.S
deleted file mode 100644
index 7a03447..0000000
--- a/libc/arch-sh/syscalls/inotify_rm_watch.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type inotify_rm_watch, @function
-    .globl inotify_rm_watch
-    .align 4
-
-inotify_rm_watch:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_inotify_rm_watch_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_inotify_rm_watch_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_inotify_rm_watch
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/ioprio_get.S b/libc/arch-sh/syscalls/ioprio_get.S
deleted file mode 100644
index 802eb91..0000000
--- a/libc/arch-sh/syscalls/ioprio_get.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type ioprio_get, @function
-    .globl ioprio_get
-    .align 4
-
-ioprio_get:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ioprio_get_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ioprio_get_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ioprio_get
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/ioprio_set.S b/libc/arch-sh/syscalls/ioprio_set.S
deleted file mode 100644
index 209d756..0000000
--- a/libc/arch-sh/syscalls/ioprio_set.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type ioprio_set, @function
-    .globl ioprio_set
-    .align 4
-
-ioprio_set:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_ioprio_set_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_ioprio_set_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_ioprio_set
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/kill.S b/libc/arch-sh/syscalls/kill.S
deleted file mode 100644
index d331cde..0000000
--- a/libc/arch-sh/syscalls/kill.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type kill, @function
-    .globl kill
-    .align 4
-
-kill:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_kill_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_kill_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_kill
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/klogctl.S b/libc/arch-sh/syscalls/klogctl.S
deleted file mode 100644
index 925875f..0000000
--- a/libc/arch-sh/syscalls/klogctl.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type klogctl, @function
-    .globl klogctl
-    .align 4
-
-klogctl:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_syslog_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_syslog_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_syslog
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/lchown.S b/libc/arch-sh/syscalls/lchown.S
deleted file mode 100644
index 0d94631..0000000
--- a/libc/arch-sh/syscalls/lchown.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type lchown, @function
-    .globl lchown
-    .align 4
-
-lchown:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_lchown32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_lchown32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_lchown32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/lgetxattr.S b/libc/arch-sh/syscalls/lgetxattr.S
deleted file mode 100644
index d0c5014..0000000
--- a/libc/arch-sh/syscalls/lgetxattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type lgetxattr, @function
-    .globl lgetxattr
-    .align 4
-
-lgetxattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_lgetxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_lgetxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_lgetxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/link.S b/libc/arch-sh/syscalls/link.S
deleted file mode 100644
index f1716a7..0000000
--- a/libc/arch-sh/syscalls/link.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type link, @function
-    .globl link
-    .align 4
-
-link:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_link_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_link_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_link
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/listxattr.S b/libc/arch-sh/syscalls/listxattr.S
deleted file mode 100644
index f2817a5..0000000
--- a/libc/arch-sh/syscalls/listxattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type listxattr, @function
-    .globl listxattr
-    .align 4
-
-listxattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_listxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_listxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_listxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/llistxattr.S b/libc/arch-sh/syscalls/llistxattr.S
deleted file mode 100644
index 877c15e..0000000
--- a/libc/arch-sh/syscalls/llistxattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type llistxattr, @function
-    .globl llistxattr
-    .align 4
-
-llistxattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_llistxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_llistxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_llistxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/lremovexattr.S b/libc/arch-sh/syscalls/lremovexattr.S
deleted file mode 100644
index d7aa8b9..0000000
--- a/libc/arch-sh/syscalls/lremovexattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type lremovexattr, @function
-    .globl lremovexattr
-    .align 4
-
-lremovexattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_lremovexattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_lremovexattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_lremovexattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/lseek.S b/libc/arch-sh/syscalls/lseek.S
deleted file mode 100644
index df476ff..0000000
--- a/libc/arch-sh/syscalls/lseek.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type lseek, @function
-    .globl lseek
-    .align 4
-
-lseek:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_lseek_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_lseek_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_lseek
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/lsetxattr.S b/libc/arch-sh/syscalls/lsetxattr.S
deleted file mode 100644
index 0cc4c9d..0000000
--- a/libc/arch-sh/syscalls/lsetxattr.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type lsetxattr, @function
-    .globl lsetxattr
-    .align 4
-
-lsetxattr:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_lsetxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_lsetxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_lsetxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/lstat.S b/libc/arch-sh/syscalls/lstat.S
deleted file mode 100644
index 249c92e..0000000
--- a/libc/arch-sh/syscalls/lstat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type lstat, @function
-    .globl lstat
-    .align 4
-
-lstat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_lstat64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_lstat64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_lstat64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/madvise.S b/libc/arch-sh/syscalls/madvise.S
deleted file mode 100644
index e47eb3d..0000000
--- a/libc/arch-sh/syscalls/madvise.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type madvise, @function
-    .globl madvise
-    .align 4
-
-madvise:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_madvise_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_madvise_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_madvise
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mincore.S b/libc/arch-sh/syscalls/mincore.S
deleted file mode 100644
index 3803358..0000000
--- a/libc/arch-sh/syscalls/mincore.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mincore, @function
-    .globl mincore
-    .align 4
-
-mincore:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mincore_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mincore_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mincore
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mkdir.S b/libc/arch-sh/syscalls/mkdir.S
deleted file mode 100644
index f40068a..0000000
--- a/libc/arch-sh/syscalls/mkdir.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mkdir, @function
-    .globl mkdir
-    .align 4
-
-mkdir:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mkdir_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mkdir_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mkdir
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mkdirat.S b/libc/arch-sh/syscalls/mkdirat.S
deleted file mode 100644
index e3506f8..0000000
--- a/libc/arch-sh/syscalls/mkdirat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mkdirat, @function
-    .globl mkdirat
-    .align 4
-
-mkdirat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mkdirat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mkdirat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mkdirat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mknod.S b/libc/arch-sh/syscalls/mknod.S
deleted file mode 100644
index a2ab1ed..0000000
--- a/libc/arch-sh/syscalls/mknod.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mknod, @function
-    .globl mknod
-    .align 4
-
-mknod:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mknod_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mknod_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mknod
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mlock.S b/libc/arch-sh/syscalls/mlock.S
deleted file mode 100644
index 2965d75..0000000
--- a/libc/arch-sh/syscalls/mlock.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mlock, @function
-    .globl mlock
-    .align 4
-
-mlock:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mlock_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mlock_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mlock
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mount.S b/libc/arch-sh/syscalls/mount.S
deleted file mode 100644
index d8c7c4b..0000000
--- a/libc/arch-sh/syscalls/mount.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mount, @function
-    .globl mount
-    .align 4
-
-mount:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mount_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mount_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mount
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mprotect.S b/libc/arch-sh/syscalls/mprotect.S
deleted file mode 100644
index d8fc96d..0000000
--- a/libc/arch-sh/syscalls/mprotect.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mprotect, @function
-    .globl mprotect
-    .align 4
-
-mprotect:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mprotect_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mprotect_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mprotect
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/mremap.S b/libc/arch-sh/syscalls/mremap.S
deleted file mode 100644
index d68fffb..0000000
--- a/libc/arch-sh/syscalls/mremap.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type mremap, @function
-    .globl mremap
-    .align 4
-
-mremap:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_mremap_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_mremap_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_mremap
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/msync.S b/libc/arch-sh/syscalls/msync.S
deleted file mode 100644
index 2b84bdb..0000000
--- a/libc/arch-sh/syscalls/msync.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type msync, @function
-    .globl msync
-    .align 4
-
-msync:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_msync_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_msync_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_msync
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/munlock.S b/libc/arch-sh/syscalls/munlock.S
deleted file mode 100644
index c84c130..0000000
--- a/libc/arch-sh/syscalls/munlock.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type munlock, @function
-    .globl munlock
-    .align 4
-
-munlock:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_munlock_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_munlock_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_munlock
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/munmap.S b/libc/arch-sh/syscalls/munmap.S
deleted file mode 100644
index e338540..0000000
--- a/libc/arch-sh/syscalls/munmap.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type munmap, @function
-    .globl munmap
-    .align 4
-
-munmap:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_munmap_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_munmap_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_munmap
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/nanosleep.S b/libc/arch-sh/syscalls/nanosleep.S
deleted file mode 100644
index 5aec582..0000000
--- a/libc/arch-sh/syscalls/nanosleep.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type nanosleep, @function
-    .globl nanosleep
-    .align 4
-
-nanosleep:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_nanosleep_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_nanosleep_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_nanosleep
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/pause.S b/libc/arch-sh/syscalls/pause.S
deleted file mode 100644
index 23952d5..0000000
--- a/libc/arch-sh/syscalls/pause.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type pause, @function
-    .globl pause
-    .align 4
-
-pause:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_pause_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_pause_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_pause
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/pipe2.S b/libc/arch-sh/syscalls/pipe2.S
deleted file mode 100644
index f6d9964..0000000
--- a/libc/arch-sh/syscalls/pipe2.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type pipe2, @function
-    .globl pipe2
-    .align 4
-
-pipe2:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_pipe2_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_pipe2_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_pipe2
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/poll.S b/libc/arch-sh/syscalls/poll.S
deleted file mode 100644
index 7080298..0000000
--- a/libc/arch-sh/syscalls/poll.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type poll, @function
-    .globl poll
-    .align 4
-
-poll:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_poll_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_poll_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_poll
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/prctl.S b/libc/arch-sh/syscalls/prctl.S
deleted file mode 100644
index 8c244d4..0000000
--- a/libc/arch-sh/syscalls/prctl.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type prctl, @function
-    .globl prctl
-    .align 4
-
-prctl:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_prctl_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_prctl_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_prctl
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/pread64.S b/libc/arch-sh/syscalls/pread64.S
deleted file mode 100644
index 702a402..0000000
--- a/libc/arch-sh/syscalls/pread64.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type pread64, @function
-    .globl pread64
-    .align 4
-
-pread64:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_pread64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_pread64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_pread64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/pwrite64.S b/libc/arch-sh/syscalls/pwrite64.S
deleted file mode 100644
index 3f6c192..0000000
--- a/libc/arch-sh/syscalls/pwrite64.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type pwrite64, @function
-    .globl pwrite64
-    .align 4
-
-pwrite64:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_pwrite64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_pwrite64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_pwrite64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/read.S b/libc/arch-sh/syscalls/read.S
deleted file mode 100644
index ac9faa1..0000000
--- a/libc/arch-sh/syscalls/read.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type read, @function
-    .globl read
-    .align 4
-
-read:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_read_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_read_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_read
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/readahead.S b/libc/arch-sh/syscalls/readahead.S
deleted file mode 100644
index df64b5f..0000000
--- a/libc/arch-sh/syscalls/readahead.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type readahead, @function
-    .globl readahead
-    .align 4
-
-readahead:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_readahead_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_readahead_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_readahead
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/readlink.S b/libc/arch-sh/syscalls/readlink.S
deleted file mode 100644
index e27cec7..0000000
--- a/libc/arch-sh/syscalls/readlink.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type readlink, @function
-    .globl readlink
-    .align 4
-
-readlink:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_readlink_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_readlink_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_readlink
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/readv.S b/libc/arch-sh/syscalls/readv.S
deleted file mode 100644
index 2a95ea1..0000000
--- a/libc/arch-sh/syscalls/readv.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type readv, @function
-    .globl readv
-    .align 4
-
-readv:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_readv_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_readv_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_readv
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/removexattr.S b/libc/arch-sh/syscalls/removexattr.S
deleted file mode 100644
index ea71743..0000000
--- a/libc/arch-sh/syscalls/removexattr.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type removexattr, @function
-    .globl removexattr
-    .align 4
-
-removexattr:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_removexattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_removexattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_removexattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/rename.S b/libc/arch-sh/syscalls/rename.S
deleted file mode 100644
index 692f40e..0000000
--- a/libc/arch-sh/syscalls/rename.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type rename, @function
-    .globl rename
-    .align 4
-
-rename:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_rename_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_rename_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_rename
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/renameat.S b/libc/arch-sh/syscalls/renameat.S
deleted file mode 100644
index 0c9360f..0000000
--- a/libc/arch-sh/syscalls/renameat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type renameat, @function
-    .globl renameat
-    .align 4
-
-renameat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_renameat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_renameat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_renameat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/rmdir.S b/libc/arch-sh/syscalls/rmdir.S
deleted file mode 100644
index 124892e..0000000
--- a/libc/arch-sh/syscalls/rmdir.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type rmdir, @function
-    .globl rmdir
-    .align 4
-
-rmdir:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_rmdir_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_rmdir_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_rmdir
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_get_priority_max.S b/libc/arch-sh/syscalls/sched_get_priority_max.S
deleted file mode 100644
index dd642bf..0000000
--- a/libc/arch-sh/syscalls/sched_get_priority_max.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_get_priority_max, @function
-    .globl sched_get_priority_max
-    .align 4
-
-sched_get_priority_max:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_get_priority_max_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_get_priority_max_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_get_priority_max
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_get_priority_min.S b/libc/arch-sh/syscalls/sched_get_priority_min.S
deleted file mode 100644
index 069b116..0000000
--- a/libc/arch-sh/syscalls/sched_get_priority_min.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_get_priority_min, @function
-    .globl sched_get_priority_min
-    .align 4
-
-sched_get_priority_min:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_get_priority_min_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_get_priority_min_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_get_priority_min
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_getparam.S b/libc/arch-sh/syscalls/sched_getparam.S
deleted file mode 100644
index c8417b2..0000000
--- a/libc/arch-sh/syscalls/sched_getparam.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_getparam, @function
-    .globl sched_getparam
-    .align 4
-
-sched_getparam:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_getparam_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_getparam_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_getparam
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_getscheduler.S b/libc/arch-sh/syscalls/sched_getscheduler.S
deleted file mode 100644
index ecd9a6a..0000000
--- a/libc/arch-sh/syscalls/sched_getscheduler.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_getscheduler, @function
-    .globl sched_getscheduler
-    .align 4
-
-sched_getscheduler:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_getscheduler_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_getscheduler_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_getscheduler
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_rr_get_interval.S b/libc/arch-sh/syscalls/sched_rr_get_interval.S
deleted file mode 100644
index 64d5f69..0000000
--- a/libc/arch-sh/syscalls/sched_rr_get_interval.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_rr_get_interval, @function
-    .globl sched_rr_get_interval
-    .align 4
-
-sched_rr_get_interval:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_rr_get_interval_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_rr_get_interval_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_rr_get_interval
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_setaffinity.S b/libc/arch-sh/syscalls/sched_setaffinity.S
deleted file mode 100644
index 9dda3b4..0000000
--- a/libc/arch-sh/syscalls/sched_setaffinity.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_setaffinity, @function
-    .globl sched_setaffinity
-    .align 4
-
-sched_setaffinity:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_setaffinity_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_setaffinity_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_setaffinity
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_setparam.S b/libc/arch-sh/syscalls/sched_setparam.S
deleted file mode 100644
index f1687ee..0000000
--- a/libc/arch-sh/syscalls/sched_setparam.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_setparam, @function
-    .globl sched_setparam
-    .align 4
-
-sched_setparam:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_setparam_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_setparam_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_setparam
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_setscheduler.S b/libc/arch-sh/syscalls/sched_setscheduler.S
deleted file mode 100644
index 7a6becf..0000000
--- a/libc/arch-sh/syscalls/sched_setscheduler.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_setscheduler, @function
-    .globl sched_setscheduler
-    .align 4
-
-sched_setscheduler:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_setscheduler_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_setscheduler_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_setscheduler
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sched_yield.S b/libc/arch-sh/syscalls/sched_yield.S
deleted file mode 100644
index 538f487..0000000
--- a/libc/arch-sh/syscalls/sched_yield.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sched_yield, @function
-    .globl sched_yield
-    .align 4
-
-sched_yield:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sched_yield_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sched_yield_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sched_yield
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/select.S b/libc/arch-sh/syscalls/select.S
deleted file mode 100644
index b68f46a..0000000
--- a/libc/arch-sh/syscalls/select.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type select, @function
-    .globl select
-    .align 4
-
-select:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR__newselect_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR__newselect_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR__newselect
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sendfile.S b/libc/arch-sh/syscalls/sendfile.S
deleted file mode 100644
index 015e433..0000000
--- a/libc/arch-sh/syscalls/sendfile.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sendfile, @function
-    .globl sendfile
-    .align 4
-
-sendfile:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sendfile_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sendfile_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sendfile
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setgid.S b/libc/arch-sh/syscalls/setgid.S
deleted file mode 100644
index 2941fc1..0000000
--- a/libc/arch-sh/syscalls/setgid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setgid, @function
-    .globl setgid
-    .align 4
-
-setgid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setgid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setgid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setgid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setgroups.S b/libc/arch-sh/syscalls/setgroups.S
deleted file mode 100644
index 723535d..0000000
--- a/libc/arch-sh/syscalls/setgroups.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setgroups, @function
-    .globl setgroups
-    .align 4
-
-setgroups:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setgroups32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setgroups32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setgroups32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setitimer.S b/libc/arch-sh/syscalls/setitimer.S
deleted file mode 100644
index 84f0590..0000000
--- a/libc/arch-sh/syscalls/setitimer.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setitimer, @function
-    .globl setitimer
-    .align 4
-
-setitimer:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setitimer_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setitimer_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setitimer
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setpgid.S b/libc/arch-sh/syscalls/setpgid.S
deleted file mode 100644
index 1dd8b33..0000000
--- a/libc/arch-sh/syscalls/setpgid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setpgid, @function
-    .globl setpgid
-    .align 4
-
-setpgid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setpgid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setpgid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setpgid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setpriority.S b/libc/arch-sh/syscalls/setpriority.S
deleted file mode 100644
index 4f5091f..0000000
--- a/libc/arch-sh/syscalls/setpriority.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setpriority, @function
-    .globl setpriority
-    .align 4
-
-setpriority:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setpriority_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setpriority_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setpriority
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setregid.S b/libc/arch-sh/syscalls/setregid.S
deleted file mode 100644
index 695f231..0000000
--- a/libc/arch-sh/syscalls/setregid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setregid, @function
-    .globl setregid
-    .align 4
-
-setregid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setregid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setregid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setregid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setresgid.S b/libc/arch-sh/syscalls/setresgid.S
deleted file mode 100644
index 867cbc1..0000000
--- a/libc/arch-sh/syscalls/setresgid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setresgid, @function
-    .globl setresgid
-    .align 4
-
-setresgid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setresgid32_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setresgid32_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setresgid32
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setrlimit.S b/libc/arch-sh/syscalls/setrlimit.S
deleted file mode 100644
index 73fe89f..0000000
--- a/libc/arch-sh/syscalls/setrlimit.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setrlimit, @function
-    .globl setrlimit
-    .align 4
-
-setrlimit:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setrlimit_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setrlimit_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setrlimit
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setsid.S b/libc/arch-sh/syscalls/setsid.S
deleted file mode 100644
index fa7fc66..0000000
--- a/libc/arch-sh/syscalls/setsid.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setsid, @function
-    .globl setsid
-    .align 4
-
-setsid:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(0 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setsid_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setsid_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setsid
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/settimeofday.S b/libc/arch-sh/syscalls/settimeofday.S
deleted file mode 100644
index 0a38b60..0000000
--- a/libc/arch-sh/syscalls/settimeofday.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type settimeofday, @function
-    .globl settimeofday
-    .align 4
-
-settimeofday:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_settimeofday_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_settimeofday_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_settimeofday
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/setxattr.S b/libc/arch-sh/syscalls/setxattr.S
deleted file mode 100644
index abef6b6..0000000
--- a/libc/arch-sh/syscalls/setxattr.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type setxattr, @function
-    .globl setxattr
-    .align 4
-
-setxattr:
-
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(5 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_setxattr_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_setxattr_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_setxattr
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sigaction.S b/libc/arch-sh/syscalls/sigaction.S
deleted file mode 100644
index f1dd824..0000000
--- a/libc/arch-sh/syscalls/sigaction.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sigaction, @function
-    .globl sigaction
-    .align 4
-
-sigaction:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sigaction_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sigaction_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sigaction
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sigaltstack.S b/libc/arch-sh/syscalls/sigaltstack.S
deleted file mode 100644
index 8b03e27..0000000
--- a/libc/arch-sh/syscalls/sigaltstack.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sigaltstack, @function
-    .globl sigaltstack
-    .align 4
-
-sigaltstack:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sigaltstack_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sigaltstack_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sigaltstack
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sigpending.S b/libc/arch-sh/syscalls/sigpending.S
deleted file mode 100644
index 75e479c..0000000
--- a/libc/arch-sh/syscalls/sigpending.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sigpending, @function
-    .globl sigpending
-    .align 4
-
-sigpending:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sigpending_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sigpending_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sigpending
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sigprocmask.S b/libc/arch-sh/syscalls/sigprocmask.S
deleted file mode 100644
index efa40ea..0000000
--- a/libc/arch-sh/syscalls/sigprocmask.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sigprocmask, @function
-    .globl sigprocmask
-    .align 4
-
-sigprocmask:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sigprocmask_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sigprocmask_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sigprocmask
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/stat.S b/libc/arch-sh/syscalls/stat.S
deleted file mode 100644
index aedd57d..0000000
--- a/libc/arch-sh/syscalls/stat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type stat, @function
-    .globl stat
-    .align 4
-
-stat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_stat64_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_stat64_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_stat64
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/symlink.S b/libc/arch-sh/syscalls/symlink.S
deleted file mode 100644
index d5ccc46..0000000
--- a/libc/arch-sh/syscalls/symlink.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type symlink, @function
-    .globl symlink
-    .align 4
-
-symlink:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_symlink_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_symlink_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_symlink
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sync.S b/libc/arch-sh/syscalls/sync.S
deleted file mode 100644
index a8c0646..0000000
--- a/libc/arch-sh/syscalls/sync.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sync, @function
-    .globl sync
-    .align 4
-
-sync:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sync_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sync_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sync
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/sysinfo.S b/libc/arch-sh/syscalls/sysinfo.S
deleted file mode 100644
index ae042ab..0000000
--- a/libc/arch-sh/syscalls/sysinfo.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type sysinfo, @function
-    .globl sysinfo
-    .align 4
-
-sysinfo:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_sysinfo_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_sysinfo_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_sysinfo
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/times.S b/libc/arch-sh/syscalls/times.S
deleted file mode 100644
index 079e098..0000000
--- a/libc/arch-sh/syscalls/times.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type times, @function
-    .globl times
-    .align 4
-
-times:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_times_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_times_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_times
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/tkill.S b/libc/arch-sh/syscalls/tkill.S
deleted file mode 100644
index b6fe2a3..0000000
--- a/libc/arch-sh/syscalls/tkill.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type tkill, @function
-    .globl tkill
-    .align 4
-
-tkill:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_tkill_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_tkill_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_tkill
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/truncate.S b/libc/arch-sh/syscalls/truncate.S
deleted file mode 100644
index dc08fcc..0000000
--- a/libc/arch-sh/syscalls/truncate.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type truncate, @function
-    .globl truncate
-    .align 4
-
-truncate:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_truncate_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_truncate_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_truncate
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/umask.S b/libc/arch-sh/syscalls/umask.S
deleted file mode 100644
index 7575a1c..0000000
--- a/libc/arch-sh/syscalls/umask.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type umask, @function
-    .globl umask
-    .align 4
-
-umask:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_umask_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_umask_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_umask
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/umount2.S b/libc/arch-sh/syscalls/umount2.S
deleted file mode 100644
index 06a11da..0000000
--- a/libc/arch-sh/syscalls/umount2.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type umount2, @function
-    .globl umount2
-    .align 4
-
-umount2:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_umount2_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_umount2_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_umount2
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/uname.S b/libc/arch-sh/syscalls/uname.S
deleted file mode 100644
index 755c9de..0000000
--- a/libc/arch-sh/syscalls/uname.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type uname, @function
-    .globl uname
-    .align 4
-
-uname:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_uname_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_uname_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_uname
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/unlink.S b/libc/arch-sh/syscalls/unlink.S
deleted file mode 100644
index 453d58a..0000000
--- a/libc/arch-sh/syscalls/unlink.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type unlink, @function
-    .globl unlink
-    .align 4
-
-unlink:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_unlink_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_unlink_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_unlink
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/unlinkat.S b/libc/arch-sh/syscalls/unlinkat.S
deleted file mode 100644
index 7a448a3..0000000
--- a/libc/arch-sh/syscalls/unlinkat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type unlinkat, @function
-    .globl unlinkat
-    .align 4
-
-unlinkat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_unlinkat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_unlinkat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_unlinkat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/utimensat.S b/libc/arch-sh/syscalls/utimensat.S
deleted file mode 100644
index 28e7ec6..0000000
--- a/libc/arch-sh/syscalls/utimensat.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type utimensat, @function
-    .globl utimensat
-    .align 4
-
-utimensat:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(4 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_utimensat_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_utimensat_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_utimensat
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/utimes.S b/libc/arch-sh/syscalls/utimes.S
deleted file mode 100644
index fecaa66..0000000
--- a/libc/arch-sh/syscalls/utimes.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type utimes, @function
-    .globl utimes
-    .align 4
-
-utimes:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(2 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_utimes_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_utimes_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_utimes
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/vfork.S b/libc/arch-sh/syscalls/vfork.S
deleted file mode 100644
index 2a2c78b..0000000
--- a/libc/arch-sh/syscalls/vfork.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type vfork, @function
-    .globl vfork
-    .align 4
-
-vfork:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(1 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_vfork_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_vfork_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_vfork
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/write.S b/libc/arch-sh/syscalls/write.S
deleted file mode 100644
index 71c6ea8..0000000
--- a/libc/arch-sh/syscalls/write.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type write, @function
-    .globl write
-    .align 4
-
-write:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_write_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_write_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_write
-1:  .long   __set_syscall_errno
diff --git a/libc/arch-sh/syscalls/writev.S b/libc/arch-sh/syscalls/writev.S
deleted file mode 100644
index 518ae28..0000000
--- a/libc/arch-sh/syscalls/writev.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type writev, @function
-    .globl writev
-    .align 4
-
-writev:
-
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(3 + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      __NR_writev_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-__NR_writev_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   __NR_writev
-1:  .long   __set_syscall_errno
diff --git a/libc/include/sys/linux-syscalls.h b/libc/include/sys/linux-syscalls.h
index 54f86f8..49fdf99 100644
--- a/libc/include/sys/linux-syscalls.h
+++ b/libc/include/sys/linux-syscalls.h
@@ -249,66 +249,6 @@
 #define __NR_eventfd2                     (__NR_SYSCALL_BASE + 328)
 #endif
 
-#if defined(__SH3__) || defined(__SH4__) 
-#define __NR_exit_group                   (__NR_SYSCALL_BASE + 252)
-#define __NR_waitpid                      (__NR_SYSCALL_BASE + 7)
-#define __NR_waitid                       (__NR_SYSCALL_BASE + 284)
-#define __NR_kill                         (__NR_SYSCALL_BASE + 37)
-#define __NR_tkill                        (__NR_SYSCALL_BASE + 238)
-#define __NR_set_thread_area              (__NR_SYSCALL_BASE + 243)
-#define __NR_vfork                        (__NR_SYSCALL_BASE + 190)
-#define __NR_openat                       (__NR_SYSCALL_BASE + 295)
-#define __NR_madvise                      (__NR_SYSCALL_BASE + 219)
-#define __NR_mincore                      (__NR_SYSCALL_BASE + 218)
-#define __NR_pipe2                        (__NR_SYSCALL_BASE + 331)
-#define __NR_getdents64                   (__NR_SYSCALL_BASE + 220)
-#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 269)
-#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 300)
-#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 296)
-#define __NR_fchownat                     (__NR_SYSCALL_BASE + 298)
-#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 306)
-#define __NR_renameat                     (__NR_SYSCALL_BASE + 302)
-#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 301)
-#define __NR_statfs64                     (__NR_SYSCALL_BASE + 268)
-#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 265)
-#define __NR_clock_settime                (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 266)
-#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 267)
-#define __NR_timer_create                 (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_settime                (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 261)
-#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 262)
-#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 263)
-#define __NR_utimes                       (__NR_SYSCALL_BASE + 271)
-#define __NR_utimensat                    (__NR_SYSCALL_BASE + 320)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
-#define __NR_getcpu                       (__NR_SYSCALL_BASE + 318)
-#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 288)
-#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 289)
-#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 254)
-#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 255)
-#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 256)
-#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 290)
-#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 291)
-#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 292)
-#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 328)
-#endif
-
 #endif
 
 #endif /* _BIONIC_LINUX_SYSCALLS_H_ */
diff --git a/libc/kernel/arch-sh/asm/adc.h b/libc/kernel/arch-sh/asm/adc.h
deleted file mode 100644
index 10de9ca..0000000
--- a/libc/kernel/arch-sh/asm/adc.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_ADC_H
-#define __ASM_ADC_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/addrspace.h b/libc/kernel/arch-sh/asm/addrspace.h
deleted file mode 100644
index d7d592d..0000000
--- a/libc/kernel/arch-sh/asm/addrspace.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ADDRSPACE_H
-#define __ASM_SH_ADDRSPACE_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/atomic-grb.h b/libc/kernel/arch-sh/asm/atomic-grb.h
deleted file mode 100644
index 6c24b1d..0000000
--- a/libc/kernel/arch-sh/asm/atomic-grb.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ATOMIC_GRB_H
-#define __ASM_SH_ATOMIC_GRB_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/atomic-irq.h b/libc/kernel/arch-sh/asm/atomic-irq.h
deleted file mode 100644
index b8f5eaf..0000000
--- a/libc/kernel/arch-sh/asm/atomic-irq.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ATOMIC_IRQ_H
-#define __ASM_SH_ATOMIC_IRQ_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/atomic-llsc.h b/libc/kernel/arch-sh/asm/atomic-llsc.h
deleted file mode 100644
index 22e63e7..0000000
--- a/libc/kernel/arch-sh/asm/atomic-llsc.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ATOMIC_LLSC_H
-#define __ASM_SH_ATOMIC_LLSC_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/atomic.h b/libc/kernel/arch-sh/asm/atomic.h
deleted file mode 100644
index e8f332d..0000000
--- a/libc/kernel/arch-sh/asm/atomic.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ATOMIC_H
-#define __ASM_SH_ATOMIC_H
-
-typedef struct { volatile int counter; } atomic_t;
-
-#define ATOMIC_INIT(i) ( (atomic_t) { (i) } )
-
-#define atomic_read(v) ((v)->counter)
-#define atomic_set(v,i) ((v)->counter = (i))
-
-#include <linux/compiler.h>
-#include <asm/system.h>
-
-#include <asm/atomic-llsc.h>
-
-#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
-
-#define atomic_dec_return(v) atomic_sub_return(1,(v))
-#define atomic_inc_return(v) atomic_add_return(1,(v))
-
-#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
-
-#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0)
-#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
-
-#define atomic_inc(v) atomic_add(1,(v))
-#define atomic_dec(v) atomic_sub(1,(v))
-
-#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
-#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
-#define smp_mb__before_atomic_dec() barrier()
-#define smp_mb__after_atomic_dec() barrier()
-#define smp_mb__before_atomic_inc() barrier()
-#define smp_mb__after_atomic_inc() barrier()
-#include <asm-generic/atomic.h>
-#endif
diff --git a/libc/kernel/arch-sh/asm/auxvec.h b/libc/kernel/arch-sh/asm/auxvec.h
deleted file mode 100644
index 98317bc..0000000
--- a/libc/kernel/arch-sh/asm/auxvec.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_AUXVEC_H
-#define __ASM_SH_AUXVEC_H
-
-#define AT_FPUCW 18  
-
-#define AT_SYSINFO_EHDR 33
-
-#define AT_L1I_CACHESHAPE 34
-#define AT_L1D_CACHESHAPE 35
-#define AT_L2_CACHESHAPE 36
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/bitops-grb.h b/libc/kernel/arch-sh/asm/bitops-grb.h
deleted file mode 100644
index d881058..0000000
--- a/libc/kernel/arch-sh/asm/bitops-grb.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BITOPS_GRB_H
-#define __ASM_SH_BITOPS_GRB_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/bitops-irq.h b/libc/kernel/arch-sh/asm/bitops-irq.h
deleted file mode 100644
index a20d3ec..0000000
--- a/libc/kernel/arch-sh/asm/bitops-irq.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BITOPS_IRQ_H
-#define __ASM_SH_BITOPS_IRQ_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/bitops.h b/libc/kernel/arch-sh/asm/bitops.h
deleted file mode 100644
index 4c1f6d6..0000000
--- a/libc/kernel/arch-sh/asm/bitops.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BITOPS_H
-#define __ASM_SH_BITOPS_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/bug.h b/libc/kernel/arch-sh/asm/bug.h
deleted file mode 100644
index dd02cb9..0000000
--- a/libc/kernel/arch-sh/asm/bug.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BUG_H
-#define __ASM_SH_BUG_H
-
-#define TRAPA_BUG_OPCODE 0xc33e  
-
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_WARN_ON
-
-#define _EMIT_BUG_ENTRY   "\t.pushsection __bug_table,\"a\"\n"   "2:\t.long 1b\n"   "\t.short %O3\n"   "\t.org 2b+%O4\n"   "\t.popsection\n"
-
-#define BUG()  do {   __asm__ __volatile__ (   "1:\t.short %O0\n"   _EMIT_BUG_ENTRY   :   : "n" (TRAPA_BUG_OPCODE),   "i" (__FILE__),   "i" (__LINE__), "i" (0),   "i" (sizeof(struct bug_entry)));  } while (0)
-
-#define __WARN()  do {   __asm__ __volatile__ (   "1:\t.short %O0\n"   _EMIT_BUG_ENTRY   :   : "n" (TRAPA_BUG_OPCODE),   "i" (__FILE__),   "i" (__LINE__),   "i" (BUGFLAG_WARNING),   "i" (sizeof(struct bug_entry)));  } while (0)
-
-#define WARN_ON(x) ({   int __ret_warn_on = !!(x);   if (__builtin_constant_p(__ret_warn_on)) {   if (__ret_warn_on)   __WARN();   } else {   if (unlikely(__ret_warn_on))   __WARN();   }   unlikely(__ret_warn_on);  })
-
-#include <asm-generic/bug.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/bugs.h b/libc/kernel/arch-sh/asm/bugs.h
deleted file mode 100644
index 3b27870..0000000
--- a/libc/kernel/arch-sh/asm/bugs.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BUGS_H
-#define __ASM_SH_BUGS_H
-
-#include <asm/processor.h>
-
-#ifndef __LITTLE_ENDIAN__
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/byteorder.h b/libc/kernel/arch-sh/asm/byteorder.h
deleted file mode 100644
index 04ef224..0000000
--- a/libc/kernel/arch-sh/asm/byteorder.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BYTEORDER_H
-#define __ASM_SH_BYTEORDER_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
-{
- __asm__(
-#ifdef __SH5__
- "byterev	%0, %0\n\t"
- "shari		%0, 32, %0"
-#else
- "swap.b		%0, %0\n\t"
- "swap.w		%0, %0\n\t"
- "swap.b		%0, %0"
-#endif
- : "=r" (x)
- : "0" (x));
-
- return x;
-}
-
-static inline __attribute_const__ __u16 ___arch__swab16(__u16 x)
-{
- __asm__(
-#ifdef __SH5__
- "byterev	%0, %0\n\t"
- "shari		%0, 32, %0"
-#else
- "swap.b		%0, %0"
-#endif
- : "=r" (x)
- : "0" (x));
-
- return x;
-}
-
-static inline __u64 ___arch__swab64(__u64 val)
-{
- union {
- struct { __u32 a,b; } s;
- __u64 u;
- } v, w;
- v.u = val;
- w.s.b = ___arch__swab32(v.s.a);
- w.s.a = ___arch__swab32(v.s.b);
- return w.u;
-}
-
-#define __arch__swab64(x) ___arch__swab64(x)
-#define __arch__swab32(x) ___arch__swab32(x)
-#define __arch__swab16(x) ___arch__swab16(x)
-
-#ifndef __STRICT_ANSI__
-#define __BYTEORDER_HAS_U64__
-#define __SWAB_64_THRU_32__
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-#include <linux/byteorder/little_endian.h>
-#else
-#include <linux/byteorder/big_endian.h>
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/cache.h b/libc/kernel/arch-sh/asm/cache.h
deleted file mode 100644
index 0bc339e..0000000
--- a/libc/kernel/arch-sh/asm/cache.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CACHE_H
-#define __ASM_SH_CACHE_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/cacheflush.h b/libc/kernel/arch-sh/asm/cacheflush.h
deleted file mode 100644
index 5c95ad1..0000000
--- a/libc/kernel/arch-sh/asm/cacheflush.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CACHEFLUSH_H
-#define __ASM_SH_CACHEFLUSH_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/checksum.h b/libc/kernel/arch-sh/asm/checksum.h
deleted file mode 100644
index c9193c5..0000000
--- a/libc/kernel/arch-sh/asm/checksum.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include "checksum_32.h"
diff --git a/libc/kernel/arch-sh/asm/checksum_32.h b/libc/kernel/arch-sh/asm/checksum_32.h
deleted file mode 100644
index 7a84e19..0000000
--- a/libc/kernel/arch-sh/asm/checksum_32.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CHECKSUM_H
-#define __ASM_SH_CHECKSUM_H
-
-#include <linux/in6.h>
-
-#ifdef __LITTLE_ENDIAN__
-#else
-#endif
-#define _HAVE_ARCH_IPV6_CSUM
-#define HAVE_CSUM_COPY_USER
-#endif
diff --git a/libc/kernel/arch-sh/asm/checksum_64.h b/libc/kernel/arch-sh/asm/checksum_64.h
deleted file mode 100644
index 203e11d..0000000
--- a/libc/kernel/arch-sh/asm/checksum_64.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CHECKSUM_64_H
-#define __ASM_SH_CHECKSUM_64_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/clock.h b/libc/kernel/arch-sh/asm/clock.h
deleted file mode 100644
index 9f127c3..0000000
--- a/libc/kernel/arch-sh/asm/clock.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CLOCK_H
-#define __ASM_SH_CLOCK_H
-
-#include <linux/kref.h>
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include <linux/clk.h>
-#include <linux/err.h>
-
-struct clk;
-
-struct clk_ops {
- void (*init)(struct clk *clk);
- void (*enable)(struct clk *clk);
- void (*disable)(struct clk *clk);
- void (*recalc)(struct clk *clk);
- int (*set_rate)(struct clk *clk, unsigned long rate, int algo_id);
- long (*round_rate)(struct clk *clk, unsigned long rate);
-};
-
-struct clk {
- struct list_head node;
- const char *name;
- int id;
- struct module *owner;
-
- struct clk *parent;
- struct clk_ops *ops;
-
- struct kref kref;
-
- unsigned long rate;
- unsigned long flags;
- unsigned long arch_flags;
-};
-
-#define CLK_ALWAYS_ENABLED (1 << 0)
-#define CLK_RATE_PROPAGATES (1 << 1)
-
-enum clk_sh_algo_id {
- NO_CHANGE = 0,
-
- IUS_N1_N1,
- IUS_322,
- IUS_522,
- IUS_N11,
-
- SB_N1,
-
- SB3_N1,
- SB3_32,
- SB3_43,
- SB3_54,
-
- BP_N1,
-
- IP_N1,
-};
-#endif
diff --git a/libc/kernel/arch-sh/asm/cmpxchg-grb.h b/libc/kernel/arch-sh/asm/cmpxchg-grb.h
deleted file mode 100644
index 7d35595..0000000
--- a/libc/kernel/arch-sh/asm/cmpxchg-grb.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CMPXCHG_GRB_H
-#define __ASM_SH_CMPXCHG_GRB_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/cmpxchg-irq.h b/libc/kernel/arch-sh/asm/cmpxchg-irq.h
deleted file mode 100644
index 5558b1f..0000000
--- a/libc/kernel/arch-sh/asm/cmpxchg-irq.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CMPXCHG_IRQ_H
-#define __ASM_SH_CMPXCHG_IRQ_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/cpu-features.h b/libc/kernel/arch-sh/asm/cpu-features.h
deleted file mode 100644
index 326d2d9..0000000
--- a/libc/kernel/arch-sh/asm/cpu-features.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CPU_FEATURES_H
-#define __ASM_SH_CPU_FEATURES_H
-
-#define CPU_HAS_FPU 0x0001  
-#define CPU_HAS_P2_FLUSH_BUG 0x0002  
-#define CPU_HAS_MMU_PAGE_ASSOC 0x0004  
-#define CPU_HAS_DSP 0x0008  
-#define CPU_HAS_PERF_COUNTER 0x0010  
-#define CPU_HAS_PTEA 0x0020  
-#define CPU_HAS_LLSC 0x0040  
-#define CPU_HAS_L2_CACHE 0x0080  
-#define CPU_HAS_OP32 0x0100  
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/cputime.h b/libc/kernel/arch-sh/asm/cputime.h
deleted file mode 100644
index 8a85d30..0000000
--- a/libc/kernel/arch-sh/asm/cputime.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __SH_CPUTIME_H
-#define __SH_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/current.h b/libc/kernel/arch-sh/asm/current.h
deleted file mode 100644
index e2ce122..0000000
--- a/libc/kernel/arch-sh/asm/current.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_CURRENT_H
-#define __ASM_SH_CURRENT_H
-
-#include <linux/thread_info.h>
-
-struct task_struct;
-
-#define current get_current()
-#endif
diff --git a/libc/kernel/arch-sh/asm/delay.h b/libc/kernel/arch-sh/asm/delay.h
deleted file mode 100644
index 15a1aa4..0000000
--- a/libc/kernel/arch-sh/asm/delay.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_DELAY_H
-#define __ASM_SH_DELAY_H
-
-#define udelay(n) (__builtin_constant_p(n) ?   ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) :   __udelay(n))
-
-#define ndelay(n) (__builtin_constant_p(n) ?   ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) :   __ndelay(n))
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/device.h b/libc/kernel/arch-sh/asm/device.h
deleted file mode 100644
index a46d06f..0000000
--- a/libc/kernel/arch-sh/asm/device.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/device.h>
-
-struct platform_device;
-
diff --git a/libc/kernel/arch-sh/asm/div64.h b/libc/kernel/arch-sh/asm/div64.h
deleted file mode 100644
index 53a10fc..0000000
--- a/libc/kernel/arch-sh/asm/div64.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/div64.h>
diff --git a/libc/kernel/arch-sh/asm/dma-mapping.h b/libc/kernel/arch-sh/asm/dma-mapping.h
deleted file mode 100644
index 3bbdf18..0000000
--- a/libc/kernel/arch-sh/asm/dma-mapping.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_DMA_MAPPING_H
-#define __ASM_SH_DMA_MAPPING_H
-
-#include <linux/mm.h>
-#include <linux/scatterlist.h>
-#include <asm/cacheflush.h>
-#include <asm/io.h>
-#include <asm-generic/dma-coherent.h>
-
-#define dma_supported(dev, mask) (1)
-
-#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
-#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-#define dma_is_consistent(d, h) (1)
-
-#define dma_unmap_single(dev, addr, size, dir) do { } while (0)
-#define dma_unmap_sg(dev, sg, nents, dir) do { } while (0)
-#define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/dma.h b/libc/kernel/arch-sh/asm/dma.h
deleted file mode 100644
index 40fe1d6..0000000
--- a/libc/kernel/arch-sh/asm/dma.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_DMA_H
-#define __ASM_SH_DMA_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/dmabrg.h b/libc/kernel/arch-sh/asm/dmabrg.h
deleted file mode 100644
index eadfcac..0000000
--- a/libc/kernel/arch-sh/asm/dmabrg.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _DMABRG_H_
-#define _DMABRG_H_
-
-#define DMABRGIRQ_USBDMA 0
-#define DMABRGIRQ_USBDMAERR 1
-#define DMABRGIRQ_A0TXF 2
-#define DMABRGIRQ_A0TXH 3
-#define DMABRGIRQ_A0RXF 4
-#define DMABRGIRQ_A0RXH 5
-#define DMABRGIRQ_A1TXF 6
-#define DMABRGIRQ_A1TXH 7
-#define DMABRGIRQ_A1RXF 8
-#define DMABRGIRQ_A1RXH 9
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/edosk7705.h b/libc/kernel/arch-sh/asm/edosk7705.h
deleted file mode 100644
index 146675d..0000000
--- a/libc/kernel/arch-sh/asm/edosk7705.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_EDOSK7705_IO_H
-#define __ASM_SH_EDOSK7705_IO_H
-
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/elf.h b/libc/kernel/arch-sh/asm/elf.h
deleted file mode 100644
index 4f283c2..0000000
--- a/libc/kernel/arch-sh/asm/elf.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ELF_H
-#define __ASM_SH_ELF_H
-
-#include <linux/utsname.h>
-#include <asm/auxvec.h>
-#include <asm/ptrace.h>
-#include <asm/user.h>
-
-#define EF_SH_PIC 0x100  
-#define EF_SH_FDPIC 0x8000  
-
-#define R_SH_NONE 0
-#define R_SH_DIR32 1
-#define R_SH_REL32 2
-#define R_SH_DIR8WPN 3
-#define R_SH_IND12W 4
-#define R_SH_DIR8WPL 5
-#define R_SH_DIR8WPZ 6
-#define R_SH_DIR8BP 7
-#define R_SH_DIR8W 8
-#define R_SH_DIR8L 9
-#define R_SH_SWITCH16 25
-#define R_SH_SWITCH32 26
-#define R_SH_USES 27
-#define R_SH_COUNT 28
-#define R_SH_ALIGN 29
-#define R_SH_CODE 30
-#define R_SH_DATA 31
-#define R_SH_LABEL 32
-#define R_SH_SWITCH8 33
-#define R_SH_GNU_VTINHERIT 34
-#define R_SH_GNU_VTENTRY 35
-#define R_SH_TLS_GD_32 144
-#define R_SH_TLS_LD_32 145
-#define R_SH_TLS_LDO_32 146
-#define R_SH_TLS_IE_32 147
-#define R_SH_TLS_LE_32 148
-#define R_SH_TLS_DTPMOD32 149
-#define R_SH_TLS_DTPOFF32 150
-#define R_SH_TLS_TPOFF32 151
-#define R_SH_GOT32 160
-#define R_SH_PLT32 161
-#define R_SH_COPY 162
-#define R_SH_GLOB_DAT 163
-#define R_SH_JMP_SLOT 164
-#define R_SH_RELATIVE 165
-#define R_SH_GOTOFF 166
-#define R_SH_GOTPC 167
-
-#define R_SH_GOT20 70
-#define R_SH_GOTOFF20 71
-#define R_SH_GOTFUNCDESC 72
-#define R_SH_GOTFUNCDESC20 73
-#define R_SH_GOTOFFFUNCDESC 74
-#define R_SH_GOTOFFFUNCDESC20 75
-#define R_SH_FUNCDESC 76
-#define R_SH_FUNCDESC_VALUE 77
-
-#define R_SH_IMM_LOW16 246
-#define R_SH_IMM_LOW16_PCREL 247
-#define R_SH_IMM_MEDLOW16 248
-#define R_SH_IMM_MEDLOW16_PCREL 249
-
-#define R_SH_NUM 256
-
-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;
-
-#define ELF_CLASS ELFCLASS32
-#ifdef __LITTLE_ENDIAN__
-#define ELF_DATA ELFDATA2LSB
-#else
-#define ELF_DATA ELFDATA2MSB
-#endif
-#define ELF_ARCH EM_SH
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/emergency-restart.h b/libc/kernel/arch-sh/asm/emergency-restart.h
deleted file mode 100644
index 1c1964f..0000000
--- a/libc/kernel/arch-sh/asm/emergency-restart.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_EMERGENCY_RESTART_H
-#define _ASM_EMERGENCY_RESTART_H
-
-#include <asm-generic/emergency-restart.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/errno.h b/libc/kernel/arch-sh/asm/errno.h
deleted file mode 100644
index f35743b..0000000
--- a/libc/kernel/arch-sh/asm/errno.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ERRNO_H
-#define __ASM_SH_ERRNO_H
-
-#include <asm-generic/errno.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/fb.h b/libc/kernel/arch-sh/asm/fb.h
deleted file mode 100644
index f25951e..0000000
--- a/libc/kernel/arch-sh/asm/fb.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_FB_H_
-#define _ASM_FB_H_
-
-#include <linux/fb.h>
-#include <linux/fs.h>
-#include <asm/page.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/fcntl.h b/libc/kernel/arch-sh/asm/fcntl.h
deleted file mode 100644
index 00630ad..0000000
--- a/libc/kernel/arch-sh/asm/fcntl.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/fcntl.h>
diff --git a/libc/kernel/arch-sh/asm/fixmap.h b/libc/kernel/arch-sh/asm/fixmap.h
deleted file mode 100644
index 3f7b948..0000000
--- a/libc/kernel/arch-sh/asm/fixmap.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_FIXMAP_H
-#define _ASM_FIXMAP_H
-
-#include <linux/kernel.h>
-#include <asm/page.h>
-
-enum fixed_addresses {
-#define FIX_N_COLOURS 16
- FIX_CMAP_BEGIN,
- FIX_CMAP_END = FIX_CMAP_BEGIN + FIX_N_COLOURS,
- FIX_UNCACHED,
- __end_of_fixed_addresses
-};
-
-#define set_fixmap(idx, phys)   __set_fixmap(idx, phys, PAGE_KERNEL)
-
-#define set_fixmap_nocache(idx, phys)   __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE)
-
-#define FIXADDR_TOP (P4SEG - PAGE_SIZE)
-#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
-#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
-
-#define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT))
-#define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/flat.h b/libc/kernel/arch-sh/asm/flat.h
deleted file mode 100644
index 6686199..0000000
--- a/libc/kernel/arch-sh/asm/flat.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_FLAT_H
-#define __ASM_SH_FLAT_H
-
-#define flat_stack_align(sp)  
-#define flat_argvp_envp_on_stack() 0
-#define flat_old_ram_flag(flags) (flags)
-#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
-#define flat_get_addr_from_rp(rp, relval, flags, p) get_unaligned(rp)
-#define flat_put_addr_at_rp(rp, val, relval) put_unaligned(val,rp)
-#define flat_get_relocate_addr(rel) (rel)
-#define flat_set_persistent(relval, p) ({ (void)p; 0; })
-
-#define FLAT_PLAT_INIT(_r)   do { _r->regs[0]=0; _r->regs[1]=0; _r->regs[2]=0; _r->regs[3]=0;   _r->regs[4]=0; _r->regs[5]=0; _r->regs[6]=0; _r->regs[7]=0;   _r->regs[8]=0; _r->regs[9]=0; _r->regs[10]=0; _r->regs[11]=0;   _r->regs[12]=0; _r->regs[13]=0; _r->regs[14]=0;   _r->sr = SR_FD; } while (0)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/fpu.h b/libc/kernel/arch-sh/asm/fpu.h
deleted file mode 100644
index 9671d75..0000000
--- a/libc/kernel/arch-sh/asm/fpu.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_FPU_H
-#define __ASM_SH_FPU_H
-
-#ifndef __ASSEMBLY__
-#include <linux/preempt.h>
-#include <asm/ptrace.h>
-
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/freq.h b/libc/kernel/arch-sh/asm/freq.h
deleted file mode 100644
index ad93c19..0000000
--- a/libc/kernel/arch-sh/asm/freq.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_FREQ_H
-#define __ASM_SH_FREQ_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/futex-irq.h b/libc/kernel/arch-sh/asm/futex-irq.h
deleted file mode 100644
index 20ca261..0000000
--- a/libc/kernel/arch-sh/asm/futex-irq.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_FUTEX_IRQ_H
-#define __ASM_SH_FUTEX_IRQ_H
-
-#include <asm/system.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/futex.h b/libc/kernel/arch-sh/asm/futex.h
deleted file mode 100644
index cad68a9..0000000
--- a/libc/kernel/arch-sh/asm/futex.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_FUTEX_H
-#define __ASM_SH_FUTEX_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/gpio.h b/libc/kernel/arch-sh/asm/gpio.h
deleted file mode 100644
index 8e26b01..0000000
--- a/libc/kernel/arch-sh/asm/gpio.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_GPIO_H
-#define __ASM_SH_GPIO_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hardirq.h b/libc/kernel/arch-sh/asm/hardirq.h
deleted file mode 100644
index 6d80d02..0000000
--- a/libc/kernel/arch-sh/asm/hardirq.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_HARDIRQ_H
-#define __ASM_SH_HARDIRQ_H
-
-#include <linux/threads.h>
-#include <linux/irq.h>
-
-typedef struct {
- unsigned int __softirq_pending;
-} ____cacheline_aligned irq_cpustat_t;
-
-#include <linux/irq_cpustat.h>  
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hd64461.h b/libc/kernel/arch-sh/asm/hd64461.h
deleted file mode 100644
index af16596..0000000
--- a/libc/kernel/arch-sh/asm/hd64461.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_HD64461
-#define __ASM_SH_HD64461
-
-#define HD64461_PCC_WINDOW 0x01000000
-
-#define HD64461_PCC0_BASE (CONFIG_HD64461_IOBASE + 0x8000000)
-#define HD64461_PCC0_ATTR (HD64461_PCC0_BASE)  
-#define HD64461_PCC0_COMM (HD64461_PCC0_BASE+HD64461_PCC_WINDOW)  
-#define HD64461_PCC0_IO (HD64461_PCC0_BASE+2*HD64461_PCC_WINDOW)  
-
-#define HD64461_PCC1_BASE (CONFIG_HD64461_IOBASE + 0x4000000)
-#define HD64461_PCC1_ATTR (HD64461_PCC1_BASE)  
-#define HD64461_PCC1_COMM (HD64461_PCC1_BASE+HD64461_PCC_WINDOW)  
-
-#define HD64461_STBCR CONFIG_HD64461_IOBASE
-#define HD64461_STBCR_CKIO_STBY 0x2000
-#define HD64461_STBCR_SAFECKE_IST 0x1000
-#define HD64461_STBCR_SLCKE_IST 0x0800
-#define HD64461_STBCR_SAFECKE_OST 0x0400
-#define HD64461_STBCR_SLCKE_OST 0x0200
-#define HD64461_STBCR_SMIAST 0x0100
-#define HD64461_STBCR_SLCDST 0x0080
-#define HD64461_STBCR_SPC0ST 0x0040
-#define HD64461_STBCR_SPC1ST 0x0020
-#define HD64461_STBCR_SAFEST 0x0010
-#define HD64461_STBCR_STM0ST 0x0008
-#define HD64461_STBCR_STM1ST 0x0004
-#define HD64461_STBCR_SIRST 0x0002
-#define HD64461_STBCR_SURTST 0x0001
-
-#define HD64461_SYSCR (CONFIG_HD64461_IOBASE + 0x02)
-
-#define HD64461_SCPUCR (CONFIG_HD64461_IOBASE + 0x04)
-
-#define HD64461_LCDCBAR (CONFIG_HD64461_IOBASE + 0x1000)
-
-#define HD64461_LCDCLOR (CONFIG_HD64461_IOBASE + 0x1002)
-
-#define HD64461_LCDCCR (CONFIG_HD64461_IOBASE + 0x1004)
-
-#define HD64461_LCDCCR_STBACK 0x0400  
-#define HD64461_LCDCCR_STREQ 0x0100  
-#define HD64461_LCDCCR_MOFF 0x0080  
-#define HD64461_LCDCCR_REFSEL 0x0040  
-#define HD64461_LCDCCR_EPON 0x0020  
-#define HD64461_LCDCCR_SPON 0x0010  
-
-#define HD64461_LDR1 (CONFIG_HD64461_IOBASE + 0x1010)
-#define HD64461_LDR1_DON 0x01  
-#define HD64461_LDR1_DINV 0x80  
-
-#define HD64461_LDR2 (CONFIG_HD64461_IOBASE + 0x1012)
-#define HD64461_LDHNCR (CONFIG_HD64461_IOBASE + 0x1014)  
-#define HD64461_LDHNSR (CONFIG_HD64461_IOBASE + 0x1016)  
-#define HD64461_LDVNTR (CONFIG_HD64461_IOBASE + 0x1018)  
-#define HD64461_LDVNDR (CONFIG_HD64461_IOBASE + 0x101a)  
-#define HD64461_LDVSPR (CONFIG_HD64461_IOBASE + 0x101c)  
-
-#define HD64461_LDR3 (CONFIG_HD64461_IOBASE + 0x101e)
-
-#define HD64461_CPTWAR (CONFIG_HD64461_IOBASE + 0x1030)  
-#define HD64461_CPTWDR (CONFIG_HD64461_IOBASE + 0x1032)  
-#define HD64461_CPTRAR (CONFIG_HD64461_IOBASE + 0x1034)  
-#define HD64461_CPTRDR (CONFIG_HD64461_IOBASE + 0x1036)  
-
-#define HD64461_GRDOR (CONFIG_HD64461_IOBASE + 0x1040)  
-#define HD64461_GRSCR (CONFIG_HD64461_IOBASE + 0x1042)  
-#define HD64461_GRCFGR (CONFIG_HD64461_IOBASE + 0x1044)  
-
-#define HD64461_GRCFGR_ACCSTATUS 0x10  
-#define HD64461_GRCFGR_ACCRESET 0x08  
-#define HD64461_GRCFGR_ACCSTART_BITBLT 0x06  
-#define HD64461_GRCFGR_ACCSTART_LINE 0x04  
-#define HD64461_GRCFGR_COLORDEPTH16 0x01  
-#define HD64461_GRCFGR_COLORDEPTH8 0x01  
-
-#define HD64461_LNSARH (CONFIG_HD64461_IOBASE + 0x1046)  
-#define HD64461_LNSARL (CONFIG_HD64461_IOBASE + 0x1048)  
-#define HD64461_LNAXLR (CONFIG_HD64461_IOBASE + 0x104a)  
-#define HD64461_LNDGR (CONFIG_HD64461_IOBASE + 0x104c)  
-#define HD64461_LNAXR (CONFIG_HD64461_IOBASE + 0x104e)  
-#define HD64461_LNERTR (CONFIG_HD64461_IOBASE + 0x1050)  
-#define HD64461_LNMDR (CONFIG_HD64461_IOBASE + 0x1052)  
-
-#define HD64461_BBTSSARH (CONFIG_HD64461_IOBASE + 0x1054)  
-#define HD64461_BBTSSARL (CONFIG_HD64461_IOBASE + 0x1056)  
-#define HD64461_BBTDSARH (CONFIG_HD64461_IOBASE + 0x1058)  
-#define HD64461_BBTDSARL (CONFIG_HD64461_IOBASE + 0x105a)  
-#define HD64461_BBTDWR (CONFIG_HD64461_IOBASE + 0x105c)  
-#define HD64461_BBTDHR (CONFIG_HD64461_IOBASE + 0x105e)  
-#define HD64461_BBTPARH (CONFIG_HD64461_IOBASE + 0x1060)  
-#define HD64461_BBTPARL (CONFIG_HD64461_IOBASE + 0x1062)  
-#define HD64461_BBTMARH (CONFIG_HD64461_IOBASE + 0x1064)  
-#define HD64461_BBTMARL (CONFIG_HD64461_IOBASE + 0x1066)  
-#define HD64461_BBTROPR (CONFIG_HD64461_IOBASE + 0x1068)  
-#define HD64461_BBTMDR (CONFIG_HD64461_IOBASE + 0x106a)  
-
-#define HD64461_PCC0ISR (CONFIG_HD64461_IOBASE + 0x2000)  
-#define HD64461_PCC0GCR (CONFIG_HD64461_IOBASE + 0x2002)  
-#define HD64461_PCC0CSCR (CONFIG_HD64461_IOBASE + 0x2004)  
-#define HD64461_PCC0CSCIER (CONFIG_HD64461_IOBASE + 0x2006)  
-#define HD64461_PCC0SCR (CONFIG_HD64461_IOBASE + 0x2008)  
-
-#define HD64461_PCC1ISR (CONFIG_HD64461_IOBASE + 0x2010)  
-#define HD64461_PCC1GCR (CONFIG_HD64461_IOBASE + 0x2012)  
-#define HD64461_PCC1CSCR (CONFIG_HD64461_IOBASE + 0x2014)  
-#define HD64461_PCC1CSCIER (CONFIG_HD64461_IOBASE + 0x2016)  
-#define HD64461_PCC1SCR (CONFIG_HD64461_IOBASE + 0x2018)  
-
-#define HD64461_PCCISR_READY 0x80  
-#define HD64461_PCCISR_MWP 0x40  
-#define HD64461_PCCISR_VS2 0x20  
-#define HD64461_PCCISR_VS1 0x10  
-#define HD64461_PCCISR_CD2 0x08  
-#define HD64461_PCCISR_CD1 0x04  
-#define HD64461_PCCISR_BVD2 0x02  
-#define HD64461_PCCISR_BVD1 0x01  
-
-#define HD64461_PCCISR_PCD_MASK 0x0c  
-#define HD64461_PCCISR_BVD_MASK 0x03  
-#define HD64461_PCCISR_BVD_BATGOOD 0x03  
-#define HD64461_PCCISR_BVD_BATWARN 0x01  
-#define HD64461_PCCISR_BVD_BATDEAD1 0x02  
-#define HD64461_PCCISR_BVD_BATDEAD2 0x00  
-
-#define HD64461_PCCGCR_DRVE 0x80  
-#define HD64461_PCCGCR_PCCR 0x40  
-#define HD64461_PCCGCR_PCCT 0x20  
-#define HD64461_PCCGCR_VCC0 0x10  
-#define HD64461_PCCGCR_PMMOD 0x08  
-#define HD64461_PCCGCR_PA25 0x04  
-#define HD64461_PCCGCR_PA24 0x02  
-#define HD64461_PCCGCR_REG 0x01  
-
-#define HD64461_PCCCSCR_SCDI 0x80  
-#define HD64461_PCCCSCR_SRV1 0x40  
-#define HD64461_PCCCSCR_IREQ 0x20  
-#define HD64461_PCCCSCR_SC 0x10  
-#define HD64461_PCCCSCR_CDC 0x08  
-#define HD64461_PCCCSCR_RC 0x04  
-#define HD64461_PCCCSCR_BW 0x02  
-#define HD64461_PCCCSCR_BD 0x01  
-
-#define HD64461_PCCCSCIER_CRE 0x80  
-#define HD64461_PCCCSCIER_IREQE_MASK 0x60  
-#define HD64461_PCCCSCIER_IREQE_DISABLED 0x00  
-#define HD64461_PCCCSCIER_IREQE_LEVEL 0x20  
-#define HD64461_PCCCSCIER_IREQE_FALLING 0x40  
-#define HD64461_PCCCSCIER_IREQE_RISING 0x60  
-
-#define HD64461_PCCCSCIER_SCE 0x10  
-#define HD64461_PCCCSCIER_CDE 0x08  
-#define HD64461_PCCCSCIER_RE 0x04  
-#define HD64461_PCCCSCIER_BWE 0x02  
-#define HD64461_PCCCSCIER_BDE 0x01  
-
-#define HD64461_PCCSCR_VCC1 0x02  
-#define HD64461_PCCSCR_SWP 0x01  
-
-#define HD64461_P0OCR (CONFIG_HD64461_IOBASE + 0x202a)
-
-#define HD64461_P1OCR (CONFIG_HD64461_IOBASE + 0x202c)
-
-#define HD64461_PGCR (CONFIG_HD64461_IOBASE + 0x202e)
-
-#define HD64461_GPACR (CONFIG_HD64461_IOBASE + 0x4000)  
-#define HD64461_GPBCR (CONFIG_HD64461_IOBASE + 0x4002)  
-#define HD64461_GPCCR (CONFIG_HD64461_IOBASE + 0x4004)  
-#define HD64461_GPDCR (CONFIG_HD64461_IOBASE + 0x4006)  
-
-#define HD64461_GPADR (CONFIG_HD64461_IOBASE + 0x4010)  
-#define HD64461_GPBDR (CONFIG_HD64461_IOBASE + 0x4012)  
-#define HD64461_GPCDR (CONFIG_HD64461_IOBASE + 0x4014)  
-#define HD64461_GPDDR (CONFIG_HD64461_IOBASE + 0x4016)  
-
-#define HD64461_GPAICR (CONFIG_HD64461_IOBASE + 0x4020)  
-#define HD64461_GPBICR (CONFIG_HD64461_IOBASE + 0x4022)  
-#define HD64461_GPCICR (CONFIG_HD64461_IOBASE + 0x4024)  
-#define HD64461_GPDICR (CONFIG_HD64461_IOBASE + 0x4026)  
-
-#define HD64461_GPAISR (CONFIG_HD64461_IOBASE + 0x4040)  
-#define HD64461_GPBISR (CONFIG_HD64461_IOBASE + 0x4042)  
-#define HD64461_GPCISR (CONFIG_HD64461_IOBASE + 0x4044)  
-#define HD64461_GPDISR (CONFIG_HD64461_IOBASE + 0x4046)  
-
-#define HD64461_NIRR (CONFIG_HD64461_IOBASE + 0x5000)
-#define HD64461_NIMR (CONFIG_HD64461_IOBASE + 0x5002)
-
-#define HD64461_IRQBASE OFFCHIP_IRQ_BASE
-#define OFFCHIP_IRQ_BASE 64
-#define HD64461_IRQ_NUM 16
-
-#define HD64461_IRQ_UART (HD64461_IRQBASE+5)
-#define HD64461_IRQ_IRDA (HD64461_IRQBASE+6)
-#define HD64461_IRQ_TMU1 (HD64461_IRQBASE+9)
-#define HD64461_IRQ_TMU0 (HD64461_IRQBASE+10)
-#define HD64461_IRQ_GPIO (HD64461_IRQBASE+11)
-#define HD64461_IRQ_AFE (HD64461_IRQBASE+12)
-#define HD64461_IRQ_PCC1 (HD64461_IRQBASE+13)
-#define HD64461_IRQ_PCC0 (HD64461_IRQBASE+14)
-
-#define __IO_PREFIX hd64461
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hd64465/gpio.h b/libc/kernel/arch-sh/asm/hd64465/gpio.h
deleted file mode 100644
index 159c7c4..0000000
--- a/libc/kernel/arch-sh/asm/hd64465/gpio.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_HD64465_GPIO_
-#define _ASM_SH_HD64465_GPIO_ 1
-
-#include <asm/hd64465.h>
-
-#define HD64465_GPIO_PORTPIN(port,pin) (((port)-'A')<<3|(pin))
-
-#define HD64465_GPIO_FUNCTION2 0  
-#define HD64465_GPIO_OUT 1  
-#define HD64465_GPIO_IN_PULLUP 2  
-#define HD64465_GPIO_IN 3  
-
-#define HD64465_GPIO_FALLING 0
-#define HD64465_GPIO_RISING 1
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hd64465/hd64465.h b/libc/kernel/arch-sh/asm/hd64465/hd64465.h
deleted file mode 100644
index 108289b..0000000
--- a/libc/kernel/arch-sh/asm/hd64465/hd64465.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_HD64465_
-#define _ASM_SH_HD64465_ 1
-
-#include <asm/io.h>
-#include <asm/irq.h>
-
-#define HD64465_REG_SRR 0x1000c  
-#define HD64465_REG_SDID 0x10010  
-#define HD64465_SDID 0x8122  
-
-#define HD64465_REG_SMSCR 0x10000  
-#define HD64465_SMSCR_PS2ST 0x4000  
-#define HD64465_SMSCR_ADCST 0x1000  
-#define HD64465_SMSCR_UARTST 0x0800  
-#define HD64465_SMSCR_SCDIST 0x0200  
-#define HD64465_SMSCR_PPST 0x0100  
-#define HD64465_SMSCR_PC0ST 0x0040  
-#define HD64465_SMSCR_PC1ST 0x0020  
-#define HD64465_SMSCR_AFEST 0x0010  
-#define HD64465_SMSCR_TM0ST 0x0008  
-#define HD64465_SMSCR_TM1ST 0x0004  
-#define HD64465_SMSCR_IRDAST 0x0002  
-#define HD64465_SMSCR_KBCST 0x0001  
-
-#define HD64465_REG_NIRR 0x15000  
-#define HD64465_REG_NIMR 0x15002  
-#define HD64465_REG_NITR 0x15004  
-
-#define HD64465_REG_TCVR1 0x16000  
-#define HD64465_REG_TCVR0 0x16002  
-#define HD64465_REG_TRVR1 0x16004  
-#define HD64465_REG_TRVR0 0x16006  
-#define HD64465_REG_TCR1 0x16008  
-#define HD64465_REG_TCR0 0x1600A  
-#define HD64465_TCR_EADT 0x10  
-#define HD64465_TCR_ETMO 0x08  
-#define HD64465_TCR_PST_MASK 0x06  
-#define HD64465_TCR_PST_1 0x06  
-#define HD64465_TCR_PST_4 0x04  
-#define HD64465_TCR_PST_8 0x02  
-#define HD64465_TCR_PST_16 0x00  
-#define HD64465_TCR_TSTP 0x01  
-#define HD64465_REG_TIRR 0x1600C  
-#define HD64465_REG_TIDR 0x1600E  
-#define HD64465_REG_PWM1CS 0x16010  
-#define HD64465_REG_PWM1LPC 0x16012  
-#define HD64465_REG_PWM1HPC 0x16014  
-#define HD64465_REG_PWM0CS 0x16018  
-#define HD64465_REG_PWM0LPC 0x1601A  
-#define HD64465_REG_PWM0HPC 0x1601C  
-
-#define HD64465_REG_ADDRA 0x1E000  
-#define HD64465_REG_ADDRB 0x1E002  
-#define HD64465_REG_ADDRC 0x1E004  
-#define HD64465_REG_ADDRD 0x1E006  
-#define HD64465_REG_ADCSR 0x1E008  
-#define HD64465_ADCSR_ADF 0x80  
-#define HD64465_ADCSR_ADST 0x40  
-#define HD64465_ADCSR_ADIS 0x20  
-#define HD64465_ADCSR_TRGE 0x10  
-#define HD64465_ADCSR_ADIE 0x08  
-#define HD64465_ADCSR_SCAN 0x04  
-#define HD64465_ADCSR_CH_MASK 0x03  
-#define HD64465_REG_ADCALCR 0x1E00A  
-#define HD64465_REG_ADCAL 0x1E00C  
-
-#define HD64465_REG_GPACR 0x14000  
-#define HD64465_REG_GPBCR 0x14002  
-#define HD64465_REG_GPCCR 0x14004  
-#define HD64465_REG_GPDCR 0x14006  
-#define HD64465_REG_GPECR 0x14008  
-#define HD64465_REG_GPADR 0x14010  
-#define HD64465_REG_GPBDR 0x14012  
-#define HD64465_REG_GPCDR 0x14014  
-#define HD64465_REG_GPDDR 0x14016  
-#define HD64465_REG_GPEDR 0x14018  
-#define HD64465_REG_GPAICR 0x14020  
-#define HD64465_REG_GPBICR 0x14022  
-#define HD64465_REG_GPCICR 0x14024  
-#define HD64465_REG_GPDICR 0x14026  
-#define HD64465_REG_GPEICR 0x14028  
-#define HD64465_REG_GPAISR 0x14040  
-#define HD64465_REG_GPBISR 0x14042  
-#define HD64465_REG_GPCISR 0x14044  
-#define HD64465_REG_GPDISR 0x14046  
-#define HD64465_REG_GPEISR 0x14048  
-
-#define HD64465_REG_PCC0ISR 0x12000   
-#define HD64465_PCCISR_PREADY 0x80  
-#define HD64465_PCCISR_PIREQ 0x80
-#define HD64465_PCCISR_PMWP 0x40  
-#define HD64465_PCCISR_PVS2 0x20  
-#define HD64465_PCCISR_PVS1 0x10  
-#define HD64465_PCCISR_PCD_MASK 0x0c  
-#define HD64465_PCCISR_PBVD_MASK 0x03  
-#define HD64465_PCCISR_PBVD_BATGOOD 0x03  
-#define HD64465_PCCISR_PBVD_BATWARN 0x01  
-#define HD64465_PCCISR_PBVD_BATDEAD1 0x02  
-#define HD64465_PCCISR_PBVD_BATDEAD2 0x00  
-#define HD64465_REG_PCC0GCR 0x12002   
-#define HD64465_PCCGCR_PDRV 0x80  
-#define HD64465_PCCGCR_PCCR 0x40  
-#define HD64465_PCCGCR_PCCT 0x20  
-#define HD64465_PCCGCR_PVCC0 0x10  
-#define HD64465_PCCGCR_PMMOD 0x08  
-#define HD64465_PCCGCR_PPA25 0x04  
-#define HD64465_PCCGCR_PPA24 0x02  
-#define HD64465_PCCGCR_PREG 0x01  
-#define HD64465_REG_PCC0CSCR 0x12004   
-#define HD64465_PCCCSCR_PSCDI 0x80  
-#define HD64465_PCCCSCR_PSWSEL 0x40  
-#define HD64465_PCCCSCR_PIREQ 0x20  
-#define HD64465_PCCCSCR_PSC 0x10  
-#define HD64465_PCCCSCR_PCDC 0x08  
-#define HD64465_PCCCSCR_PRC 0x04  
-#define HD64465_PCCCSCR_PBW 0x02  
-#define HD64465_PCCCSCR_PBD 0x01  
-#define HD64465_REG_PCC0CSCIER 0x12006   
-#define HD64465_PCCCSCIER_PCRE 0x80  
-#define HD64465_PCCCSCIER_PIREQE_MASK 0x60  
-#define HD64465_PCCCSCIER_PIREQE_DISABLED 0x00  
-#define HD64465_PCCCSCIER_PIREQE_LEVEL 0x20  
-#define HD64465_PCCCSCIER_PIREQE_FALLING 0x40  
-#define HD64465_PCCCSCIER_PIREQE_RISING 0x60  
-#define HD64465_PCCCSCIER_PSCE 0x10  
-#define HD64465_PCCCSCIER_PCDE 0x08  
-#define HD64465_PCCCSCIER_PRE 0x04  
-#define HD64465_PCCCSCIER_PBWE 0x02  
-#define HD64465_PCCCSCIER_PBDE 0x01  
-#define HD64465_REG_PCC0SCR 0x12008   
-#define HD64465_PCCSCR_SHDN 0x10  
-#define HD64465_PCCSCR_SWP 0x01  
-#define HD64465_REG_PCCPSR 0x1200A   
-#define HD64465_REG_PCC1ISR 0x12010   
-#define HD64465_REG_PCC1GCR 0x12012   
-#define HD64465_REG_PCC1CSCR 0x12014   
-#define HD64465_REG_PCC1CSCIER 0x12016   
-#define HD64465_REG_PCC1SCR 0x12018   
-
-#define HD64465_REG_KBCSR 0x1dc00  
-#define HD64465_KBCSR_KBCIE 0x8000  
-#define HD64465_KBCSR_KBCOE 0x4000  
-#define HD64465_KBCSR_KBDOE 0x2000  
-#define HD64465_KBCSR_KBCD 0x1000  
-#define HD64465_KBCSR_KBDD 0x0800  
-#define HD64465_KBCSR_KBCS 0x0400  
-#define HD64465_KBCSR_KBDS 0x0200  
-#define HD64465_KBCSR_KBDP 0x0100  
-#define HD64465_KBCSR_KBD_MASK 0x00ff  
-#define HD64465_REG_KBISR 0x1dc04  
-#define HD64465_KBISR_KBRDF 0x0001  
-#define HD64465_REG_MSCSR 0x1dc10  
-#define HD64465_REG_MSISR 0x1dc14  
-
-#define CONFIG_HD64465_IOBASE 0xb0000000
-
-#define CONFIG_HD64465_IRQ 5
-
-#define _HD64465_IO_MASK 0xf8000000
-#define is_hd64465_addr(addr)   ((addr & _HD64465_IO_MASK) == (CONFIG_HD64465_IOBASE & _HD64465_IO_MASK))
-
-#define HD64465_IRQ_BASE OFFCHIP_IRQ_BASE
-#define HD64465_IRQ_NUM 16
-#define HD64465_IRQ_ADC (HD64465_IRQ_BASE+0)
-#define HD64465_IRQ_USB (HD64465_IRQ_BASE+1)
-#define HD64465_IRQ_SCDI (HD64465_IRQ_BASE+2)
-#define HD64465_IRQ_PARALLEL (HD64465_IRQ_BASE+3)
-
-#define HD64465_IRQ_UART (HD64465_IRQ_BASE+5)
-#define HD64465_IRQ_IRDA (HD64465_IRQ_BASE+6)
-#define HD64465_IRQ_PS2MOUSE (HD64465_IRQ_BASE+7)
-#define HD64465_IRQ_KBC (HD64465_IRQ_BASE+8)
-#define HD64465_IRQ_TIMER1 (HD64465_IRQ_BASE+9)
-#define HD64465_IRQ_TIMER0 (HD64465_IRQ_BASE+10)
-#define HD64465_IRQ_GPIO (HD64465_IRQ_BASE+11)
-#define HD64465_IRQ_AFE (HD64465_IRQ_BASE+12)
-#define HD64465_IRQ_PCMCIA1 (HD64465_IRQ_BASE+13)
-#define HD64465_IRQ_PCMCIA0 (HD64465_IRQ_BASE+14)
-#define HD64465_IRQ_PS2KBD (HD64465_IRQ_BASE+15)
-
-#define HD64465_PCC_WINDOW 0x01000000
-
-#define HD64465_PCC0_BASE 0xb8000000  
-#define HD64465_PCC0_ATTR (HD64465_PCC0_BASE)
-#define HD64465_PCC0_COMM (HD64465_PCC0_BASE+HD64465_PCC_WINDOW)
-#define HD64465_PCC0_IO (HD64465_PCC0_BASE+2*HD64465_PCC_WINDOW)
-
-#define HD64465_PCC1_BASE 0xb4000000  
-#define HD64465_PCC1_ATTR (HD64465_PCC1_BASE)
-#define HD64465_PCC1_COMM (HD64465_PCC1_BASE+HD64465_PCC_WINDOW)
-#define HD64465_PCC1_IO (HD64465_PCC1_BASE+2*HD64465_PCC_WINDOW)
-
-#define HD64465_USB_BASE (CONFIG_HD64465_IOBASE+0xb000)
-#define HD64465_USB_LEN 0x1000
-
-#define HD64465_SRAM_BASE (CONFIG_HD64465_IOBASE+0x9000)
-#define HD64465_SRAM_LEN 0x1000
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hd64465/io.h b/libc/kernel/arch-sh/asm/hd64465/io.h
deleted file mode 100644
index 9de2885..0000000
--- a/libc/kernel/arch-sh/asm/hd64465/io.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_IO_HD64465_H
-#define _ASM_SH_IO_HD64465_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/heartbeat.h b/libc/kernel/arch-sh/asm/heartbeat.h
deleted file mode 100644
index cbcfef1..0000000
--- a/libc/kernel/arch-sh/asm/heartbeat.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_HEARTBEAT_H
-#define __ASM_SH_HEARTBEAT_H
-
-#include <linux/timer.h>
-
-#define HEARTBEAT_INVERTED (1 << 0)
-
-struct heartbeat_data {
- void __iomem *base;
- unsigned char *bit_pos;
- unsigned int nr_bits;
- struct timer_list timer;
- unsigned int regsize;
- unsigned long flags;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hp6xx.h b/libc/kernel/arch-sh/asm/hp6xx.h
deleted file mode 100644
index 023ae2e..0000000
--- a/libc/kernel/arch-sh/asm/hp6xx.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_HP6XX_H
-#define __ASM_SH_HP6XX_H
-
-#define HP680_BTN_IRQ 32  
-#define HP680_TS_IRQ 35  
-#define HP680_HD64461_IRQ 36  
-
-#define DAC_LCD_BRIGHTNESS 0
-#define DAC_SPEAKER_VOLUME 1
-
-#define PGDR_OPENED 0x01
-#define PGDR_MAIN_BATTERY_OUT 0x04
-#define PGDR_PLAY_BUTTON 0x08
-#define PGDR_REWIND_BUTTON 0x10
-#define PGDR_RECORD_BUTTON 0x20
-
-#define PHDR_TS_PEN_DOWN 0x08
-
-#define PJDR_LED_BLINK 0x02
-
-#define PKDR_LED_GREEN 0x10
-
-#define SCPDR_TS_SCAN_ENABLE 0x20
-#define SCPDR_TS_SCAN_Y 0x02
-#define SCPDR_TS_SCAN_X 0x01
-
-#define SCPCR_TS_ENABLE 0x405
-#define SCPCR_TS_MASK 0xc0f
-
-#define ADC_CHANNEL_TS_Y 1
-#define ADC_CHANNEL_TS_X 2
-#define ADC_CHANNEL_BATTERY 3
-#define ADC_CHANNEL_BACKUP 4
-#define ADC_CHANNEL_CHARGE 5
-
-#define HD64461_GPADR_SPEAKER 0x01
-#define HD64461_GPADR_PCMCIA0 (0x02|0x08)
-
-#define HD64461_GPBDR_LCDOFF 0x01
-#define HD64461_GPBDR_LCD_CONTRAST_MASK 0x78
-#define HD64461_GPBDR_LED_RED 0x80
-
-#include <asm/hd64461.h>
-#include <asm/io.h>
-
-#define PJDR 0xa4000130
-#define PKDR 0xa4000132
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hugetlb.h b/libc/kernel/arch-sh/asm/hugetlb.h
deleted file mode 100644
index ab3aa5a..0000000
--- a/libc/kernel/arch-sh/asm/hugetlb.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_HUGETLB_H
-#define _ASM_SH_HUGETLB_H
-
-#include <asm/page.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/hw_irq.h b/libc/kernel/arch-sh/asm/hw_irq.h
deleted file mode 100644
index 24e7278..0000000
--- a/libc/kernel/arch-sh/asm/hw_irq.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_HW_IRQ_H
-#define __ASM_SH_HW_IRQ_H
-
-#include <linux/init.h>
-#include <asm/atomic.h>
-
-struct ipr_data {
- unsigned char irq;
- unsigned char ipr_idx;
- unsigned char shift;
- unsigned char priority;
-};
-
-struct ipr_desc {
- unsigned long *ipr_offsets;
- unsigned int nr_offsets;
- struct ipr_data *ipr_data;
- unsigned int nr_irqs;
- struct irq_chip chip;
-};
-
-typedef unsigned char intc_enum;
-
-struct intc_vect {
- intc_enum enum_id;
- unsigned short vect;
-};
-
-#define INTC_VECT(enum_id, vect) { enum_id, vect }
-#define INTC_IRQ(enum_id, irq) INTC_VECT(enum_id, irq2evt(irq))
-
-struct intc_group {
- intc_enum enum_id;
- intc_enum enum_ids[32];
-};
-
-#define INTC_GROUP(enum_id, ids...) { enum_id, { ids } }
-
-struct intc_mask_reg {
- unsigned long set_reg, clr_reg, reg_width;
- intc_enum enum_ids[32];
-};
-
-struct intc_prio_reg {
- unsigned long set_reg, clr_reg, reg_width, field_width;
- intc_enum enum_ids[16];
-};
-
-struct intc_sense_reg {
- unsigned long reg, reg_width, field_width;
- intc_enum enum_ids[16];
-};
-
-#define INTC_SMP(stride, nr)
-
-struct intc_desc {
- struct intc_vect *vectors;
- unsigned int nr_vectors;
- struct intc_group *groups;
- unsigned int nr_groups;
- struct intc_mask_reg *mask_regs;
- unsigned int nr_mask_regs;
- struct intc_prio_reg *prio_regs;
- unsigned int nr_prio_regs;
- struct intc_sense_reg *sense_regs;
- unsigned int nr_sense_regs;
- char *name;
- struct intc_mask_reg *ack_regs;
- unsigned int nr_ack_regs;
-};
-
-#define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a)
-#define DECLARE_INTC_DESC(symbol, chipname, vectors, groups,   mask_regs, prio_regs, sense_regs)  struct intc_desc symbol __initdata = {   _INTC_ARRAY(vectors), _INTC_ARRAY(groups),   _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs),   _INTC_ARRAY(sense_regs),   chipname,  }
-
-#define DECLARE_INTC_DESC_ACK(symbol, chipname, vectors, groups,   mask_regs, prio_regs, sense_regs, ack_regs)  struct intc_desc symbol __initdata = {   _INTC_ARRAY(vectors), _INTC_ARRAY(groups),   _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs),   _INTC_ARRAY(sense_regs),   chipname,   _INTC_ARRAY(ack_regs),  }
-
-enum { IRQ_MODE_IRQ, IRQ_MODE_IRQ7654, IRQ_MODE_IRQ3210,
- IRQ_MODE_IRL7654_MASK, IRQ_MODE_IRL3210_MASK,
- IRQ_MODE_IRL7654, IRQ_MODE_IRL3210 };
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/i2c-sh7760.h b/libc/kernel/arch-sh/asm/i2c-sh7760.h
deleted file mode 100644
index f510223..0000000
--- a/libc/kernel/arch-sh/asm/i2c-sh7760.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _I2C_SH7760_H_
-#define _I2C_SH7760_H_
-
-#define SH7760_I2C_DEVNAME "sh7760-i2c"
-
-#define SH7760_I2C0_MMIO 0xFE140000
-#define SH7760_I2C0_MMIOEND 0xFE14003B
-#define SH7760_I2C0_IRQ 62
-
-#define SH7760_I2C1_MMIO 0xFE150000
-#define SH7760_I2C1_MMIOEND 0xFE15003B
-#define SH7760_I2C1_IRQ 63
-
-struct sh7760_i2c_platdata {
- unsigned int speed_khz;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/ilsel.h b/libc/kernel/arch-sh/asm/ilsel.h
deleted file mode 100644
index da35878..0000000
--- a/libc/kernel/arch-sh/asm/ilsel.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ILSEL_H
-#define __ASM_SH_ILSEL_H
-
-typedef enum {
- ILSEL_NONE,
- ILSEL_LAN,
- ILSEL_USBH_I,
- ILSEL_USBH_S,
- ILSEL_USBH_V,
- ILSEL_RTC,
- ILSEL_USBP_I,
- ILSEL_USBP_S,
- ILSEL_USBP_V,
- ILSEL_KEY,
-
- ILSEL_FPGA0,
- ILSEL_FPGA1,
- ILSEL_EX1,
- ILSEL_EX2,
- ILSEL_EX3,
- ILSEL_EX4,
-
- ILSEL_FPGA2 = ILSEL_FPGA0,
- ILSEL_FPGA3 = ILSEL_FPGA1,
- ILSEL_EX5 = ILSEL_EX1,
- ILSEL_EX6 = ILSEL_EX2,
- ILSEL_EX7 = ILSEL_EX3,
- ILSEL_EX8 = ILSEL_EX4,
-} ilsel_source_t;
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/io.h b/libc/kernel/arch-sh/asm/io.h
deleted file mode 100644
index 7730c15..0000000
--- a/libc/kernel/arch-sh/asm/io.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IO_H
-#define __ASM_SH_IO_H
-
-#include <asm/cache.h>
-#include <asm/system.h>
-#include <asm/addrspace.h>
-#include <asm/machvec.h>
-#include <asm/pgtable.h>
-#include <asm-generic/iomap.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/io_generic.h b/libc/kernel/arch-sh/asm/io_generic.h
deleted file mode 100644
index f122342..0000000
--- a/libc/kernel/arch-sh/asm/io_generic.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#define IO_CONCAT(a,b) _IO_CONCAT(a,b)
-#define _IO_CONCAT(a,b) a ## _ ## b
-
-#ifndef __IO_PREFIX
-#error "Don't include this header without a valid system prefix"
-#endif
-
-#undef __IO_PREFIX
diff --git a/libc/kernel/arch-sh/asm/io_trapped.h b/libc/kernel/arch-sh/asm/io_trapped.h
deleted file mode 100644
index 9702a8e..0000000
--- a/libc/kernel/arch-sh/asm/io_trapped.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IO_TRAPPED_H
-#define __ASM_SH_IO_TRAPPED_H
-
-#include <linux/list.h>
-#include <linux/ioport.h>
-#include <asm/page.h>
-
-#define IO_TRAPPED_MAGIC 0xfeedbeef
-
-struct trapped_io {
- unsigned int magic;
- struct resource *resource;
- unsigned int num_resources;
- unsigned int minimum_bus_width;
- struct list_head list;
- void __iomem *virt_base;
-} __aligned(PAGE_SIZE);
-
-#define register_trapped_io(tiop) (-1)
-#define handle_trapped_io(tiop, address) 0
-#define __ioremap_trapped(offset, size) NULL
-#define __ioport_map_trapped(offset, size) NULL
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/ioctl.h b/libc/kernel/arch-sh/asm/ioctl.h
deleted file mode 100644
index 6e446b6..0000000
--- a/libc/kernel/arch-sh/asm/ioctl.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/ioctl.h>
diff --git a/libc/kernel/arch-sh/asm/ioctls.h b/libc/kernel/arch-sh/asm/ioctls.h
deleted file mode 100644
index 94ca854..0000000
--- a/libc/kernel/arch-sh/asm/ioctls.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IOCTLS_H
-#define __ASM_SH_IOCTLS_H
-
-#include <asm/ioctl.h>
-
-#define FIOCLEX _IO('f', 1)
-#define FIONCLEX _IO('f', 2)
-#define FIOASYNC _IOW('f', 125, int)
-#define FIONBIO _IOW('f', 126, int)
-#define FIONREAD _IOR('f', 127, int)
-#define TIOCINQ FIONREAD
-#define FIOQSIZE _IOR('f', 128, loff_t)
-
-#define TCGETS 0x5401
-#define TCSETS 0x5402
-#define TCSETSW 0x5403
-#define TCSETSF 0x5404
-
-#define TCGETA 0x80127417  
-#define TCSETA 0x40127418  
-#define TCSETAW 0x40127419  
-#define TCSETAF 0x4012741C  
-
-#define TCSBRK _IO('t', 29)
-#define TCXONC _IO('t', 30)
-#define TCFLSH _IO('t', 31)
-
-#define TIOCSWINSZ 0x40087467  
-#define TIOCGWINSZ 0x80087468  
-#define TIOCSTART _IO('t', 110)  
-#define TIOCSTOP _IO('t', 111)  
-#define TIOCOUTQ _IOR('t', 115, int)  
-
-#define TIOCSPGRP _IOW('t', 118, int)
-#define TIOCGPGRP _IOR('t', 119, int)
-
-#define TIOCEXCL _IO('T', 12)  
-#define TIOCNXCL _IO('T', 13)  
-#define TIOCSCTTY _IO('T', 14)  
-
-#define TIOCSTI _IOW('T', 18, char)  
-#define TIOCMGET _IOR('T', 21, unsigned int)  
-#define TIOCMBIS _IOW('T', 22, unsigned int)  
-#define TIOCMBIC _IOW('T', 23, unsigned int)  
-#define TIOCMSET _IOW('T', 24, unsigned int)  
-#define TIOCM_LE 0x001
-#define TIOCM_DTR 0x002
-#define TIOCM_RTS 0x004
-#define TIOCM_ST 0x008
-#define TIOCM_SR 0x010
-#define TIOCM_CTS 0x020
-#define TIOCM_CAR 0x040
-#define TIOCM_RNG 0x080
-#define TIOCM_DSR 0x100
-#define TIOCM_CD TIOCM_CAR
-#define TIOCM_RI TIOCM_RNG
-
-#define TIOCGSOFTCAR _IOR('T', 25, unsigned int)  
-#define TIOCSSOFTCAR _IOW('T', 26, unsigned int)  
-#define TIOCLINUX _IOW('T', 28, char)  
-#define TIOCCONS _IO('T', 29)  
-#define TIOCGSERIAL 0x803C541E  
-#define TIOCSSERIAL 0x403C541F  
-#define TIOCPKT _IOW('T', 32, int)  
-#define TIOCPKT_DATA 0
-#define TIOCPKT_FLUSHREAD 1
-#define TIOCPKT_FLUSHWRITE 2
-#define TIOCPKT_STOP 4
-#define TIOCPKT_START 8
-#define TIOCPKT_NOSTOP 16
-#define TIOCPKT_DOSTOP 32
-
-#define TIOCNOTTY _IO('T', 34)  
-#define TIOCSETD _IOW('T', 35, int)  
-#define TIOCGETD _IOR('T', 36, int)  
-#define TCSBRKP _IOW('T', 37, int)    
-#define TIOCSBRK _IO('T', 39)    
-#define TIOCCBRK _IO('T', 40)    
-#define TIOCGSID _IOR('T', 41, pid_t)    
-#define TCGETS2 _IOR('T', 42, struct termios2)
-#define TCSETS2 _IOW('T', 43, struct termios2)
-#define TCSETSW2 _IOW('T', 44, struct termios2)
-#define TCSETSF2 _IOW('T', 45, struct termios2)
-#define TIOCGPTN _IOR('T',0x30, unsigned int)  
-#define TIOCSPTLCK _IOW('T',0x31, int)  
-
-#define TIOCSERCONFIG _IO('T', 83)  
-#define TIOCSERGWILD _IOR('T', 84, int)  
-#define TIOCSERSWILD _IOW('T', 85, int)  
-#define TIOCGLCKTRMIOS 0x5456
-#define TIOCSLCKTRMIOS 0x5457
-#define TIOCSERGSTRUCT 0x80d85458    
-#define TIOCSERGETLSR _IOR('T', 89, unsigned int)    
-
-#define TIOCSER_TEMT 0x01  
-#define TIOCSERGETMULTI 0x80A8545A    
-#define TIOCSERSETMULTI 0x40A8545B    
-
-#define TIOCMIWAIT _IO('T', 92)    
-#define TIOCGICOUNT 0x545D  
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/ipcbuf.h b/libc/kernel/arch-sh/asm/ipcbuf.h
deleted file mode 100644
index 7ebc070..0000000
--- a/libc/kernel/arch-sh/asm/ipcbuf.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IPCBUF_H__
-#define __ASM_SH_IPCBUF_H__
-
-struct ipc64_perm
-{
- __kernel_key_t key;
- __kernel_uid32_t uid;
- __kernel_gid32_t gid;
- __kernel_uid32_t cuid;
- __kernel_gid32_t cgid;
- __kernel_mode_t mode;
- unsigned short __pad1;
- unsigned short seq;
- unsigned short __pad2;
- unsigned long __unused1;
- unsigned long __unused2;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/irq.h b/libc/kernel/arch-sh/asm/irq.h
deleted file mode 100644
index 128135a..0000000
--- a/libc/kernel/arch-sh/asm/irq.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IRQ_H
-#define __ASM_SH_IRQ_H
-
-#include <asm/machvec.h>
-
-#define NR_IRQS 256
-
-#define evt2irq(evt) (((evt) >> 5) - 16)
-#define irq2evt(irq) (((irq) + 16) << 5)
-
-#define irq_canonicalize(irq) (irq)
-#define irq_demux(irq) sh_mv.mv_irq_demux(irq)
-#define irq_ctx_init(cpu) do { } while (0)
-#define irq_ctx_exit(cpu) do { } while (0)
-#endif
diff --git a/libc/kernel/arch-sh/asm/irq_regs.h b/libc/kernel/arch-sh/asm/irq_regs.h
deleted file mode 100644
index 1e8a2b6..0000000
--- a/libc/kernel/arch-sh/asm/irq_regs.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/irq_regs.h>
diff --git a/libc/kernel/arch-sh/asm/irqflags.h b/libc/kernel/arch-sh/asm/irqflags.h
deleted file mode 100644
index fe442e4..0000000
--- a/libc/kernel/arch-sh/asm/irqflags.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IRQFLAGS_H
-#define __ASM_SH_IRQFLAGS_H
-
-#include "irqflags_32.h"
-
-#define raw_local_save_flags(flags)   do { (flags) = __raw_local_save_flags(); } while (0)
-
-#define raw_local_irq_save(flags)   do { (flags) = __raw_local_irq_save(); } while (0)
-#endif
diff --git a/libc/kernel/arch-sh/asm/irqflags_32.h b/libc/kernel/arch-sh/asm/irqflags_32.h
deleted file mode 100644
index 711b0d6..0000000
--- a/libc/kernel/arch-sh/asm/irqflags_32.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IRQFLAGS_32_H
-#define __ASM_SH_IRQFLAGS_32_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/irqflags_64.h b/libc/kernel/arch-sh/asm/irqflags_64.h
deleted file mode 100644
index dbbdce7..0000000
--- a/libc/kernel/arch-sh/asm/irqflags_64.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_IRQFLAGS_64_H
-#define __ASM_SH_IRQFLAGS_64_H
-
-#include <cpu/registers.h>
-
-#define SR_MASK_LL 0x00000000000000f0LL
-#define SR_BL_LL 0x0000000010000000LL
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/kdebug.h b/libc/kernel/arch-sh/asm/kdebug.h
deleted file mode 100644
index fb8dbc0..0000000
--- a/libc/kernel/arch-sh/asm/kdebug.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_KDEBUG_H
-#define __ASM_SH_KDEBUG_H
-
-enum die_val {
- DIE_TRAP,
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/kexec.h b/libc/kernel/arch-sh/asm/kexec.h
deleted file mode 100644
index f5a865b..0000000
--- a/libc/kernel/arch-sh/asm/kexec.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_KEXEC_H
-#define __ASM_SH_KEXEC_H
-
-#include <asm/ptrace.h>
-#include <asm/string.h>
-
-#define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
-
-#define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL)
-
-#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
-
-#define KEXEC_CONTROL_PAGE_SIZE 4096
-
-#define KEXEC_ARCH KEXEC_ARCH_SH
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/kgdb.h b/libc/kernel/arch-sh/asm/kgdb.h
deleted file mode 100644
index 386b380..0000000
--- a/libc/kernel/arch-sh/asm/kgdb.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __KGDB_H
-#define __KGDB_H
-
-#include <asm/ptrace.h>
-
-struct kgdb_regs {
- unsigned long regs[16];
- unsigned long pc;
- unsigned long pr;
- unsigned long sr;
- unsigned long gbr;
- unsigned long mach;
- unsigned long macl;
- unsigned long vbr;
-};
-
-typedef void (kgdb_debug_hook_t)(struct pt_regs *regs);
-typedef void (kgdb_bus_error_hook_t)(void);
-
-struct console;
-
-#define _JBLEN 9
-typedef int jmp_buf[_JBLEN];
-
-#define breakpoint() __asm__ __volatile__("trapa   #0x3c")
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/kmap_types.h b/libc/kernel/arch-sh/asm/kmap_types.h
deleted file mode 100644
index ea30766..0000000
--- a/libc/kernel/arch-sh/asm/kmap_types.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __SH_KMAP_TYPES_H
-#define __SH_KMAP_TYPES_H
-
-#define D(n)
-
-enum km_type {
-D(0) KM_BOUNCE_READ,
-D(1) KM_SKB_SUNRPC_DATA,
-D(2) KM_SKB_DATA_SOFTIRQ,
-D(3) KM_USER0,
-D(4) KM_USER1,
-D(5) KM_BIO_SRC_IRQ,
-D(6) KM_BIO_DST_IRQ,
-D(7) KM_PTE0,
-D(8) KM_PTE1,
-D(9) KM_IRQ0,
-D(10) KM_IRQ1,
-D(11) KM_SOFTIRQ0,
-D(12) KM_SOFTIRQ1,
-D(13) KM_TYPE_NR
-};
-
-#undef D
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/lboxre2.h b/libc/kernel/arch-sh/asm/lboxre2.h
deleted file mode 100644
index 1791361..0000000
--- a/libc/kernel/arch-sh/asm/lboxre2.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_LBOXRE2_H
-#define __ASM_SH_LBOXRE2_H
-
-#define IRQ_CF1 9  
-#define IRQ_CF0 10  
-#define IRQ_INTD 11  
-#define IRQ_ETH1 12  
-#define IRQ_ETH0 13  
-#define IRQ_INTA 14  
-
-#define __IO_PREFIX lboxre2
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/linkage.h b/libc/kernel/arch-sh/asm/linkage.h
deleted file mode 100644
index 1921dd3..0000000
--- a/libc/kernel/arch-sh/asm/linkage.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_LINKAGE_H
-#define __ASM_LINKAGE_H
-
-#define __ALIGN .balign 4
-#define __ALIGN_STR ".balign 4"
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/local.h b/libc/kernel/arch-sh/asm/local.h
deleted file mode 100644
index 4a39637..0000000
--- a/libc/kernel/arch-sh/asm/local.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_LOCAL_H
-#define __ASM_SH_LOCAL_H
-
-#include <asm-generic/local.h>
-
-#endif
-
diff --git a/libc/kernel/arch-sh/asm/machvec.h b/libc/kernel/arch-sh/asm/machvec.h
deleted file mode 100644
index 5b48918..0000000
--- a/libc/kernel/arch-sh/asm/machvec.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_MACHVEC_H
-#define _ASM_SH_MACHVEC_H
-
-#include <linux/types.h>
-#include <linux/time.h>
-#include <asm/machtypes.h>
-
-struct device;
-
-struct sh_machine_vector {
- void (*mv_setup)(char **cmdline_p);
- const char *mv_name;
- int mv_nr_irqs;
-
- u8 (*mv_inb)(unsigned long);
- u16 (*mv_inw)(unsigned long);
- u32 (*mv_inl)(unsigned long);
- void (*mv_outb)(u8, unsigned long);
- void (*mv_outw)(u16, unsigned long);
- void (*mv_outl)(u32, unsigned long);
-
- u8 (*mv_inb_p)(unsigned long);
- u16 (*mv_inw_p)(unsigned long);
- u32 (*mv_inl_p)(unsigned long);
- void (*mv_outb_p)(u8, unsigned long);
- void (*mv_outw_p)(u16, unsigned long);
- void (*mv_outl_p)(u32, unsigned long);
-
- void (*mv_insb)(unsigned long, void *dst, unsigned long count);
- void (*mv_insw)(unsigned long, void *dst, unsigned long count);
- void (*mv_insl)(unsigned long, void *dst, unsigned long count);
- void (*mv_outsb)(unsigned long, const void *src, unsigned long count);
- void (*mv_outsw)(unsigned long, const void *src, unsigned long count);
- void (*mv_outsl)(unsigned long, const void *src, unsigned long count);
-
- u8 (*mv_readb)(void __iomem *);
- u16 (*mv_readw)(void __iomem *);
- u32 (*mv_readl)(void __iomem *);
- void (*mv_writeb)(u8, void __iomem *);
- void (*mv_writew)(u16, void __iomem *);
- void (*mv_writel)(u32, void __iomem *);
-
- int (*mv_irq_demux)(int irq);
-
- void (*mv_init_irq)(void);
- void (*mv_init_pci)(void);
-
- void (*mv_heartbeat)(void);
-
- void __iomem *(*mv_ioport_map)(unsigned long port, unsigned int size);
- void (*mv_ioport_unmap)(void __iomem *);
-};
-
-#define get_system_type() sh_mv.mv_name
-
-#define __initmv   __used __section(.machvec.init)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/magicpanelr2.h b/libc/kernel/arch-sh/asm/magicpanelr2.h
deleted file mode 100644
index e0fd4a2..0000000
--- a/libc/kernel/arch-sh/asm/magicpanelr2.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MAGICPANELR2_H
-#define __ASM_SH_MAGICPANELR2_H
-
-#include <asm/gpio.h>
-
-#define __IO_PREFIX mpr2
-#include <asm/io_generic.h>
-
-#define SETBITS_OUTB(mask, reg) ctrl_outb(ctrl_inb(reg) | mask, reg)
-#define SETBITS_OUTW(mask, reg) ctrl_outw(ctrl_inw(reg) | mask, reg)
-#define SETBITS_OUTL(mask, reg) ctrl_outl(ctrl_inl(reg) | mask, reg)
-#define CLRBITS_OUTB(mask, reg) ctrl_outb(ctrl_inb(reg) & ~mask, reg)
-#define CLRBITS_OUTW(mask, reg) ctrl_outw(ctrl_inw(reg) & ~mask, reg)
-#define CLRBITS_OUTL(mask, reg) ctrl_outl(ctrl_inl(reg) & ~mask, reg)
-
-#define PA_LED PORT_PADR  
-
-#define CMNCR 0xA4FD0000UL
-#define CS0BCR 0xA4FD0004UL
-#define CS2BCR 0xA4FD0008UL
-#define CS3BCR 0xA4FD000CUL
-#define CS4BCR 0xA4FD0010UL
-#define CS5ABCR 0xA4FD0014UL
-#define CS5BBCR 0xA4FD0018UL
-#define CS6ABCR 0xA4FD001CUL
-#define CS6BBCR 0xA4FD0020UL
-#define CS0WCR 0xA4FD0024UL
-#define CS2WCR 0xA4FD0028UL
-#define CS3WCR 0xA4FD002CUL
-#define CS4WCR 0xA4FD0030UL
-#define CS5AWCR 0xA4FD0034UL
-#define CS5BWCR 0xA4FD0038UL
-#define CS6AWCR 0xA4FD003CUL
-#define CS6BWCR 0xA4FD0040UL
-
-#define PORT_UTRCTL 0xA405012CUL
-#define PORT_UCLKCR_W 0xA40A0008UL
-
-#define INTC_ICR0 0xA414FEE0UL
-#define INTC_ICR1 0xA4140010UL
-#define INTC_ICR2 0xA4140012UL
-
-#define MPR2_MTD_BOOTLOADER_SIZE 0x00060000UL
-#define MPR2_MTD_KERNEL_SIZE 0x00200000UL
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mc146818rtc.h b/libc/kernel/arch-sh/asm/mc146818rtc.h
deleted file mode 100644
index fe5300a..0000000
--- a/libc/kernel/arch-sh/asm/mc146818rtc.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_MC146818RTC_H
-#define _ASM_MC146818RTC_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/microdev.h b/libc/kernel/arch-sh/asm/microdev.h
deleted file mode 100644
index cff5a06..0000000
--- a/libc/kernel/arch-sh/asm/microdev.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MICRODEV_H
-#define __ASM_SH_MICRODEV_H
-
-#define MICRODEV_FPGA_INTC_BASE 0xa6110000ul  
-#define MICRODEV_FPGA_INTENB_REG (MICRODEV_FPGA_INTC_BASE+0ul)  
-#define MICRODEV_FPGA_INTDSB_REG (MICRODEV_FPGA_INTC_BASE+8ul)  
-#define MICRODEV_FPGA_INTC_MASK(n) (1ul<<(n))  
-#define MICRODEV_FPGA_INTPRI_REG(n) (MICRODEV_FPGA_INTC_BASE+0x10+((n)/8)*8) 
-#define MICRODEV_FPGA_INTPRI_LEVEL(n,x) ((x)<<(((n)%8)*4))  
-#define MICRODEV_FPGA_INTPRI_MASK(n) (MICRODEV_FPGA_INTPRI_LEVEL((n),0xful))  
-#define MICRODEV_FPGA_INTSRC_REG (MICRODEV_FPGA_INTC_BASE+0x30ul)  
-#define MICRODEV_FPGA_INTREQ_REG (MICRODEV_FPGA_INTC_BASE+0x38ul)  
-
-#define MICRODEV_LINUX_IRQ_KEYBOARD 1  
-#define MICRODEV_LINUX_IRQ_SERIAL1 2  
-#define MICRODEV_LINUX_IRQ_ETHERNET 3  
-#define MICRODEV_LINUX_IRQ_SERIAL2 4  
-#define MICRODEV_LINUX_IRQ_USB_HC 7  
-#define MICRODEV_LINUX_IRQ_MOUSE 12  
-#define MICRODEV_LINUX_IRQ_IDE2 13  
-#define MICRODEV_LINUX_IRQ_IDE1 14  
-
-#define MICRODEV_FPGA_IRQ_KEYBOARD 1  
-#define MICRODEV_FPGA_IRQ_SERIAL1 3  
-#define MICRODEV_FPGA_IRQ_SERIAL2 4  
-#define MICRODEV_FPGA_IRQ_MOUSE 12  
-#define MICRODEV_FPGA_IRQ_IDE1 14  
-#define MICRODEV_FPGA_IRQ_IDE2 15  
-#define MICRODEV_FPGA_IRQ_USB_HC 16  
-#define MICRODEV_FPGA_IRQ_ETHERNET 18  
-
-#define MICRODEV_IRQ_PCI_INTA 8
-#define MICRODEV_IRQ_PCI_INTB 9
-#define MICRODEV_IRQ_PCI_INTC 10
-#define MICRODEV_IRQ_PCI_INTD 11
-
-#define __IO_PREFIX microdev
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/migor.h b/libc/kernel/arch-sh/asm/migor.h
deleted file mode 100644
index be8ffb3..0000000
--- a/libc/kernel/arch-sh/asm/migor.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MIGOR_H
-#define __ASM_SH_MIGOR_H
-
-#include <asm/addrspace.h>
-
-#define PORT_PACR 0xa4050100
-#define PORT_PDCR 0xa4050106
-#define PORT_PECR 0xa4050108
-#define PORT_PHCR 0xa405010e
-#define PORT_PJCR 0xa4050110
-#define PORT_PKCR 0xa4050112
-#define PORT_PLCR 0xa4050114
-#define PORT_PMCR 0xa4050116
-#define PORT_PRCR 0xa405011c
-#define PORT_PTCR 0xa4050140
-#define PORT_PUCR 0xa4050142
-#define PORT_PVCR 0xa4050144
-#define PORT_PWCR 0xa4050146
-#define PORT_PXCR 0xa4050148
-#define PORT_PYCR 0xa405014a
-#define PORT_PZCR 0xa405014c
-#define PORT_PADR 0xa4050120
-#define PORT_PHDR 0xa405012e
-#define PORT_PTDR 0xa4050160
-#define PORT_PWDR 0xa4050166
-
-#define PORT_HIZCRA 0xa4050158
-#define PORT_HIZCRC 0xa405015c
-
-#define PORT_MSELCRB 0xa4050182
-
-#define PORT_PSELA 0xa405014e
-#define PORT_PSELB 0xa4050150
-#define PORT_PSELC 0xa4050152
-#define PORT_PSELD 0xa4050154
-#define PORT_PSELE 0xa4050156
-
-#define PORT_HIZCRA 0xa4050158
-#define PORT_HIZCRB 0xa405015a
-#define PORT_HIZCRC 0xa405015c
-
-#define BSC_CS6ABCR 0xfec1001c
-
-#include <asm/sh_mobile_lcdc.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mman.h b/libc/kernel/arch-sh/asm/mman.h
deleted file mode 100644
index bf96efc..0000000
--- a/libc/kernel/arch-sh/asm/mman.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MMAN_H
-#define __ASM_SH_MMAN_H
-
-#include <asm-generic/mman.h>
-
-#define MAP_GROWSDOWN 0x0100  
-#define MAP_DENYWRITE 0x0800  
-#define MAP_EXECUTABLE 0x1000  
-#define MAP_LOCKED 0x2000  
-#define MAP_NORESERVE 0x4000  
-#define MAP_POPULATE 0x8000  
-#define MAP_NONBLOCK 0x10000  
-
-#define MCL_CURRENT 1  
-#define MCL_FUTURE 2  
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mmu.h b/libc/kernel/arch-sh/asm/mmu.h
deleted file mode 100644
index cf54cb8..0000000
--- a/libc/kernel/arch-sh/asm/mmu.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MMU_H
-#define __MMU_H
-
-typedef unsigned long mm_context_id_t[NR_CPUS];
-
-typedef struct {
- mm_context_id_t id;
- void *vdso;
-} mm_context_t;
-
-#define PMB_PASCR 0xff000070
-#define PMB_IRMCR 0xff000078
-
-#define PMB_ADDR 0xf6100000
-#define PMB_DATA 0xf7100000
-#define PMB_ENTRY_MAX 16
-#define PMB_E_MASK 0x0000000f
-#define PMB_E_SHIFT 8
-
-#define PMB_SZ_16M 0x00000000
-#define PMB_SZ_64M 0x00000010
-#define PMB_SZ_128M 0x00000080
-#define PMB_SZ_512M 0x00000090
-#define PMB_SZ_MASK PMB_SZ_512M
-#define PMB_C 0x00000008
-#define PMB_WT 0x00000001
-#define PMB_UB 0x00000200
-#define PMB_V 0x00000100
-
-#define PMB_NO_ENTRY (-1)
-
-struct pmb_entry;
-
-struct pmb_entry {
- unsigned long vpn;
- unsigned long ppn;
- unsigned long flags;
-
- int entry;
-
- struct pmb_entry *next;
-
- struct pmb_entry *link;
-};
-
-struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
- unsigned long flags);
-
-#endif
-
diff --git a/libc/kernel/arch-sh/asm/mmu_context.h b/libc/kernel/arch-sh/asm/mmu_context.h
deleted file mode 100644
index cbf07ef..0000000
--- a/libc/kernel/arch-sh/asm/mmu_context.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MMU_CONTEXT_H
-#define __ASM_SH_MMU_CONTEXT_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mmu_context_32.h b/libc/kernel/arch-sh/asm/mmu_context_32.h
deleted file mode 100644
index dca7e6b..0000000
--- a/libc/kernel/arch-sh/asm/mmu_context_32.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MMU_CONTEXT_32_H
-#define __ASM_SH_MMU_CONTEXT_32_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mmu_context_64.h b/libc/kernel/arch-sh/asm/mmu_context_64.h
deleted file mode 100644
index d7744be..0000000
--- a/libc/kernel/arch-sh/asm/mmu_context_64.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MMU_CONTEXT_64_H
-#define __ASM_SH_MMU_CONTEXT_64_H
-
-#include <cpu/registers.h>
-#include <asm/cacheflush.h>
-
-#define SR_ASID_MASK 0xffffffffff00ffffULL
-#define SR_ASID_SHIFT 16
-
-#define set_TTB(pgd) (mmu_pdtp_cache = (pgd))
-#define get_TTB() (mmu_pdtp_cache)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mmzone.h b/libc/kernel/arch-sh/asm/mmzone.h
deleted file mode 100644
index 9bddda4..0000000
--- a/libc/kernel/arch-sh/asm/mmzone.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MMZONE_H
-#define __ASM_SH_MMZONE_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/module.h b/libc/kernel/arch-sh/asm/module.h
deleted file mode 100644
index 76bb90a..0000000
--- a/libc/kernel/arch-sh/asm/module.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_MODULE_H
-#define _ASM_SH_MODULE_H
-
-struct mod_arch_specific {
-
-};
-
-#define Elf_Shdr Elf32_Shdr
-#define Elf_Sym Elf32_Sym
-#define Elf_Ehdr Elf32_Ehdr
-
-#define MODULE_PROC_FAMILY "SH4LE "
-
-#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/msgbuf.h b/libc/kernel/arch-sh/asm/msgbuf.h
deleted file mode 100644
index ec64905..0000000
--- a/libc/kernel/arch-sh/asm/msgbuf.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MSGBUF_H
-#define __ASM_SH_MSGBUF_H
-
-struct msqid64_ds {
- struct ipc64_perm msg_perm;
- __kernel_time_t msg_stime;
- unsigned long __unused1;
- __kernel_time_t msg_rtime;
- unsigned long __unused2;
- __kernel_time_t msg_ctime;
- unsigned long __unused3;
- unsigned long msg_cbytes;
- unsigned long msg_qnum;
- unsigned long msg_qbytes;
- __kernel_pid_t msg_lspid;
- __kernel_pid_t msg_lrpid;
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/mutex.h b/libc/kernel/arch-sh/asm/mutex.h
deleted file mode 100644
index 79054b2..0000000
--- a/libc/kernel/arch-sh/asm/mutex.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/mutex-dec.h>
diff --git a/libc/kernel/arch-sh/asm/page.h b/libc/kernel/arch-sh/asm/page.h
deleted file mode 100644
index f187dd7..0000000
--- a/libc/kernel/arch-sh/asm/page.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PAGE_H
-#define __ASM_SH_PAGE_H
-
-#include <linux/const.h>
-
-#define PAGE_SHIFT 12
-
-#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
-#define PAGE_MASK (~(PAGE_SIZE-1))
-#define PTE_MASK PAGE_MASK
-
-#ifndef __ASSEMBLY__
-
-struct page;
-struct vm_area_struct;
-
-#define __HAVE_ARCH_COPY_USER_HIGHPAGE
-
-typedef struct { unsigned long pte_low; } pte_t;
-typedef struct { unsigned long pgprot; } pgprot_t;
-typedef struct { unsigned long pgd; } pgd_t;
-#define pte_val(x) ((x).pte_low)
-#define __pte(x) ((pte_t) { (x) } )
-
-#define pgd_val(x) ((x).pgd)
-#define pgprot_val(x) ((x).pgprot)
-
-#define __pgd(x) ((pgd_t) { (x) } )
-#define __pgprot(x) ((pgprot_t) { (x) } )
-
-typedef struct page *pgtable_t;
-
-#endif
-
-#define __MEMORY_START CONFIG_MEMORY_START
-#define __MEMORY_SIZE CONFIG_MEMORY_SIZE
-
-#define PAGE_OFFSET CONFIG_PAGE_OFFSET
-
-#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
-#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
-
-#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
-#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
-
-#define PFN_START (__MEMORY_START >> PAGE_SHIFT)
-#define ARCH_PFN_OFFSET (PFN_START)
-#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
-#define pfn_valid(pfn) ((pfn) >= min_low_pfn && (pfn) < max_low_pfn)
-#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
-
-#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC |   VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-
-#include <asm-generic/memory_model.h>
-
-#define __HAVE_ARCH_GATE_AREA
-
-#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/param.h b/libc/kernel/arch-sh/asm/param.h
deleted file mode 100644
index 4a59cd8..0000000
--- a/libc/kernel/arch-sh/asm/param.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PARAM_H
-#define __ASM_SH_PARAM_H
-
-#ifndef HZ
-#define HZ 100
-#endif
-
-#define EXEC_PAGESIZE 4096
-
-#ifndef NOGROUP
-#define NOGROUP (-1)
-#endif
-
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/parport.h b/libc/kernel/arch-sh/asm/parport.h
deleted file mode 100644
index 8375b51..0000000
--- a/libc/kernel/arch-sh/asm/parport.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PARPORT_H
-#define __ASM_SH_PARPORT_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/pci.h b/libc/kernel/arch-sh/asm/pci.h
deleted file mode 100644
index 1fafad9..0000000
--- a/libc/kernel/arch-sh/asm/pci.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PCI_H
-#define __ASM_SH_PCI_H
-
-#include <asm-generic/pci.h>
-
-#include <asm-generic/pci-dma-compat.h>
-
-#endif
-
diff --git a/libc/kernel/arch-sh/asm/percpu.h b/libc/kernel/arch-sh/asm/percpu.h
deleted file mode 100644
index 1b3a8cb..0000000
--- a/libc/kernel/arch-sh/asm/percpu.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ARCH_SH_PERCPU
-#define __ARCH_SH_PERCPU
-
-#include <asm-generic/percpu.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/pgalloc.h b/libc/kernel/arch-sh/asm/pgalloc.h
deleted file mode 100644
index 6c15ea5..0000000
--- a/libc/kernel/arch-sh/asm/pgalloc.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PGALLOC_H
-#define __ASM_SH_PGALLOC_H
-
-#include <linux/quicklist.h>
-#include <asm/page.h>
-
-#define QUICK_PGD 0  
-#define QUICK_PT 1  
-
-#define pmd_pgtable(pmd) pmd_page(pmd)
-#define __pte_free_tlb(tlb,pte)  do {   pgtable_page_dtor(pte);   tlb_remove_page((tlb), (pte));  } while (0)
-#define pmd_free(mm, x) do { } while (0)
-#define __pmd_free_tlb(tlb,x) do { } while (0)
-#endif
diff --git a/libc/kernel/arch-sh/asm/pgtable.h b/libc/kernel/arch-sh/asm/pgtable.h
deleted file mode 100644
index 3c8ece1..0000000
--- a/libc/kernel/arch-sh/asm/pgtable.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PGTABLE_H
-#define __ASM_SH_PGTABLE_H
-
-#include <asm-generic/pgtable-nopmd.h>
-#include <asm/page.h>
-
-#ifndef __ASSEMBLY__
-#include <asm/addrspace.h>
-#include <asm/fixmap.h>
-
-#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
-
-#endif
-
-#define NEFF 32
-#define NEFF_SIGN (1LL << (NEFF - 1))
-#define NEFF_MASK (-1LL << NEFF)
-
-#define NPHYS 29
-
-#define NPHYS_SIGN (1LL << (NPHYS - 1))
-#define NPHYS_MASK (-1LL << NPHYS)
-
-#define PTE_MAGNITUDE 2  
-#define PTE_SHIFT PAGE_SHIFT
-#define PTE_BITS (PTE_SHIFT - PTE_MAGNITUDE)
-
-#define PGDIR_SHIFT (PTE_SHIFT + PTE_BITS)
-#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
-#define PGDIR_MASK (~(PGDIR_SIZE-1))
-
-#define PTRS_PER_PTE (PAGE_SIZE / (1 << PTE_MAGNITUDE))
-#define PTRS_PER_PGD (PAGE_SIZE / sizeof(pgd_t))
-
-#define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE)
-#define FIRST_USER_ADDRESS 0
-
-#define PHYS_ADDR_MASK 0x1fffffff
-
-#define PTE_PHYS_MASK (PHYS_ADDR_MASK & PAGE_MASK)
-
-#define VMALLOC_START (P3SEG)
-#define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
-
-#include <asm/pgtable_32.h>
-
-#define __P000 PAGE_NONE
-#define __P001 PAGE_READONLY
-#define __P010 PAGE_COPY
-#define __P011 PAGE_COPY
-#define __P100 PAGE_EXECREAD
-#define __P101 PAGE_EXECREAD
-#define __P110 PAGE_COPY
-#define __P111 PAGE_COPY
-
-#define __S000 PAGE_NONE
-#define __S001 PAGE_READONLY
-#define __S010 PAGE_WRITEONLY
-#define __S011 PAGE_SHARED
-#define __S100 PAGE_EXECREAD
-#define __S101 PAGE_EXECREAD
-#define __S110 PAGE_RWX
-#define __S111 PAGE_RWX
-
-typedef pte_t *pte_addr_t;
-
-#define kern_addr_valid(addr) (1)
-
-#define io_remap_pfn_range(vma, vaddr, pfn, size, prot)   remap_pfn_range(vma, vaddr, pfn, size, prot)
-
-#define pte_pfn(x) ((unsigned long)(((x).pte_low >> PAGE_SHIFT)))
-
-#define pgtable_cache_init() do { } while (0)
-
-struct mm_struct;
-#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
-
-struct vm_area_struct;
-
-#include <asm-generic/pgtable.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/pgtable_32.h b/libc/kernel/arch-sh/asm/pgtable_32.h
deleted file mode 100644
index 6ef21f1..0000000
--- a/libc/kernel/arch-sh/asm/pgtable_32.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PGTABLE_32_H
-#define __ASM_SH_PGTABLE_32_H
-
-#define _PAGE_WT 0x001  
-#define _PAGE_HW_SHARED 0x002  
-#define _PAGE_DIRTY 0x004  
-#define _PAGE_CACHABLE 0x008  
-#define _PAGE_SZ0 0x010  
-#define _PAGE_RW 0x020  
-#define _PAGE_USER 0x040  
-#define _PAGE_SZ1 0x080  
-#define _PAGE_PRESENT 0x100  
-#define _PAGE_PROTNONE 0x200  
-#define _PAGE_ACCESSED 0x400  
-#define _PAGE_FILE _PAGE_WT  
-
-#define _PAGE_SZ_MASK (_PAGE_SZ0 | _PAGE_SZ1)
-#define _PAGE_PR_MASK (_PAGE_RW | _PAGE_USER)
-
-#define _PAGE_EXT_ESZ0 0x0010  
-#define _PAGE_EXT_ESZ1 0x0020  
-#define _PAGE_EXT_ESZ2 0x0040  
-#define _PAGE_EXT_ESZ3 0x0080  
-
-#define _PAGE_EXT_USER_EXEC 0x0100  
-#define _PAGE_EXT_USER_WRITE 0x0200  
-#define _PAGE_EXT_USER_READ 0x0400  
-
-#define _PAGE_EXT_KERN_EXEC 0x0800  
-#define _PAGE_EXT_KERN_WRITE 0x1000  
-#define _PAGE_EXT_KERN_READ 0x2000  
-
-#define _PAGE_EXT(x) ((unsigned long long)(x) << 32)
-
-#define _PAGE_PCC_AREA5 0x00000000  
-#define _PAGE_PCC_AREA6 0x80000000  
-
-#define _PAGE_PCC_IODYN 0x00000001  
-#define _PAGE_PCC_IO8 0x20000000  
-#define _PAGE_PCC_IO16 0x20000001  
-#define _PAGE_PCC_COM8 0x40000000  
-#define _PAGE_PCC_COM16 0x40000001  
-#define _PAGE_PCC_ATR8 0x60000000  
-#define _PAGE_PCC_ATR16 0x60000001  
-
-#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED | _PAGE_FILE)
-
-#define _PAGE_FLAGS_HARDWARE_MASK (PHYS_ADDR_MASK & ~(_PAGE_CLEAR_FLAGS))
-
-#define _PAGE_FLAGS_HARD _PAGE_SZ0
-
-#ifndef _PAGE_SZHUGE
-#define _PAGE_SZHUGE (_PAGE_FLAGS_HARD)
-#endif
-
-#define _PAGE_CHG_MASK   (PTE_MASK | _PAGE_ACCESSED | _PAGE_CACHABLE | _PAGE_DIRTY)
-
-#ifndef __ASSEMBLY__
-
-#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_CACHABLE |   _PAGE_ACCESSED | _PAGE_FLAGS_HARD)
-
-#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER |   _PAGE_CACHABLE | _PAGE_ACCESSED |   _PAGE_FLAGS_HARD)
-
-#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_CACHABLE |   _PAGE_ACCESSED | _PAGE_FLAGS_HARD)
-
-#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_CACHABLE |   _PAGE_ACCESSED | _PAGE_FLAGS_HARD)
-
-#define PAGE_EXECREAD PAGE_READONLY
-#define PAGE_RWX PAGE_SHARED
-#define PAGE_WRITEONLY PAGE_SHARED
-
-#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_CACHABLE |   _PAGE_DIRTY | _PAGE_ACCESSED |   _PAGE_HW_SHARED | _PAGE_FLAGS_HARD)
-
-#define PAGE_KERNEL_NOCACHE   __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY |   _PAGE_ACCESSED | _PAGE_HW_SHARED |   _PAGE_FLAGS_HARD)
-
-#define PAGE_KERNEL_RO __pgprot(_PAGE_PRESENT | _PAGE_CACHABLE |   _PAGE_DIRTY | _PAGE_ACCESSED |   _PAGE_HW_SHARED | _PAGE_FLAGS_HARD)
-
-#define PAGE_KERNEL_PCC(slot, type)   __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY |   _PAGE_ACCESSED | _PAGE_FLAGS_HARD |   (slot ? _PAGE_PCC_AREA5 : _PAGE_PCC_AREA6) |   (type))
-
-#endif
-
-#ifndef __ASSEMBLY__
-
-#define set_pte(pteptr, pteval) (*(pteptr) = pteval)
-
-#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
-
-#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
-
-#define pfn_pte(pfn, prot)   __pte(((unsigned long long)(pfn) << PAGE_SHIFT) | pgprot_val(prot))
-#define pfn_pmd(pfn, prot)   __pmd(((unsigned long long)(pfn) << PAGE_SHIFT) | pgprot_val(prot))
-
-#define pte_none(x) (!pte_val(x))
-#define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
-
-#define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
-
-#define pmd_none(x) (!pmd_val(x))
-#define pmd_present(x) (pmd_val(x))
-#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
-#define pmd_bad(x) (pmd_val(x) & ~PAGE_MASK)
-
-#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
-#define pte_page(x) pfn_to_page(pte_pfn(x))
-
-#define pte_not_present(pte) (!((pte).pte_low & _PAGE_PRESENT))
-#define pte_dirty(pte) ((pte).pte_low & _PAGE_DIRTY)
-#define pte_young(pte) ((pte).pte_low & _PAGE_ACCESSED)
-#define pte_file(pte) ((pte).pte_low & _PAGE_FILE)
-#define pte_special(pte) (0)
-
-#define pte_write(pte) ((pte).pte_low & _PAGE_RW)
-
-#define PTE_BIT_FUNC(h,fn,op)  static inline pte_t pte_##fn(pte_t pte) { pte.pte_##h op; return pte; }
-
-#define pgprot_writecombine(prot)   __pgprot(pgprot_val(prot) & ~_PAGE_CACHABLE)
-#define pgprot_noncached pgprot_writecombine
-#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
-#define pmd_page_vaddr(pmd) ((unsigned long)pmd_val(pmd))
-#define pmd_page(pmd) (virt_to_page(pmd_val(pmd)))
-#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
-#define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address))
-#define pgd_offset_k(address) pgd_offset(&init_mm, address)
-#define pte_index(address) ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
-#define pte_offset_kernel(dir, address)   ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address))
-#define pte_offset_map(dir, address) pte_offset_kernel(dir, address)
-#define pte_offset_map_nested(dir, address) pte_offset_kernel(dir, address)
-#define pte_unmap(pte) do { } while (0)
-#define pte_unmap_nested(pte) do { } while (0)
-#define pte_ERROR(e)   printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
-#define pgd_ERROR(e)   printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
-#define __swp_type(x) ((x).val & 0xff)
-#define __swp_offset(x) ((x).val >> 10)
-#define __swp_entry(type, offset) ((swp_entry_t){(type) | (offset) <<10})
-#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 1 })
-#define __swp_entry_to_pte(x) ((pte_t) { (x).val << 1 })
-#define PTE_FILE_MAX_BITS 29
-#define pte_to_pgoff(pte) (pte_val(pte) >> 1)
-#define pgoff_to_pte(off) ((pte_t) { ((off) << 1) | _PAGE_FILE })
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/pgtable_64.h b/libc/kernel/arch-sh/asm/pgtable_64.h
deleted file mode 100644
index b5d60bb..0000000
--- a/libc/kernel/arch-sh/asm/pgtable_64.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PGTABLE_64_H
-#define __ASM_SH_PGTABLE_64_H
-
-#include <linux/threads.h>
-#include <asm/processor.h>
-#include <asm/page.h>
-
-#define pte_ERROR(e)   printk("%s:%d: bad pte %016Lx.\n", __FILE__, __LINE__, pte_val(e))
-#define pgd_ERROR(e)   printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
-
-#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
-
-#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
-#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
-#define __pgd_offset(address) pgd_index(address)
-#define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address))
-#define pgd_offset_k(address) pgd_offset(&init_mm, address)
-#define _PMD_EMPTY 0x0
-#define pmd_present(pmd_entry) (pmd_val(pmd_entry) & _PAGE_PRESENT)
-#define pmd_clear(pmd_entry_p) (set_pmd((pmd_entry_p), __pmd(_PMD_EMPTY)))
-#define pmd_none(pmd_entry) (pmd_val((pmd_entry)) == _PMD_EMPTY)
-#define pmd_bad(pmd_entry) ((pmd_val(pmd_entry) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
-#define pmd_page_vaddr(pmd_entry)   ((unsigned long) __va(pmd_val(pmd_entry) & PAGE_MASK))
-#define pmd_page(pmd)   (virt_to_page(pmd_val(pmd)))
-#define pte_index(address)   ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
-#define pte_offset_kernel(dir, addr)   ((pte_t *) ((pmd_val(*(dir))) & PAGE_MASK) + pte_index((addr)))
-#define pte_offset_map(dir,addr) pte_offset_kernel(dir, addr)
-#define pte_offset_map_nested(dir,addr) pte_offset_kernel(dir, addr)
-#define pte_unmap(pte) do { } while (0)
-#define pte_unmap_nested(pte) do { } while (0)
-#ifndef __ASSEMBLY__
-#define IOBASE_VADDR 0xff000000
-#define IOBASE_END 0xffffffff
-#define _PAGE_WT 0x001  
-#define _PAGE_DEVICE 0x001  
-#define _PAGE_CACHABLE 0x002  
-#define _PAGE_PRESENT 0x004  
-#define _PAGE_FILE 0x004  
-#define _PAGE_SIZE0 0x008  
-#define _PAGE_SIZE1 0x010  
-#define _PAGE_SHARED 0x020  
-#define _PAGE_READ 0x040  
-#define _PAGE_EXECUTE 0x080  
-#define _PAGE_WRITE 0x100  
-#define _PAGE_USER 0x200  
-#define _PAGE_DIRTY 0x400  
-#define _PAGE_ACCESSED 0x800  
-#define _PAGE_FLAGS_HARDWARE_MASK 0xfffffffffffff3dbLL
-#ifndef _PAGE_SZHUGE
-#define _PAGE_SZHUGE (0)
-#endif
-#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE |   _PAGE_EXECUTE |   _PAGE_CACHABLE | _PAGE_ACCESSED | _PAGE_DIRTY |   _PAGE_SHARED)
-#define _PAGE_TABLE (_KERNPG_TABLE | _PAGE_USER)
-#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
-#define _PAGE_COMMON (_PAGE_PRESENT | _PAGE_USER |   _PAGE_CACHABLE | _PAGE_ACCESSED)
-#define PAGE_NONE __pgprot(_PAGE_CACHABLE | _PAGE_ACCESSED)
-#define PAGE_SHARED __pgprot(_PAGE_COMMON | _PAGE_READ | _PAGE_WRITE |   _PAGE_SHARED)
-#define PAGE_EXECREAD __pgprot(_PAGE_COMMON | _PAGE_READ | _PAGE_EXECUTE)
-#define PAGE_COPY PAGE_EXECREAD
-#define PAGE_READONLY __pgprot(_PAGE_COMMON | _PAGE_READ)
-#define PAGE_WRITEONLY __pgprot(_PAGE_COMMON | _PAGE_WRITE)
-#define PAGE_RWX __pgprot(_PAGE_COMMON | _PAGE_READ |   _PAGE_WRITE | _PAGE_EXECUTE)
-#define PAGE_KERNEL __pgprot(_KERNPG_TABLE)
-#define PAGE_KERNEL_NOCACHE   __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE |   _PAGE_EXECUTE | _PAGE_ACCESSED |   _PAGE_DIRTY | _PAGE_SHARED)
-#define pgprot_noncached(x) __pgprot(((x).pgprot & ~(_PAGE_CACHABLE)) | _PAGE_DEVICE)
-#define pgprot_writecombine(prot) __pgprot(pgprot_val(prot) & ~_PAGE_CACHABLE)
-
-#define __handle_bad_pmd(x) __handle_bad_pmd_kernel(x)
-
-#define _PTE_EMPTY 0x0
-#define pte_present(x) (pte_val(x) & _PAGE_PRESENT)
-#define pte_clear(mm,addr,xp) (set_pte_at(mm, addr, xp, __pte(_PTE_EMPTY)))
-#define pte_none(x) (pte_val(x) == _PTE_EMPTY)
-
-#define pte_pagenr(x) (((unsigned long) (pte_val(x)) -   __MEMORY_START) >> PAGE_SHIFT)
-
-#define pte_page(x) (mem_map + pte_pagenr(x))
-
-#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
-
-#define mk_pte(page,pgprot)  ({   pte_t __pte;     set_pte(&__pte, __pte((((page)-mem_map) << PAGE_SHIFT) |   __MEMORY_START | pgprot_val((pgprot))));   __pte;  })
-#define mk_pte_phys(physpage, pgprot)  ({ pte_t __pte; set_pte(&__pte, __pte(physpage | pgprot_val(pgprot))); __pte; })
-#define __swp_type(x) (((x).val & 3) + (((x).val >> 1) & 0x3c))
-#define __swp_offset(x) ((x).val >> 8)
-#define __swp_entry(type, offset) ((swp_entry_t) { ((offset << 8) + ((type & 0x3c) << 1) + (type & 3)) })
-#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
-#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
-#define PTE_FILE_MAX_BITS 29
-#define pte_to_pgoff(pte) (pte_val(pte))
-#define pgoff_to_pte(off) ((pte_t) { (off) | _PAGE_FILE })
-#endif
-#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-#define pfn_pmd(pfn, prot) __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-#endif
diff --git a/libc/kernel/arch-sh/asm/pm.h b/libc/kernel/arch-sh/asm/pm.h
deleted file mode 100644
index ba4caa7..0000000
--- a/libc/kernel/arch-sh/asm/pm.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PM_H
-#define __ASM_SH_PM_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/poll.h b/libc/kernel/arch-sh/asm/poll.h
deleted file mode 100644
index 5b16673..0000000
--- a/libc/kernel/arch-sh/asm/poll.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/poll.h>
diff --git a/libc/kernel/arch-sh/asm/posix_types.h b/libc/kernel/arch-sh/asm/posix_types.h
deleted file mode 100644
index 7d13b5d..0000000
--- a/libc/kernel/arch-sh/asm/posix_types.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifdef __SH5__
-#include "posix_types_64.h"
-#else
-#include "posix_types_32.h"
-#endif
diff --git a/libc/kernel/arch-sh/asm/posix_types_32.h b/libc/kernel/arch-sh/asm/posix_types_32.h
deleted file mode 100644
index 7cca40b..0000000
--- a/libc/kernel/arch-sh/asm/posix_types_32.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_POSIX_TYPES_H
-#define __ASM_SH_POSIX_TYPES_H
-
-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_timer_t;
-typedef int __kernel_clockid_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 unsigned short __kernel_old_dev_t;
-
-#ifdef __GNUC__
-typedef long long __kernel_loff_t;
-#endif
-
-typedef struct {
-#ifdef __USE_ALL
- int val[2];
-#else
- int __val[2];
-#endif
-} __kernel_fsid_t;
-
-#if !defined(__GLIBC__) || __GLIBC__ < 2
-
-#undef __FD_SET
-static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
-{
- unsigned long __tmp = __fd / __NFDBITS;
- unsigned long __rem = __fd % __NFDBITS;
- __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
-}
-
-#undef __FD_CLR
-static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
-{
- unsigned long __tmp = __fd / __NFDBITS;
- unsigned long __rem = __fd % __NFDBITS;
- __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
-}
-
-#undef __FD_ISSET
-static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
-{
- unsigned long __tmp = __fd / __NFDBITS;
- unsigned long __rem = __fd % __NFDBITS;
- return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
-}
-
-#undef __FD_ZERO
-static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
-{
- unsigned long *__tmp = __p->fds_bits;
- int __i;
-
- if (__builtin_constant_p(__FDSET_LONGS)) {
- switch (__FDSET_LONGS) {
- case 16:
- __tmp[ 0] = 0; __tmp[ 1] = 0;
- __tmp[ 2] = 0; __tmp[ 3] = 0;
- __tmp[ 4] = 0; __tmp[ 5] = 0;
- __tmp[ 6] = 0; __tmp[ 7] = 0;
- __tmp[ 8] = 0; __tmp[ 9] = 0;
- __tmp[10] = 0; __tmp[11] = 0;
- __tmp[12] = 0; __tmp[13] = 0;
- __tmp[14] = 0; __tmp[15] = 0;
- return;
-
- case 8:
- __tmp[ 0] = 0; __tmp[ 1] = 0;
- __tmp[ 2] = 0; __tmp[ 3] = 0;
- __tmp[ 4] = 0; __tmp[ 5] = 0;
- __tmp[ 6] = 0; __tmp[ 7] = 0;
- return;
-
- case 4:
- __tmp[ 0] = 0; __tmp[ 1] = 0;
- __tmp[ 2] = 0; __tmp[ 3] = 0;
- return;
- }
- }
- __i = __FDSET_LONGS;
- while (__i) {
- __i--;
- *__tmp = 0;
- __tmp++;
- }
-}
-
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/posix_types_64.h b/libc/kernel/arch-sh/asm/posix_types_64.h
deleted file mode 100644
index babc366..0000000
--- a/libc/kernel/arch-sh/asm/posix_types_64.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH64_POSIX_TYPES_H
-#define __ASM_SH64_POSIX_TYPES_H
-
-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_timer_t;
-typedef int __kernel_clockid_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 unsigned short __kernel_old_dev_t;
-
-#ifdef __GNUC__
-typedef long long __kernel_loff_t;
-#endif
-
-typedef struct {
-#ifdef __USE_ALL
- int val[2];
-#else
- int __val[2];
-#endif
-} __kernel_fsid_t;
-
-#if !defined(__GLIBC__) || __GLIBC__ < 2
-
-#undef __FD_SET
-static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
-{
- unsigned long __tmp = __fd / __NFDBITS;
- unsigned long __rem = __fd % __NFDBITS;
- __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
-}
-
-#undef __FD_CLR
-static __inline__ void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
-{
- unsigned long __tmp = __fd / __NFDBITS;
- unsigned long __rem = __fd % __NFDBITS;
- __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
-}
-
-#undef __FD_ISSET
-static __inline__ int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
-{
- unsigned long __tmp = __fd / __NFDBITS;
- unsigned long __rem = __fd % __NFDBITS;
- return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
-}
-
-#undef __FD_ZERO
-static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
-{
- unsigned long *__tmp = __p->fds_bits;
- int __i;
-
- if (__builtin_constant_p(__FDSET_LONGS)) {
- switch (__FDSET_LONGS) {
- case 16:
- __tmp[ 0] = 0; __tmp[ 1] = 0;
- __tmp[ 2] = 0; __tmp[ 3] = 0;
- __tmp[ 4] = 0; __tmp[ 5] = 0;
- __tmp[ 6] = 0; __tmp[ 7] = 0;
- __tmp[ 8] = 0; __tmp[ 9] = 0;
- __tmp[10] = 0; __tmp[11] = 0;
- __tmp[12] = 0; __tmp[13] = 0;
- __tmp[14] = 0; __tmp[15] = 0;
- return;
-
- case 8:
- __tmp[ 0] = 0; __tmp[ 1] = 0;
- __tmp[ 2] = 0; __tmp[ 3] = 0;
- __tmp[ 4] = 0; __tmp[ 5] = 0;
- __tmp[ 6] = 0; __tmp[ 7] = 0;
- return;
-
- case 4:
- __tmp[ 0] = 0; __tmp[ 1] = 0;
- __tmp[ 2] = 0; __tmp[ 3] = 0;
- return;
- }
- }
- __i = __FDSET_LONGS;
- while (__i) {
- __i--;
- *__tmp = 0;
- __tmp++;
- }
-}
-
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/processor.h b/libc/kernel/arch-sh/asm/processor.h
deleted file mode 100644
index e808ed6..0000000
--- a/libc/kernel/arch-sh/asm/processor.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PROCESSOR_H
-#define __ASM_SH_PROCESSOR_H
-
-#include <asm/cpu-features.h>
-#include <asm/segment.h>
-
-#ifndef __ASSEMBLY__
-
-enum cpu_type {
-
- CPU_SH7619,
-
- CPU_SH7203, CPU_SH7206, CPU_SH7263, CPU_MXG,
-
- CPU_SH7705, CPU_SH7706, CPU_SH7707,
- CPU_SH7708, CPU_SH7708S, CPU_SH7708R,
- CPU_SH7709, CPU_SH7709A, CPU_SH7710, CPU_SH7712,
- CPU_SH7720, CPU_SH7721, CPU_SH7729,
-
- CPU_SH7750, CPU_SH7750S, CPU_SH7750R, CPU_SH7751, CPU_SH7751R,
- CPU_SH7760, CPU_SH4_202, CPU_SH4_501,
-
- CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785,
- CPU_SH7723, CPU_SHX3,
-
- CPU_SH7343, CPU_SH7722, CPU_SH7366,
-
- CPU_SH5_101, CPU_SH5_103,
-
- CPU_SH_NONE
-};
-
-struct sh_cpuinfo;
-
-#endif
-
-#include "processor_32.h"
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/processor_32.h b/libc/kernel/arch-sh/asm/processor_32.h
deleted file mode 100644
index d60b2f8..0000000
--- a/libc/kernel/arch-sh/asm/processor_32.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PROCESSOR_32_H
-#define __ASM_SH_PROCESSOR_32_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/processor_64.h b/libc/kernel/arch-sh/asm/processor_64.h
deleted file mode 100644
index 035a526..0000000
--- a/libc/kernel/arch-sh/asm/processor_64.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PROCESSOR_64_H
-#define __ASM_SH_PROCESSOR_64_H
-
-#ifndef __ASSEMBLY__
-
-#include <linux/compiler.h>
-#include <asm/page.h>
-#include <asm/types.h>
-#include <asm/cache.h>
-#include <asm/ptrace.h>
-#include <cpu/registers.h>
-
-#define current_text_addr() ({  void *pc;  unsigned long long __dummy = 0;  __asm__("gettr	tr0, %1\n\t"   "pta	4, tr0\n\t"   "gettr	tr0, %0\n\t"   "ptabs	%1, tr0\n\t"   :"=r" (pc), "=r" (__dummy)   : "1" (__dummy));  pc; })
-
-struct tlb_info {
- unsigned long long next;
- unsigned long long first;
- unsigned long long last;
-
- unsigned int entries;
- unsigned int step;
-
- unsigned long flags;
-};
-
-struct sh_cpuinfo {
- enum cpu_type type;
- unsigned long loops_per_jiffy;
- unsigned long asid_cache;
-
- unsigned int cpu_clock, master_clock, bus_clock, module_clock;
-
- struct cache_info icache;
- struct cache_info dcache;
- struct cache_info scache;
-
- struct tlb_info itlb;
- struct tlb_info dtlb;
-
- unsigned long flags;
-};
-
-#define boot_cpu_data cpu_data[0]
-#define current_cpu_data cpu_data[smp_processor_id()]
-#define raw_current_cpu_data cpu_data[raw_smp_processor_id()]
-
-#endif
-
-#define TASK_SIZE 0x7ffff000UL
-
-#define STACK_TOP TASK_SIZE
-#define STACK_TOP_MAX STACK_TOP
-
-#define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
-
-#define SR_MMU 0x80000000
-
-#define SR_IMASK 0x000000f0
-#define SR_FD 0x00008000
-#define SR_SSTEP 0x08000000
-
-#ifndef __ASSEMBLY__
-
-struct sh_fpu_hard_struct {
- unsigned long fp_regs[64];
- unsigned int fpscr;
-
-};
-
-union sh_fpu_union {
- struct sh_fpu_hard_struct hard;
-
- unsigned long long alignment_dummy;
-};
-
-struct thread_struct {
- unsigned long sp;
- unsigned long pc;
-
- struct pt_regs *kregs;
-
- struct pt_regs *uregs;
-
- unsigned long trap_no, error_code;
- unsigned long address;
-
- union sh_fpu_union fpu;
-};
-
-#define INIT_MMAP  { &init_mm, 0, 0, NULL, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }
-
-#define INIT_THREAD {   .sp = sizeof(init_stack) +   (long) &init_stack,   .pc = 0,   .kregs = &fake_swapper_regs,   .uregs = NULL,   .trap_no = 0,   .error_code = 0,   .address = 0,   .fpu = { { { 0, } }, }  }
-
-#define SR_USER (SR_MMU | SR_FD)
-
-#define start_thread(regs, new_pc, new_sp)   set_fs(USER_DS);   regs->sr = SR_USER;     regs->pc = new_pc - 4;     regs->pc |= 1;     regs->regs[18] = 0;   regs->regs[15] = new_sp
-
-struct task_struct;
-struct mm_struct;
-
-#define copy_segments(p, mm) do { } while (0)
-#define release_segments(mm) do { } while (0)
-#define forget_segments() do { } while (0)
-#define prepare_to_copy(tsk) do { } while (0)
-
-#define FPSCR_INIT 0x00000000
-
-#define thread_saved_pc(tsk) (tsk->thread.pc)
-
-#define KSTK_EIP(tsk) ((tsk)->thread.pc)
-#define KSTK_ESP(tsk) ((tsk)->thread.sp)
-
-#define cpu_relax() barrier()
-
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/ptrace.h b/libc/kernel/arch-sh/asm/ptrace.h
deleted file mode 100644
index 452af81..0000000
--- a/libc/kernel/arch-sh/asm/ptrace.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PTRACE_H
-#define __ASM_SH_PTRACE_H
-
-#ifdef __SH5__
-struct pt_regs {
- unsigned long long pc;
- unsigned long long sr;
- unsigned long long syscall_nr;
- unsigned long long regs[63];
- unsigned long long tregs[8];
- unsigned long long pad[2];
-};
-#else
-
-#define REG_REG0 0
-#define REG_REG15 15
-
-#define REG_PC 16
-
-#define REG_PR 17
-#define REG_SR 18
-#define REG_GBR 19
-#define REG_MACH 20
-#define REG_MACL 21
-
-#define REG_SYSCALL 22
-
-#define REG_FPREG0 23
-#define REG_FPREG15 38
-#define REG_XFREG0 39
-#define REG_XFREG15 54
-
-#define REG_FPSCR 55
-#define REG_FPUL 56
-
-struct pt_regs {
- unsigned long regs[16];
- unsigned long pc;
- unsigned long pr;
- unsigned long sr;
- unsigned long gbr;
- unsigned long mach;
- unsigned long macl;
- long tra;
-};
-
-struct pt_dspregs {
- unsigned long a1;
- unsigned long a0g;
- unsigned long a1g;
- unsigned long m0;
- unsigned long m1;
- unsigned long a0;
- unsigned long x0;
- unsigned long x1;
- unsigned long y0;
- unsigned long y1;
- unsigned long dsr;
- unsigned long rs;
- unsigned long re;
- unsigned long mod;
-};
-
-#define PTRACE_GETFDPIC 31  
-
-#define PTRACE_GETFDPIC_EXEC 0  
-#define PTRACE_GETFDPIC_INTERP 1  
-
-#define PTRACE_GETDSPREGS 55
-#define PTRACE_SETDSPREGS 56
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/push-switch.h b/libc/kernel/arch-sh/asm/push-switch.h
deleted file mode 100644
index e07bf67..0000000
--- a/libc/kernel/arch-sh/asm/push-switch.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_PUSH_SWITCH_H
-#define __ASM_SH_PUSH_SWITCH_H
-
-#include <linux/timer.h>
-#include <linux/interrupt.h>
-#include <linux/workqueue.h>
-#include <linux/platform_device.h>
-
-struct push_switch {
-
- unsigned int state:1;
-
- struct timer_list debounce;
-
- struct work_struct work;
-
- struct platform_device *pdev;
-};
-
-struct push_switch_platform_info {
-
- irqreturn_t (*irq_handler)(int irq, void *data);
-
- unsigned int irq_flags;
-
- unsigned int bit;
-
- const char *name;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/r7780rp.h b/libc/kernel/arch-sh/asm/r7780rp.h
deleted file mode 100644
index 50e0df8..0000000
--- a/libc/kernel/arch-sh/asm/r7780rp.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_RENESAS_R7780RP_H
-#define __ASM_SH_RENESAS_R7780RP_H
-
-#define HL_FPGA_IRQ_BASE 200
-#define HL_NR_IRL 15
-
-#define IRQ_AX88796 (HL_FPGA_IRQ_BASE + 0)
-#define IRQ_CF (HL_FPGA_IRQ_BASE + 1)
-#define IRQ_PSW (HL_FPGA_IRQ_BASE + 2)
-#define IRQ_EXT0 (HL_FPGA_IRQ_BASE + 3)
-#define IRQ_EXT1 (HL_FPGA_IRQ_BASE + 4)
-#define IRQ_EXT2 (HL_FPGA_IRQ_BASE + 5)
-#define IRQ_EXT3 (HL_FPGA_IRQ_BASE + 6)
-#define IRQ_EXT4 (HL_FPGA_IRQ_BASE + 7)
-#define IRQ_EXT5 (HL_FPGA_IRQ_BASE + 8)
-#define IRQ_EXT6 (HL_FPGA_IRQ_BASE + 9)
-#define IRQ_EXT7 (HL_FPGA_IRQ_BASE + 10)
-#define IRQ_SMBUS (HL_FPGA_IRQ_BASE + 11)
-#define IRQ_TP (HL_FPGA_IRQ_BASE + 12)
-#define IRQ_RTC (HL_FPGA_IRQ_BASE + 13)
-#define IRQ_TH_ALERT (HL_FPGA_IRQ_BASE + 14)
-#define IRQ_SCIF0 (HL_FPGA_IRQ_BASE + 15)
-#define IRQ_SCIF1 (HL_FPGA_IRQ_BASE + 16)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/resource.h b/libc/kernel/arch-sh/asm/resource.h
deleted file mode 100644
index da606cc..0000000
--- a/libc/kernel/arch-sh/asm/resource.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_RESOURCE_H
-#define __ASM_SH_RESOURCE_H
-
-#include <asm-generic/resource.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/rtc.h b/libc/kernel/arch-sh/asm/rtc.h
deleted file mode 100644
index ecc6f37..0000000
--- a/libc/kernel/arch-sh/asm/rtc.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_RTC_H
-#define _ASM_RTC_H
-
-#define RTC_CAP_4_DIGIT_YEAR (1 << 0)
-
-struct sh_rtc_platform_info {
- unsigned long capabilities;
-};
-
-#include <cpu/rtc.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/rts7751r2d.h b/libc/kernel/arch-sh/asm/rts7751r2d.h
deleted file mode 100644
index 775f25b..0000000
--- a/libc/kernel/arch-sh/asm/rts7751r2d.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_RENESAS_RTS7751R2D_H
-#define __ASM_SH_RENESAS_RTS7751R2D_H
-
-#define PA_BCR 0xa4000000  
-#define PA_IRLMON 0xa4000002  
-#define PA_CFCTL 0xa4000004  
-#define PA_CFPOW 0xa4000006  
-#define PA_DISPCTL 0xa4000008  
-#define PA_SDMPOW 0xa400000a  
-#define PA_RTCCE 0xa400000c  
-#define PA_PCICD 0xa400000e  
-#define PA_VOYAGERRTS 0xa4000020  
-
-#define PA_R2D1_AXRST 0xa4000022  
-#define PA_R2D1_CFRST 0xa4000024  
-#define PA_R2D1_ADMRTS 0xa4000026  
-#define PA_R2D1_EXTRST 0xa4000028  
-#define PA_R2D1_CFCDINTCLR 0xa400002a  
-
-#define PA_R2DPLUS_CFRST 0xa4000022  
-#define PA_R2DPLUS_ADMRTS 0xa4000024  
-#define PA_R2DPLUS_EXTRST 0xa4000026  
-#define PA_R2DPLUS_CFCDINTCLR 0xa4000028  
-#define PA_R2DPLUS_KEYCTLCLR 0xa400002a  
-
-#define PA_POWOFF 0xa4000030  
-#define PA_VERREG 0xa4000032  
-#define PA_INPORT 0xa4000034  
-#define PA_OUTPORT 0xa4000036  
-#define PA_BVERREG 0xa4000038  
-
-#define PA_AX88796L 0xaa000400  
-#define PA_VOYAGER 0xab000000  
-#define PA_IDE_OFFSET 0x1f0  
-#define AX88796L_IO_BASE 0x1000  
-
-#define IRLCNTR1 (PA_BCR + 0)  
-
-#define R2D_FPGA_IRQ_BASE 100
-
-#define IRQ_VOYAGER (R2D_FPGA_IRQ_BASE + 0)
-#define IRQ_EXT (R2D_FPGA_IRQ_BASE + 1)
-#define IRQ_TP (R2D_FPGA_IRQ_BASE + 2)
-#define IRQ_RTC_T (R2D_FPGA_IRQ_BASE + 3)
-#define IRQ_RTC_A (R2D_FPGA_IRQ_BASE + 4)
-#define IRQ_SDCARD (R2D_FPGA_IRQ_BASE + 5)
-#define IRQ_CF_CD (R2D_FPGA_IRQ_BASE + 6)
-#define IRQ_CF_IDE (R2D_FPGA_IRQ_BASE + 7)
-#define IRQ_AX88796 (R2D_FPGA_IRQ_BASE + 8)
-#define IRQ_KEY (R2D_FPGA_IRQ_BASE + 9)
-#define IRQ_PCI_INTA (R2D_FPGA_IRQ_BASE + 10)
-#define IRQ_PCI_INTB (R2D_FPGA_IRQ_BASE + 11)
-#define IRQ_PCI_INTC (R2D_FPGA_IRQ_BASE + 12)
-#define IRQ_PCI_INTD (R2D_FPGA_IRQ_BASE + 13)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/rwsem.h b/libc/kernel/arch-sh/asm/rwsem.h
deleted file mode 100644
index 4b5552e..0000000
--- a/libc/kernel/arch-sh/asm/rwsem.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_RWSEM_H
-#define _ASM_SH_RWSEM_H
-
-#ifndef _LINUX_RWSEM_H
-#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/scatterlist.h b/libc/kernel/arch-sh/asm/scatterlist.h
deleted file mode 100644
index 1c5c818..0000000
--- a/libc/kernel/arch-sh/asm/scatterlist.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SCATTERLIST_H
-#define __ASM_SH_SCATTERLIST_H
-
-#include <asm/types.h>
-
-struct scatterlist {
- unsigned long page_link;
- unsigned int offset;
- dma_addr_t dma_address;
- unsigned int length;
-};
-
-#define ISA_DMA_THRESHOLD PHYS_ADDR_MASK
-
-#define sg_dma_address(sg) ((sg)->dma_address)
-#define sg_dma_len(sg) ((sg)->length)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sdk7780.h b/libc/kernel/arch-sh/asm/sdk7780.h
deleted file mode 100644
index e5659d9..0000000
--- a/libc/kernel/arch-sh/asm/sdk7780.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_RENESAS_SDK7780_H
-#define __ASM_SH_RENESAS_SDK7780_H
-
-#include <asm/addrspace.h>
-
-#define SE_AREA0_WIDTH 4  
-#define PA_ROM 0xa0000000  
-#define PA_ROM_SIZE 0x00400000  
-#define PA_FROM 0xa0800000  
-#define PA_FROM_SIZE 0x00400000  
-#define PA_EXT1 0xa4000000
-#define PA_EXT1_SIZE 0x04000000
-#define PA_SDRAM 0xa8000000  
-#define PA_SDRAM_SIZE 0x08000000
-
-#define PA_EXT4 0xb0000000
-#define PA_EXT4_SIZE 0x04000000
-#define PA_EXT_USER PA_EXT4  
-
-#define PA_PERIPHERAL PA_AREA5_IO
-
-#define PA_RESERVED (PA_PERIPHERAL + 0)
-
-#define PA_FPGA (PA_PERIPHERAL + 0x01000000)
-
-#define PA_LAN (PA_PERIPHERAL + 0x01800000)
-
-#define FPGA_SRSTR (PA_FPGA + 0x000)  
-#define FPGA_IRQ0SR (PA_FPGA + 0x010)  
-#define FPGA_IRQ0MR (PA_FPGA + 0x020)  
-#define FPGA_BDMR (PA_FPGA + 0x030)  
-#define FPGA_INTT0PRTR (PA_FPGA + 0x040)  
-#define FPGA_INTT0SELR (PA_FPGA + 0x050)  
-#define FPGA_INTT1POLR (PA_FPGA + 0x060)  
-#define FPGA_NMIR (PA_FPGA + 0x070)  
-#define FPGA_NMIMR (PA_FPGA + 0x080)  
-#define FPGA_IRQR (PA_FPGA + 0x090)  
-#define FPGA_IRQMR (PA_FPGA + 0x0A0)  
-#define FPGA_SLEDR (PA_FPGA + 0x0B0)  
-#define PA_LED FPGA_SLEDR
-#define FPGA_MAPSWR (PA_FPGA + 0x0C0)  
-#define FPGA_FPVERR (PA_FPGA + 0x0D0)  
-#define FPGA_FPDATER (PA_FPGA + 0x0E0)  
-#define FPGA_RSE (PA_FPGA + 0x100)  
-#define FPGA_EASR (PA_FPGA + 0x110)  
-#define FPGA_SPER (PA_FPGA + 0x120)  
-#define FPGA_IMSR (PA_FPGA + 0x130)  
-#define FPGA_PCIMR (PA_FPGA + 0x140)  
-#define FPGA_DIPSWMR (PA_FPGA + 0x150)  
-#define FPGA_FPODR (PA_FPGA + 0x160)  
-#define FPGA_ATAESR (PA_FPGA + 0x170)  
-#define FPGA_IRQPOLR (PA_FPGA + 0x180)  
-
-#define SDK7780_NR_IRL 15
-
-#define IRQ_CFCARD 14
-
-#define IRQ_ETHERNET 6
-
-#define __IO_PREFIX sdk7780
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/seccomp.h b/libc/kernel/arch-sh/asm/seccomp.h
deleted file mode 100644
index ab9cab3..0000000
--- a/libc/kernel/arch-sh/asm/seccomp.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SECCOMP_H
-
-#include <linux/unistd.h>
-
-#define __NR_seccomp_read __NR_read
-#define __NR_seccomp_write __NR_write
-#define __NR_seccomp_exit __NR_exit
-#define __NR_seccomp_sigreturn __NR_rt_sigreturn
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sections.h b/libc/kernel/arch-sh/asm/sections.h
deleted file mode 100644
index 71c66a6..0000000
--- a/libc/kernel/arch-sh/asm/sections.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SECTIONS_H
-#define __ASM_SH_SECTIONS_H
-
-#include <asm-generic/sections.h>
-
-#endif
-
diff --git a/libc/kernel/arch-sh/asm/segment.h b/libc/kernel/arch-sh/asm/segment.h
deleted file mode 100644
index 3525a35..0000000
--- a/libc/kernel/arch-sh/asm/segment.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SEGMENT_H
-#define __ASM_SH_SEGMENT_H
-
-#ifndef __ASSEMBLY__
-
-typedef struct {
- unsigned long seg;
-} mm_segment_t;
-
-#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
-
-#define KERNEL_DS MAKE_MM_SEG(0xFFFFFFFFUL)
-#define USER_DS MAKE_MM_SEG(PAGE_OFFSET)
-
-#define segment_eq(a,b) ((a).seg == (b).seg)
-
-#define get_ds() (KERNEL_DS)
-
-#define get_fs() (current_thread_info()->addr_limit)
-#define set_fs(x) (current_thread_info()->addr_limit = (x))
-
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/sembuf.h b/libc/kernel/arch-sh/asm/sembuf.h
deleted file mode 100644
index 7c0bdf9..0000000
--- a/libc/kernel/arch-sh/asm/sembuf.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SEMBUF_H
-#define __ASM_SH_SEMBUF_H
-
-struct semid64_ds {
- struct ipc64_perm sem_perm;
- __kernel_time_t sem_otime;
- unsigned long __unused1;
- __kernel_time_t sem_ctime;
- unsigned long __unused2;
- unsigned long sem_nsems;
- unsigned long __unused3;
- unsigned long __unused4;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/serial.h b/libc/kernel/arch-sh/asm/serial.h
deleted file mode 100644
index ae59411..0000000
--- a/libc/kernel/arch-sh/asm/serial.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SERIAL_H
-#define _ASM_SERIAL_H
-
-#include <linux/kernel.h>
-
-#define BASE_BAUD ( 1843200 / 16 )
-
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
-
-#define SERIAL_PORT_DFNS
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/setup.h b/libc/kernel/arch-sh/asm/setup.h
deleted file mode 100644
index f97e133..0000000
--- a/libc/kernel/arch-sh/asm/setup.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _SH_SETUP_H
-#define _SH_SETUP_H
-
-#define COMMAND_LINE_SIZE 256
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sfp-machine.h b/libc/kernel/arch-sh/asm/sfp-machine.h
deleted file mode 100644
index f5e9844..0000000
--- a/libc/kernel/arch-sh/asm/sfp-machine.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _SFP_MACHINE_H
-#define _SFP_MACHINE_H
-
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define _FP_MUL_MEAT_S(R,X,Y)   _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_D(R,X,Y)   _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y)   _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_udiv(S,R,X,Y)
-#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)   do {   if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)   && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs))   {   R##_s = Y##_s;   _FP_FRAC_COPY_##wc(R,Y);   }   else   {   R##_s = X##_s;   _FP_FRAC_COPY_##wc(R,X);   }   R##_c = FP_CLS_NAN;   } while (0)
-
-#define FP_DENORM_ZERO 1 
-
-#define FP_EX_INVALID (1<<4)
-#define FP_EX_DIVZERO (1<<3)
-#define FP_EX_OVERFLOW (1<<2)
-#define FP_EX_UNDERFLOW (1<<1)
-#define FP_EX_INEXACT (1<<0)
-
-#endif
-
diff --git a/libc/kernel/arch-sh/asm/sh7760fb.h b/libc/kernel/arch-sh/asm/sh7760fb.h
deleted file mode 100644
index 1082668..0000000
--- a/libc/kernel/arch-sh/asm/sh7760fb.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_SH7760FB_H
-#define _ASM_SH_SH7760FB_H
-
-#define SH7760FB_PALETTE_MASK 0x00f8fcf8
-
-#define SH7760FB_DMA_MASK 0x0C000000
-
-#define LDPR(x) (((x) << 2))
-
-#define LDICKR 0x400
-#define LDMTR 0x402
-
-#define LDDFR 0x404
-#define LDDFR_PABD (1 << 8)
-#define LDDFR_COLOR_MASK 0x7F
-#define LDSMR 0x406
-#define LDSMR_ROT (1 << 13)
-#define LDSARU 0x408
-#define LDSARL 0x40c
-#define LDLAOR 0x410
-#define LDPALCR 0x412
-#define LDPALCR_PALS (1 << 4)
-#define LDPALCR_PALEN (1 << 0)
-#define LDHCNR 0x414
-#define LDHSYNR 0x416
-#define LDVDLNR 0x418
-#define LDVTLNR 0x41a
-#define LDVSYNR 0x41c
-#define LDACLNR 0x41e
-#define LDINTR 0x420
-#define LDPMMR 0x424
-#define LDPSPR 0x426
-#define LDCNTR 0x428
-#define LDCNTR_DON (1 << 0)
-#define LDCNTR_DON2 (1 << 4)
-
-#define LDINTR_VINTSEL (1 << 12)
-#define LDINTR_VINTE (1 << 8)
-#define LDINTR_VINTS (1 << 0)
-#define VINT_START (LDINTR_VINTSEL)
-#define VINT_CHECK (LDINTR_VINTS)
-
-#define LDMTR_FLMPOL (1 << 15)
-
-#define LDMTR_CL1POL (1 << 14)
-
-#define LDMTR_DISPEN_LOWACT (1 << 13)
-
-#define LDMTR_DPOL_LOWACT (1 << 12)
-
-#define LDMTR_MCNT (1 << 10)
-
-#define LDMTR_CL1CNT (1 << 9)
-
-#define LDMTR_CL2CNT (1 << 8)
-
-#define LDMTR_STN_MONO_4 0x00
-#define LDMTR_STN_MONO_8 0x01
-#define LDMTR_STN_COLOR_4 0x08
-#define LDMTR_STN_COLOR_8 0x09
-#define LDMTR_STN_COLOR_12 0x0A
-#define LDMTR_STN_COLOR_16 0x0B
-#define LDMTR_DSTN_MONO_8 0x11
-#define LDMTR_DSTN_MONO_16 0x13
-#define LDMTR_DSTN_COLOR_8 0x19
-#define LDMTR_DSTN_COLOR_12 0x1A
-#define LDMTR_DSTN_COLOR_16 0x1B
-#define LDMTR_TFT_COLOR_16 0x2B
-
-#define LDDFR_1BPP_MONO 0x00
-#define LDDFR_2BPP_MONO 0x01
-#define LDDFR_4BPP_MONO 0x02
-#define LDDFR_6BPP_MONO 0x04
-#define LDDFR_4BPP 0x0A
-#define LDDFR_8BPP 0x0C
-#define LDDFR_16BPP_RGB555 0x1D
-#define LDDFR_16BPP_RGB565 0x2D
-
-#define LCDC_CLKSRC_BUSCLOCK 0
-#define LCDC_CLKSRC_PERIPHERAL 1
-#define LCDC_CLKSRC_EXTERNAL 2
-
-#define LDICKR_CLKSRC(x)   (((x) & 3) << 12)
-
-#define LDICKR_CLKDIV(x)   ((x) & 0x1f)
-
-struct sh7760fb_platdata {
-
- struct fb_videomode *def_mode;
-
- u16 ldmtr;
-
- u16 lddfr;
-
- u16 ldpmmr;
- u16 ldpspr;
-
- u16 ldaclnr;
-
- u16 ldickr;
-
- int rotate;
-
- int novsync;
-
- void (*blank) (int);
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sh7763rdp.h b/libc/kernel/arch-sh/asm/sh7763rdp.h
deleted file mode 100644
index 7c1aa19..0000000
--- a/libc/kernel/arch-sh/asm/sh7763rdp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SH7763RDP_H
-#define __ASM_SH_SH7763RDP_H
-
-#include <asm/addrspace.h>
-
-#define MSTPCR1 0xFFC80038
-
-#define PORT_PSEL0 0xFFEF0070
-#define PORT_PSEL1 0xFFEF0072
-#define PORT_PSEL2 0xFFEF0074
-#define PORT_PSEL3 0xFFEF0076
-#define PORT_PSEL4 0xFFEF0078
-
-#define PORT_PACR 0xFFEF0000
-#define PORT_PCCR 0xFFEF0004
-#define PORT_PFCR 0xFFEF000A
-#define PORT_PGCR 0xFFEF000C
-#define PORT_PHCR 0xFFEF000E
-#define PORT_PICR 0xFFEF0010
-#define PORT_PJCR 0xFFEF0012
-#define PORT_PKCR 0xFFEF0014
-#define PORT_PLCR 0xFFEF0016
-#define PORT_PMCR 0xFFEF0018
-#define PORT_PNCR 0xFFEF001A
-
-#define CPLD_BOARD_ID_ERV_REG 0xB1000000
-#define CPLD_CPLD_CMD_REG 0xB1000006
-
-#define USB_USBHSC 0xFFEC80f0
-
-#define __IO_PREFIX sh7763rdp
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sh7785lcr.h b/libc/kernel/arch-sh/asm/sh7785lcr.h
deleted file mode 100644
index 0729f53..0000000
--- a/libc/kernel/arch-sh/asm/sh7785lcr.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_RENESAS_SH7785LCR_H
-#define __ASM_SH_RENESAS_SH7785LCR_H
-
-#define NOR_FLASH_ADDR 0x00000000
-#define NOR_FLASH_SIZE 0x04000000
-
-#define PLD_BASE_ADDR 0x04000000
-#define PLD_PCICR (PLD_BASE_ADDR + 0x00)
-#define PLD_LCD_BK_CONTR (PLD_BASE_ADDR + 0x02)
-#define PLD_LOCALCR (PLD_BASE_ADDR + 0x04)
-#define PLD_POFCR (PLD_BASE_ADDR + 0x06)
-#define PLD_LEDCR (PLD_BASE_ADDR + 0x08)
-#define PLD_SWSR (PLD_BASE_ADDR + 0x0a)
-#define PLD_VERSR (PLD_BASE_ADDR + 0x0c)
-#define PLD_MMSR (PLD_BASE_ADDR + 0x0e)
-
-#define SM107_MEM_ADDR 0x10000000
-#define SM107_MEM_SIZE 0x00e00000
-#define SM107_REG_ADDR 0x13e00000
-#define SM107_REG_SIZE 0x00200000
-
-#define R8A66597_ADDR 0x08000000
-#define CG200_ADDR 0x0c000000
-#define PCA9564_ADDR 0x14000000
-
-#define R8A66597_SIZE 0x00000100
-#define CG200_SIZE 0x00010000
-#define PCA9564_SIZE 0x00000100
-
-#endif
-
diff --git a/libc/kernel/arch-sh/asm/sh_bios.h b/libc/kernel/arch-sh/asm/sh_bios.h
deleted file mode 100644
index d78679a..0000000
--- a/libc/kernel/arch-sh/asm/sh_bios.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_BIOS_H
-#define __ASM_SH_BIOS_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sh_eth.h b/libc/kernel/arch-sh/asm/sh_eth.h
deleted file mode 100644
index f9fc253..0000000
--- a/libc/kernel/arch-sh/asm/sh_eth.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_ETH_H__
-#define __ASM_SH_ETH_H__
-
-enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN};
-
-struct sh_eth_plat_data {
- int phy;
- int edmac_endian;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sh_keysc.h b/libc/kernel/arch-sh/asm/sh_keysc.h
deleted file mode 100644
index a14b47f..0000000
--- a/libc/kernel/arch-sh/asm/sh_keysc.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_KEYSC_H__
-#define __ASM_KEYSC_H__
-
-#define SH_KEYSC_MAXKEYS 30
-
-struct sh_keysc_info {
- enum { SH_KEYSC_MODE_1, SH_KEYSC_MODE_2, SH_KEYSC_MODE_3 } mode;
- int scan_timing;
- int delay;
- int keycodes[SH_KEYSC_MAXKEYS];
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sh_mobile_lcdc.h b/libc/kernel/arch-sh/asm/sh_mobile_lcdc.h
deleted file mode 100644
index 2b3e730..0000000
--- a/libc/kernel/arch-sh/asm/sh_mobile_lcdc.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_MOBILE_LCDC_H__
-#define __ASM_SH_MOBILE_LCDC_H__
-
-#include <linux/fb.h>
-
-enum { RGB8,
- RGB9,
- RGB12A,
- RGB12B,
- RGB16,
- RGB18,
- RGB24,
- SYS8A,
- SYS8B,
- SYS8C,
- SYS8D,
- SYS9,
- SYS12,
- SYS16A,
- SYS16B,
- SYS16C,
- SYS18,
- SYS24 };
-
-enum { LCDC_CHAN_DISABLED = 0,
- LCDC_CHAN_MAINLCD,
- LCDC_CHAN_SUBLCD };
-
-enum { LCDC_CLK_BUS, LCDC_CLK_PERIPHERAL, LCDC_CLK_EXTERNAL };
-
-struct sh_mobile_lcdc_sys_bus_cfg {
- unsigned long ldmt2r;
- unsigned long ldmt3r;
-};
-
-struct sh_mobile_lcdc_sys_bus_ops {
- void (*write_index)(void *handle, unsigned long data);
- void (*write_data)(void *handle, unsigned long data);
- unsigned long (*read_data)(void *handle);
-};
-
-struct sh_mobile_lcdc_board_cfg {
- void *board_data;
- int (*setup_sys)(void *board_data, void *sys_ops_handle,
- struct sh_mobile_lcdc_sys_bus_ops *sys_ops);
- void (*display_on)(void *board_data);
- void (*display_off)(void *board_data);
-};
-
-struct sh_mobile_lcdc_lcd_size_cfg {
- unsigned long width;
- unsigned long height;
-};
-
-struct sh_mobile_lcdc_chan_cfg {
- int chan;
- int bpp;
- int interface_type;
- int clock_divider;
- struct fb_videomode lcd_cfg;
- struct sh_mobile_lcdc_lcd_size_cfg lcd_size_cfg;
- struct sh_mobile_lcdc_board_cfg board_cfg;
- struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg;
-};
-
-struct sh_mobile_lcdc_info {
- unsigned long lddckr;
- int clock_source;
- struct sh_mobile_lcdc_chan_cfg ch[2];
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/shmbuf.h b/libc/kernel/arch-sh/asm/shmbuf.h
deleted file mode 100644
index 7cbe0c7..0000000
--- a/libc/kernel/arch-sh/asm/shmbuf.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SHMBUF_H
-#define __ASM_SH_SHMBUF_H
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm;
- size_t shm_segsz;
- __kernel_time_t shm_atime;
- unsigned long __unused1;
- __kernel_time_t shm_dtime;
- unsigned long __unused2;
- __kernel_time_t shm_ctime;
- unsigned long __unused3;
- __kernel_pid_t shm_cpid;
- __kernel_pid_t shm_lpid;
- unsigned long shm_nattch;
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-struct shminfo64 {
- unsigned long shmmax;
- unsigned long shmmin;
- unsigned long shmmni;
- unsigned long shmseg;
- unsigned long shmall;
- unsigned long __unused1;
- unsigned long __unused2;
- unsigned long __unused3;
- unsigned long __unused4;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/shmin.h b/libc/kernel/arch-sh/asm/shmin.h
deleted file mode 100644
index 0d61b94..0000000
--- a/libc/kernel/arch-sh/asm/shmin.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SHMIN_H
-#define __ASM_SH_SHMIN_H
-
-#define SHMIN_IO_BASE 0xb0000000UL
-
-#define SHMIN_NE_IRQ IRQ2_IRQ
-#define SHMIN_NE_BASE 0x300
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/shmparam.h b/libc/kernel/arch-sh/asm/shmparam.h
deleted file mode 100644
index a51628e..0000000
--- a/libc/kernel/arch-sh/asm/shmparam.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SHMPARAM_H
-#define __ASM_SH_SHMPARAM_H
-
-#define SHMLBA 0x4000  
-
-#define __ARCH_FORCE_SHMLBA
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sigcontext.h b/libc/kernel/arch-sh/asm/sigcontext.h
deleted file mode 100644
index 3cf7cad..0000000
--- a/libc/kernel/arch-sh/asm/sigcontext.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SIGCONTEXT_H
-#define __ASM_SH_SIGCONTEXT_H
-
-struct sigcontext {
- unsigned long oldmask;
-
-#ifdef __SH5__
-
- unsigned long long sc_regs[63];
- unsigned long long sc_tregs[8];
- unsigned long long sc_pc;
- unsigned long long sc_sr;
-
- unsigned long long sc_fpregs[32];
- unsigned int sc_fpscr;
- unsigned int sc_fpvalid;
-#else
-
- unsigned long sc_regs[16];
- unsigned long sc_pc;
- unsigned long sc_pr;
- unsigned long sc_sr;
- unsigned long sc_gbr;
- unsigned long sc_mach;
- unsigned long sc_macl;
-
- unsigned long sc_fpregs[16];
- unsigned long sc_xfpregs[16];
- unsigned int sc_fpscr;
- unsigned int sc_fpul;
- unsigned int sc_ownedfp;
-#endif
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/siginfo.h b/libc/kernel/arch-sh/asm/siginfo.h
deleted file mode 100644
index 864960e..0000000
--- a/libc/kernel/arch-sh/asm/siginfo.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SIGINFO_H
-#define __ASM_SH_SIGINFO_H
-
-#include <asm-generic/siginfo.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/signal.h b/libc/kernel/arch-sh/asm/signal.h
deleted file mode 100644
index 5edf0d2..0000000
--- a/libc/kernel/arch-sh/asm/signal.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SIGNAL_H
-#define __ASM_SH_SIGNAL_H
-
-#include <linux/types.h>
-
-struct pt_regs;
-struct siginfo;
-
-#define NSIG 32
-typedef unsigned long sigset_t;
-
-#define SIGHUP 1
-#define SIGINT 2
-#define SIGQUIT 3
-#define SIGILL 4
-#define SIGTRAP 5
-#define SIGABRT 6
-#define SIGIOT 6
-#define SIGBUS 7
-#define SIGFPE 8
-#define SIGKILL 9
-#define SIGUSR1 10
-#define SIGSEGV 11
-#define SIGUSR2 12
-#define SIGPIPE 13
-#define SIGALRM 14
-#define SIGTERM 15
-#define SIGSTKFLT 16
-#define SIGCHLD 17
-#define SIGCONT 18
-#define SIGSTOP 19
-#define SIGTSTP 20
-#define SIGTTIN 21
-#define SIGTTOU 22
-#define SIGURG 23
-#define SIGXCPU 24
-#define SIGXFSZ 25
-#define SIGVTALRM 26
-#define SIGPROF 27
-#define SIGWINCH 28
-#define SIGIO 29
-#define SIGPOLL SIGIO
-
-#define SIGPWR 30
-#define SIGSYS 31
-#define SIGUNUSED 31
-
-#define SIGRTMIN 32
-#define SIGRTMAX _NSIG
-
-#define SA_NOCLDSTOP 0x00000001
-#define SA_NOCLDWAIT 0x00000002
-#define SA_SIGINFO 0x00000004
-#define SA_ONSTACK 0x08000000
-#define SA_RESTART 0x10000000
-#define SA_NODEFER 0x40000000
-#define SA_RESETHAND 0x80000000
-
-#define SA_NOMASK SA_NODEFER
-#define SA_ONESHOT SA_RESETHAND
-
-#define SA_RESTORER 0x04000000
-
-#define SS_ONSTACK 1
-#define SS_DISABLE 2
-
-#define MINSIGSTKSZ 2048
-#define SIGSTKSZ 8192
-
-#include <asm-generic/signal.h>
-
-struct sigaction {
- union {
- __sighandler_t _sa_handler;
- void (*_sa_sigaction)(int, struct siginfo *, void *);
- } _u;
- sigset_t sa_mask;
- unsigned long sa_flags;
- void (*sa_restorer)(void);
-};
-
-#define sa_handler _u._sa_handler
-#define sa_sigaction _u._sa_sigaction
-
-typedef struct sigaltstack {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
-} stack_t;
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/smc37c93x.h b/libc/kernel/arch-sh/asm/smc37c93x.h
deleted file mode 100644
index 7d2f393..0000000
--- a/libc/kernel/arch-sh/asm/smc37c93x.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SMC37C93X_H
-#define __ASM_SH_SMC37C93X_H
-
-#define FDC_PRIMARY_BASE 0x3f0
-#define IDE1_PRIMARY_BASE 0x1f0
-#define IDE1_SECONDARY_BASE 0x170
-#define PARPORT_PRIMARY_BASE 0x378
-#define COM1_PRIMARY_BASE 0x2f8
-#define COM2_PRIMARY_BASE 0x3f8
-#define RTC_PRIMARY_BASE 0x070
-#define KBC_PRIMARY_BASE 0x060
-#define AUXIO_PRIMARY_BASE 0x000  
-
-#define LDN_FDC 0
-#define LDN_IDE1 1
-#define LDN_IDE2 2
-#define LDN_PARPORT 3
-#define LDN_COM1 4
-#define LDN_COM2 5
-#define LDN_RTC 6
-#define LDN_KBC 7
-#define LDN_AUXIO 8
-
-#define CONFIG_PORT 0x3f0
-#define INDEX_PORT CONFIG_PORT
-#define DATA_PORT 0x3f1
-#define CONFIG_ENTER 0x55
-#define CONFIG_EXIT 0xaa
-
-#define CURRENT_LDN_INDEX 0x07
-#define POWER_CONTROL_INDEX 0x22
-#define ACTIVATE_INDEX 0x30
-#define IO_BASE_HI_INDEX 0x60
-#define IO_BASE_LO_INDEX 0x61
-#define IRQ_SELECT_INDEX 0x70
-#define DMA_SELECT_INDEX 0x74
-
-#define GPIO46_INDEX 0xc6
-#define GPIO47_INDEX 0xc7
-
-#define UART_RBR 0x0  
-#define UART_THR 0x0  
-#define UART_IER 0x2  
-#define UART_IIR 0x4  
-#define UART_FCR 0x4  
-#define UART_LCR 0x6  
-#define UART_MCR 0x8  
-#define UART_LSR 0xa  
-#define UART_MSR 0xc  
-#define UART_SCR 0xe  
-#define UART_DLL 0x0  
-#define UART_DLM 0x2  
-
-#ifndef __ASSEMBLY__
-typedef struct uart_reg {
- volatile __u16 rbr;
- volatile __u16 ier;
- volatile __u16 iir;
- volatile __u16 lcr;
- volatile __u16 mcr;
- volatile __u16 lsr;
- volatile __u16 msr;
- volatile __u16 scr;
-} uart_reg;
-#endif
-
-#define thr rbr
-#define tcr iir
-
-#define dll rbr
-#define dlm ier
-#define fcr iir
-
-#define IER_ERDAI 0x0100  
-#define IER_ETHREI 0x0200  
-#define IER_ELSI 0x0400  
-#define IER_EMSI 0x0800  
-
-#define IIR_IP 0x0100  
-#define IIR_IIB0 0x0200  
-#define IIR_IIB1 0x0400  
-#define IIR_IIB2 0x0800  
-#define IIR_FIFO 0xc000  
-
-#define FCR_FEN 0x0100  
-#define FCR_RFRES 0x0200  
-#define FCR_TFRES 0x0400  
-#define FCR_DMA 0x0800  
-#define FCR_RTL 0x4000  
-#define FCR_RTM 0x8000  
-
-#define LCR_WLS0 0x0100  
-#define LCR_WLS1 0x0200  
-#define LCR_STB 0x0400  
-#define LCR_PEN 0x0800  
-#define LCR_EPS 0x1000  
-#define LCR_SP 0x2000  
-#define LCR_SB 0x4000  
-#define LCR_DLAB 0x8000  
-
-#define MCR_DTR 0x0100  
-#define MCR_RTS 0x0200  
-#define MCR_OUT1 0x0400  
-#define MCR_IRQEN 0x0800  
-#define MCR_LOOP 0x1000  
-
-#define LSR_DR 0x0100  
-#define LSR_OE 0x0200  
-#define LSR_PE 0x0400  
-#define LSR_FE 0x0800  
-#define LSR_BI 0x1000  
-#define LSR_THRE 0x2000  
-#define LSR_TEMT 0x4000  
-#define LSR_FIFOE 0x8000  
-
-#define MSR_DCTS 0x0100  
-#define MSR_DDSR 0x0200  
-#define MSR_TERI 0x0400  
-#define MSR_DDCD 0x0800  
-#define MSR_CTS 0x1000  
-#define MSR_DSR 0x2000  
-#define MSR_RI 0x4000  
-#define MSR_DCD 0x8000  
-
-#define UART_CLK (1843200)  
-#define UART_BAUD(x) (UART_CLK / (16 * (x)))
-
-#define RTC_SECONDS 0
-#define RTC_SECONDS_ALARM 1
-#define RTC_MINUTES 2
-#define RTC_MINUTES_ALARM 3
-#define RTC_HOURS 4
-#define RTC_HOURS_ALARM 5
-#define RTC_DAY_OF_WEEK 6
-#define RTC_DAY_OF_MONTH 7
-#define RTC_MONTH 8
-#define RTC_YEAR 9
-#define RTC_FREQ_SELECT 10
-#define RTC_UIP 0x80
-#define RTC_DIV_CTL 0x70
-
-#define RTC_OSC_ENABLE 0x20
-#define RTC_OSC_DISABLE 0x00
-#define RTC_CONTROL 11
-#define RTC_SET 0x80
-#define RTC_PIE 0x40
-#define RTC_AIE 0x20
-#define RTC_UIE 0x10
-#define RTC_SQWE 0x08
-#define RTC_DM_BINARY 0x04
-#define RTC_24H 0x02
-#define RTC_DST_EN 0x01
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/smp.h b/libc/kernel/arch-sh/asm/smp.h
deleted file mode 100644
index e377a6b..0000000
--- a/libc/kernel/arch-sh/asm/smp.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SMP_H
-#define __ASM_SH_SMP_H
-
-#include <linux/bitops.h>
-#include <linux/cpumask.h>
-
-#define hard_smp_processor_id() (0)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/snapgear.h b/libc/kernel/arch-sh/asm/snapgear.h
deleted file mode 100644
index e0e72e2..0000000
--- a/libc/kernel/arch-sh/asm/snapgear.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_IO_SNAPGEAR_H
-#define _ASM_SH_IO_SNAPGEAR_H
-
-#define IRL0_IRQ 2
-#define IRL0_PRIORITY 13
-
-#define IRL1_IRQ 5
-#define IRL1_PRIORITY 10
-
-#define IRL2_IRQ 8
-#define IRL2_PRIORITY 7
-
-#define IRL3_IRQ 11
-#define IRL3_PRIORITY 4
-
-#define __IO_PREFIX snapgear
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/socket.h b/libc/kernel/arch-sh/asm/socket.h
deleted file mode 100644
index ad1031d..0000000
--- a/libc/kernel/arch-sh/asm/socket.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SOCKET_H
-#define __ASM_SH_SOCKET_H
-
-#include <asm/sockios.h>
-
-#define SOL_SOCKET 1
-
-#define SO_DEBUG 1
-#define SO_REUSEADDR 2
-#define SO_TYPE 3
-#define SO_ERROR 4
-#define SO_DONTROUTE 5
-#define SO_BROADCAST 6
-#define SO_SNDBUF 7
-#define SO_RCVBUF 8
-#define SO_RCVBUFFORCE 32
-#define SO_SNDBUFFORCE 33
-#define SO_KEEPALIVE 9
-#define SO_OOBINLINE 10
-#define SO_NO_CHECK 11
-#define SO_PRIORITY 12
-#define SO_LINGER 13
-#define SO_BSDCOMPAT 14
-
-#define SO_PASSCRED 16
-#define SO_PEERCRED 17
-#define SO_RCVLOWAT 18
-#define SO_SNDLOWAT 19
-#define SO_RCVTIMEO 20
-#define SO_SNDTIMEO 21
-
-#define SO_SECURITY_AUTHENTICATION 22
-#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
-#define SO_SECURITY_ENCRYPTION_NETWORK 24
-
-#define SO_BINDTODEVICE 25
-
-#define SO_ATTACH_FILTER 26
-#define SO_DETACH_FILTER 27
-
-#define SO_PEERNAME 28
-#define SO_TIMESTAMP 29
-#define SCM_TIMESTAMP SO_TIMESTAMP
-
-#define SO_ACCEPTCONN 30
-
-#define SO_PEERSEC 31
-#define SO_PASSSEC 34
-#define SO_TIMESTAMPNS 35
-#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
-
-#define SO_MARK 36
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/sockios.h b/libc/kernel/arch-sh/asm/sockios.h
deleted file mode 100644
index fd88099..0000000
--- a/libc/kernel/arch-sh/asm/sockios.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SOCKIOS_H
-#define __ASM_SH_SOCKIOS_H
-
-#define FIOGETOWN _IOR('f', 123, int)
-#define FIOSETOWN _IOW('f', 124, int)
-
-#define SIOCATMARK _IOR('s', 7, int)
-#define SIOCSPGRP _IOW('s', 8, pid_t)
-#define SIOCGPGRP _IOR('s', 9, pid_t)
-
-#define SIOCGSTAMP _IOR('s', 100, struct timeval)  
-#define SIOCGSTAMPNS _IOR('s', 101, struct timespec)  
-#endif
diff --git a/libc/kernel/arch-sh/asm/sparsemem.h b/libc/kernel/arch-sh/asm/sparsemem.h
deleted file mode 100644
index b316514..0000000
--- a/libc/kernel/arch-sh/asm/sparsemem.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SPARSEMEM_H
-#define __ASM_SH_SPARSEMEM_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/spi.h b/libc/kernel/arch-sh/asm/spi.h
deleted file mode 100644
index e8899b2..0000000
--- a/libc/kernel/arch-sh/asm/spi.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SPI_H__
-#define __ASM_SPI_H__
-
-struct sh_spi_info;
-
-struct sh_spi_info {
- int bus_num;
- int num_chipselect;
-
- void (*chip_select)(struct sh_spi_info *spi, int cs, int state);
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/spinlock.h b/libc/kernel/arch-sh/asm/spinlock.h
deleted file mode 100644
index 2eeb198..0000000
--- a/libc/kernel/arch-sh/asm/spinlock.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SPINLOCK_H
-#define __ASM_SH_SPINLOCK_H
-
-#define __raw_spin_is_locked(x) ((x)->lock <= 0)
-#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock)
-#define __raw_spin_unlock_wait(x)   do { cpu_relax(); } while ((x)->lock)
-
-#define __raw_read_can_lock(x) ((x)->lock > 0)
-#define __raw_write_can_lock(x) ((x)->lock == RW_LOCK_BIAS)
-#define _raw_spin_relax(lock) cpu_relax()
-#define _raw_read_relax(lock) cpu_relax()
-#define _raw_write_relax(lock) cpu_relax()
-#endif
diff --git a/libc/kernel/arch-sh/asm/spinlock_types.h b/libc/kernel/arch-sh/asm/spinlock_types.h
deleted file mode 100644
index e21fc1e..0000000
--- a/libc/kernel/arch-sh/asm/spinlock_types.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SPINLOCK_TYPES_H
-#define __ASM_SH_SPINLOCK_TYPES_H
-
-#ifndef __LINUX_SPINLOCK_TYPES_H
-#error "please don't include this file directly"
-#endif
-
-typedef struct {
- volatile unsigned int lock;
-} raw_spinlock_t;
-
-#define __RAW_SPIN_LOCK_UNLOCKED { 1 }
-
-typedef struct {
- volatile unsigned int lock;
-} raw_rwlock_t;
-
-#define RW_LOCK_BIAS 0x01000000
-#define __RAW_RW_LOCK_UNLOCKED { RW_LOCK_BIAS }
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/stat.h b/libc/kernel/arch-sh/asm/stat.h
deleted file mode 100644
index 1360798..0000000
--- a/libc/kernel/arch-sh/asm/stat.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_STAT_H
-#define __ASM_SH_STAT_H
-
-struct __old_kernel_stat {
- unsigned short st_dev;
- unsigned short st_ino;
- unsigned short st_mode;
- unsigned short st_nlink;
- unsigned short st_uid;
- unsigned short st_gid;
- unsigned short st_rdev;
- unsigned long st_size;
- unsigned long st_atime;
- unsigned long st_mtime;
- unsigned long st_ctime;
-};
-
-#ifdef __SH5__
-struct 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;
- unsigned long st_atime;
- unsigned long st_atime_nsec;
- unsigned long st_mtime;
- unsigned long st_mtime_nsec;
- unsigned long st_ctime;
- unsigned long st_ctime_nsec;
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-struct 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;
- unsigned long __pad4;
-
- unsigned long st_atime;
- unsigned long st_atime_nsec;
-
- unsigned long st_mtime;
- unsigned long st_mtime_nsec;
-
- unsigned long st_ctime;
- unsigned long st_ctime_nsec;
-
- unsigned long __unused1;
- unsigned long __unused2;
-};
-#else
-struct stat {
- unsigned long st_dev;
- unsigned long st_ino;
- unsigned short st_mode;
- unsigned short st_nlink;
- unsigned short st_uid;
- unsigned short st_gid;
- unsigned long st_rdev;
- unsigned long st_size;
- unsigned long st_blksize;
- unsigned long st_blocks;
- unsigned long st_atime;
- unsigned long st_atime_nsec;
- unsigned long st_mtime;
- unsigned long st_mtime_nsec;
- unsigned long st_ctime;
- unsigned long st_ctime_nsec;
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-struct stat64 {
- unsigned long long st_dev;
- unsigned char __pad0[4];
-
-#define STAT64_HAS_BROKEN_ST_INO 1
- unsigned long __st_ino;
-
- unsigned int st_mode;
- unsigned int st_nlink;
-
- unsigned long st_uid;
- unsigned long st_gid;
-
- unsigned long long st_rdev;
- unsigned char __pad3[4];
-
- long long st_size;
- unsigned long st_blksize;
-
- unsigned long long st_blocks;
-
- unsigned long st_atime;
- unsigned long st_atime_nsec;
-
- unsigned long st_mtime;
- unsigned long st_mtime_nsec;
-
- unsigned long st_ctime;
- unsigned long st_ctime_nsec;
-
- unsigned long long st_ino;
-};
-
-#define STAT_HAVE_NSEC 1
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/statfs.h b/libc/kernel/arch-sh/asm/statfs.h
deleted file mode 100644
index 32a335b..0000000
--- a/libc/kernel/arch-sh/asm/statfs.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_STATFS_H
-#define __ASM_SH_STATFS_H
-
-#include <asm-generic/statfs.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/string.h b/libc/kernel/arch-sh/asm/string.h
deleted file mode 100644
index ba7b12b..0000000
--- a/libc/kernel/arch-sh/asm/string.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include "string_32.h"
diff --git a/libc/kernel/arch-sh/asm/string_32.h b/libc/kernel/arch-sh/asm/string_32.h
deleted file mode 100644
index 70f2939..0000000
--- a/libc/kernel/arch-sh/asm/string_32.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_STRING_H
-#define __ASM_SH_STRING_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/string_64.h b/libc/kernel/arch-sh/asm/string_64.h
deleted file mode 100644
index a7f5128..0000000
--- a/libc/kernel/arch-sh/asm/string_64.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_STRING_64_H
-#define __ASM_SH_STRING_64_H
-
-#define __HAVE_ARCH_MEMCPY
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/system.h b/libc/kernel/arch-sh/asm/system.h
deleted file mode 100644
index 8b1981e..0000000
--- a/libc/kernel/arch-sh/asm/system.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SYSTEM_H
-#define __ASM_SH_SYSTEM_H
-
-#include <linux/irqflags.h>
-#include <linux/compiler.h>
-#include <linux/linkage.h>
-#include <asm/types.h>
-#include <asm/ptrace.h>
-
-#define AT_VECTOR_SIZE_ARCH 5  
-
-#define __icbi()  {   unsigned long __addr;   __addr = 0xa8000000;   __asm__ __volatile__(   "icbi   %0\n\t"   :     : "m" (__m(__addr)));  }
-
-#define mb() __asm__ __volatile__ ("synco": : :"memory")
-#define rmb() mb()
-#define wmb() __asm__ __volatile__ ("synco": : :"memory")
-#define ctrl_barrier() __icbi()
-#define read_barrier_depends() do { } while(0)
-
-#define smp_mb() barrier()
-#define smp_rmb() barrier()
-#define smp_wmb() barrier()
-#define smp_read_barrier_depends() do { } while(0)
-
-#define set_mb(var, value) do { (void)xchg(&var, value); } while (0)
-
-#include <asm/cmpxchg-irq.h>
-
-#define __xchg(ptr, x, size)  ({   unsigned long __xchg__res;   volatile void *__xchg_ptr = (ptr);   switch (size) {   case 4:   __xchg__res = xchg_u32(__xchg_ptr, x);   break;   case 1:   __xchg__res = xchg_u8(__xchg_ptr, x);   break;   default:   __xchg_called_with_bad_pointer();   __xchg__res = x;   break;   }     __xchg__res;  })
-
-#define xchg(ptr,x)   ((__typeof__(*(ptr)))__xchg((ptr),(unsigned long)(x), sizeof(*(ptr))))
-
-#define __HAVE_ARCH_CMPXCHG 1
-
-#define cmpxchg(ptr,o,n)   ({   __typeof__(*(ptr)) _o_ = (o);   __typeof__(*(ptr)) _n_ = (n);   (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_,   (unsigned long)_n_, sizeof(*(ptr)));   })
-
-#define instruction_size(insn) (2)
-
-#define BUILD_TRAP_HANDLER(name)  asmlinkage void name##_trap_handler(unsigned long r4, unsigned long r5,   unsigned long r6, unsigned long r7,   struct pt_regs __regs)
-
-#define TRAP_HANDLER_DECL   struct pt_regs *regs = RELOC_HIDE(&__regs, 0);   unsigned int vec = regs->tra;   (void)vec;
-
-#define arch_align_stack(x) (x)
-
-struct mem_access {
- unsigned long (*from)(void *dst, const void *src, unsigned long cnt);
- unsigned long (*to)(void *dst, const void *src, unsigned long cnt);
-};
-
-#include "system_32.h"
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/system_32.h b/libc/kernel/arch-sh/asm/system_32.h
deleted file mode 100644
index 5151677..0000000
--- a/libc/kernel/arch-sh/asm/system_32.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SYSTEM_32_H
-#define __ASM_SH_SYSTEM_32_H
-
-#include <linux/types.h>
-
-struct task_struct *__switch_to(struct task_struct *prev,
- struct task_struct *next);
-
-#define switch_to(prev, next, last)  do {   register u32 *__ts1 __asm__ ("r1") = (u32 *)&prev->thread.sp;   register u32 *__ts2 __asm__ ("r2") = (u32 *)&prev->thread.pc;   register u32 *__ts4 __asm__ ("r4") = (u32 *)prev;   register u32 *__ts5 __asm__ ("r5") = (u32 *)next;   register u32 *__ts6 __asm__ ("r6") = (u32 *)&next->thread.sp;   register u32 __ts7 __asm__ ("r7") = next->thread.pc;   struct task_struct *__last;     __asm__ __volatile__ (   ".balign 4\n\t"   "stc.l	gbr, @-r15\n\t"   "sts.l	pr, @-r15\n\t"   "mov.l	r8, @-r15\n\t"   "mov.l	r9, @-r15\n\t"   "mov.l	r10, @-r15\n\t"   "mov.l	r11, @-r15\n\t"   "mov.l	r12, @-r15\n\t"   "mov.l	r13, @-r15\n\t"   "mov.l	r14, @-r15\n\t"   "mov.l	r15, @r1\t! save SP\n\t"   "mov.l	@r6, r15\t! change to new stack\n\t"   "mova	1f, %0\n\t"   "mov.l	%0, @r2\t! save PC\n\t"   "mov.l	2f, %0\n\t"   "jmp	@%0\t! call __switch_to\n\t"   " lds	r7, pr\t!  with return to new PC\n\t"   ".balign	4\n"   "2:\n\t"   ".long	__switch_to\n"   "1:\n\t"   "mov.l	@r15+, r14\n\t"   "mov.l	@r15+, r13\n\t"   "mov.l	@r15+, r12\n\t"   "mov.l	@r15+, r11\n\t"   "mov.l	@r15+, r10\n\t"   "mov.l	@r15+, r9\n\t"   "mov.l	@r15+, r8\n\t"   "lds.l	@r15+, pr\n\t"   "ldc.l	@r15+, gbr\n\t"   : "=z" (__last)   : "r" (__ts1), "r" (__ts2), "r" (__ts4),   "r" (__ts5), "r" (__ts6), "r" (__ts7)   : "r3", "t");     last = __last;  } while (0)
-
-#define __uses_jump_to_uncached __attribute__ ((__section__ (".uncached.text")))
-
-#define jump_to_uncached()  do {   unsigned long __dummy;     __asm__ __volatile__(   "mova	1f, %0\n\t"   "add	%1, %0\n\t"   "jmp	@%0\n\t"   " nop\n\t"   ".balign 4\n"   "1:"   : "=&z" (__dummy)   : "r" (cached_to_uncached));  } while (0)
-
-#define back_to_cached()  do {   unsigned long __dummy;   ctrl_barrier();   __asm__ __volatile__(   "mov.l	1f, %0\n\t"   "jmp	@%0\n\t"   " nop\n\t"   ".balign 4\n"   "1:	.long 2f\n"   "2:"   : "=&r" (__dummy));  } while (0)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/system_64.h b/libc/kernel/arch-sh/asm/system_64.h
deleted file mode 100644
index 1bc4710..0000000
--- a/libc/kernel/arch-sh/asm/system_64.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SYSTEM_64_H
-#define __ASM_SH_SYSTEM_64_H
-
-#include <asm/processor.h>
-
-struct task_struct *sh64_switch_to(struct task_struct *prev,
- struct thread_struct *prev_thread,
- struct task_struct *next,
- struct thread_struct *next_thread);
-
-#define switch_to(prev,next,last)  do {   if (last_task_used_math != next) {   struct pt_regs *regs = next->thread.uregs;   if (regs) regs->sr |= SR_FD;   }   last = sh64_switch_to(prev, &prev->thread, next,   &next->thread);  } while (0)
-
-#define __uses_jump_to_uncached
-
-#define jump_to_uncached() do { } while (0)
-#define back_to_cached() do { } while (0)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/systemh7751.h b/libc/kernel/arch-sh/asm/systemh7751.h
deleted file mode 100644
index b2dfc35..0000000
--- a/libc/kernel/arch-sh/asm/systemh7751.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_SYSTEMH_7751SYSTEMH_H
-#define __ASM_SH_SYSTEMH_7751SYSTEMH_H
-
-#define PA_ROM 0x00000000  
-#define PA_ROM_SIZE 0x00400000  
-#define PA_FROM 0x01000000  
-#define PA_FROM_SIZE 0x00400000  
-#define PA_EXT1 0x04000000
-#define PA_EXT1_SIZE 0x04000000
-#define PA_EXT2 0x08000000
-#define PA_EXT2_SIZE 0x04000000
-#define PA_SDRAM 0x0c000000
-#define PA_SDRAM_SIZE 0x04000000
-
-#define PA_EXT4 0x12000000
-#define PA_EXT4_SIZE 0x02000000
-#define PA_EXT5 0x14000000
-#define PA_EXT5_SIZE 0x04000000
-#define PA_PCIC 0x18000000  
-
-#define PA_DIPSW0 0xb9000000  
-#define PA_DIPSW1 0xb9000002  
-#define PA_LED 0xba000000  
-#define PA_BCR 0xbb000000  
-
-#define PA_MRSHPC 0xb83fffe0  
-#define PA_MRSHPC_MW1 0xb8400000  
-#define PA_MRSHPC_MW2 0xb8500000  
-#define PA_MRSHPC_IO 0xb8600000  
-#define MRSHPC_MODE (PA_MRSHPC + 4)
-#define MRSHPC_OPTION (PA_MRSHPC + 6)
-#define MRSHPC_CSR (PA_MRSHPC + 8)
-#define MRSHPC_ISR (PA_MRSHPC + 10)
-#define MRSHPC_ICR (PA_MRSHPC + 12)
-#define MRSHPC_CPWCR (PA_MRSHPC + 14)
-#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
-#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
-#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
-#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
-#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
-#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
-#define MRSHPC_CDCR (PA_MRSHPC + 28)
-#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
-
-#define BCR_ILCRA (PA_BCR + 0)
-#define BCR_ILCRB (PA_BCR + 2)
-#define BCR_ILCRC (PA_BCR + 4)
-#define BCR_ILCRD (PA_BCR + 6)
-#define BCR_ILCRE (PA_BCR + 8)
-#define BCR_ILCRF (PA_BCR + 10)
-#define BCR_ILCRG (PA_BCR + 12)
-
-#define IRQ_79C973 13
-
-#define __IO_PREFIX sh7751systemh
-#include <asm/io_generic.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/termbits.h b/libc/kernel/arch-sh/asm/termbits.h
deleted file mode 100644
index 97b26db..0000000
--- a/libc/kernel/arch-sh/asm/termbits.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TERMBITS_H
-#define __ASM_SH_TERMBITS_H
-
-#include <linux/posix_types.h>
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-#define NCCS 19
-struct termios {
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
- cc_t c_line;
- cc_t c_cc[NCCS];
-};
-
-struct termios2 {
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
- cc_t c_line;
- cc_t c_cc[NCCS];
- speed_t c_ispeed;
- speed_t c_ospeed;
-};
-
-struct ktermios {
- tcflag_t c_iflag;
- tcflag_t c_oflag;
- tcflag_t c_cflag;
- tcflag_t c_lflag;
- cc_t c_line;
- cc_t c_cc[NCCS];
- speed_t c_ispeed;
- speed_t c_ospeed;
-};
-
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IUCLC 0001000
-#define IXON 0002000
-#define IXANY 0004000
-#define IXOFF 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-#define OPOST 0000001
-#define OLCUC 0000002
-#define ONLCR 0000004
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
-#define NLDLY 0000400
-#define NL0 0000000
-#define NL1 0000400
-#define CRDLY 0003000
-#define CR0 0000000
-#define CR1 0001000
-#define CR2 0002000
-#define CR3 0003000
-#define TABDLY 0014000
-#define TAB0 0000000
-#define TAB1 0004000
-#define TAB2 0010000
-#define TAB3 0014000
-#define XTABS 0014000
-#define BSDLY 0020000
-#define BS0 0000000
-#define BS1 0020000
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
-#define FFDLY 0100000
-#define FF0 0000000
-#define FF1 0100000
-
-#define CBAUD 0010017
-#define B0 0000000  
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-#define EXTA B19200
-#define EXTB B38400
-#define CSIZE 0000060
-#define CS5 0000000
-#define CS6 0000020
-#define CS7 0000040
-#define CS8 0000060
-#define CSTOPB 0000100
-#define CREAD 0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL 0002000
-#define CLOCAL 0004000
-#define CBAUDEX 0010000
-#define BOTHER 0010000
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-#define CIBAUD 002003600000  
-#define CMSPAR 010000000000  
-#define CRTSCTS 020000000000  
-
-#define IBSHIFT 16  
-
-#define ISIG 0000001
-#define ICANON 0000002
-#define XCASE 0000004
-#define ECHO 0000010
-#define ECHOE 0000020
-#define ECHOK 0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define ECHOCTL 0001000
-#define ECHOPRT 0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
-#define IEXTEN 0100000
-
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/termios.h b/libc/kernel/arch-sh/asm/termios.h
deleted file mode 100644
index fb31cbe..0000000
--- a/libc/kernel/arch-sh/asm/termios.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TERMIOS_H
-#define __ASM_SH_TERMIOS_H
-
-#include <asm/termbits.h>
-#include <asm/ioctls.h>
-
-struct winsize {
- unsigned short ws_row;
- unsigned short ws_col;
- unsigned short ws_xpixel;
- unsigned short ws_ypixel;
-};
-
-#define NCC 8
-struct termio {
- unsigned short c_iflag;
- unsigned short c_oflag;
- unsigned short c_cflag;
- unsigned short c_lflag;
- unsigned char c_line;
- unsigned char c_cc[NCC];
-};
-
-#define TIOCM_LE 0x001
-#define TIOCM_DTR 0x002
-#define TIOCM_RTS 0x004
-#define TIOCM_ST 0x008
-#define TIOCM_SR 0x010
-#define TIOCM_CTS 0x020
-#define TIOCM_CAR 0x040
-#define TIOCM_RNG 0x080
-#define TIOCM_DSR 0x100
-#define TIOCM_CD TIOCM_CAR
-#define TIOCM_RI TIOCM_RNG
-#define TIOCM_OUT1 0x2000
-#define TIOCM_OUT2 0x4000
-#define TIOCM_LOOP 0x8000
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/thread_info.h b/libc/kernel/arch-sh/asm/thread_info.h
deleted file mode 100644
index 03ef26d..0000000
--- a/libc/kernel/arch-sh/asm/thread_info.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_THREAD_INFO_H
-#define __ASM_SH_THREAD_INFO_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/timer.h b/libc/kernel/arch-sh/asm/timer.h
deleted file mode 100644
index ff298f3..0000000
--- a/libc/kernel/arch-sh/asm/timer.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TIMER_H
-#define __ASM_SH_TIMER_H
-
-#include <linux/sysdev.h>
-#include <linux/clocksource.h>
-#include <cpu/timer.h>
-
-struct sys_timer_ops {
- int (*init)(void);
- int (*start)(void);
- int (*stop)(void);
- cycle_t (*read)(void);
-};
-
-struct sys_timer {
- const char *name;
-
- struct sys_device dev;
- struct sys_timer_ops *ops;
-};
-
-#define TICK_SIZE (tick_nsec / 1000)
-
-struct sys_timer *get_sys_timer(void);
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/timex.h b/libc/kernel/arch-sh/asm/timex.h
deleted file mode 100644
index 9003c78..0000000
--- a/libc/kernel/arch-sh/asm/timex.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TIMEX_H
-#define __ASM_SH_TIMEX_H
-
-#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4)  
-
-typedef unsigned long long cycles_t;
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/titan.h b/libc/kernel/arch-sh/asm/titan.h
deleted file mode 100644
index 71d2e8e..0000000
--- a/libc/kernel/arch-sh/asm/titan.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_TITAN_H
-#define _ASM_SH_TITAN_H
-
-#define __IO_PREFIX titan
-#include <asm/io_generic.h>
-
-#define TITAN_IRQ_WAN 2  
-#define TITAN_IRQ_LAN 5  
-#define TITAN_IRQ_MPCIA 8  
-#define TITAN_IRQ_MPCIB 11  
-#define TITAN_IRQ_USB 11  
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/tlb.h b/libc/kernel/arch-sh/asm/tlb.h
deleted file mode 100644
index 602250b..0000000
--- a/libc/kernel/arch-sh/asm/tlb.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TLB_H
-#define __ASM_SH_TLB_H
-
-#ifndef __ASSEMBLY__
-
-#define tlb_start_vma(tlb, vma)   flush_cache_range(vma, vma->vm_start, vma->vm_end)
-
-#define tlb_end_vma(tlb, vma)   flush_tlb_range(vma, vma->vm_start, vma->vm_end)
-
-#define __tlb_remove_tlb_entry(tlb, pte, address) do { } while (0)
-
-#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
-
-#include <linux/pagemap.h>
-#include <asm-generic/tlb.h>
-
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/tlb_64.h b/libc/kernel/arch-sh/asm/tlb_64.h
deleted file mode 100644
index 77c54eb..0000000
--- a/libc/kernel/arch-sh/asm/tlb_64.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TLB_64_H
-#define __ASM_SH_TLB_64_H
-
-#define ITLB_FIXED 0x00000000  
-#define ITLB_LAST_VAR_UNRESTRICTED 0x000003F0  
-
-#define DTLB_FIXED 0x00800000  
-#define DTLB_LAST_VAR_UNRESTRICTED 0x008003F0  
-
-#ifndef __ASSEMBLY__
-
-#define for_each_dtlb_entry(tlb)   for (tlb = cpu_data->dtlb.first;   tlb <= cpu_data->dtlb.last;   tlb += cpu_data->dtlb.step)
-
-#define for_each_itlb_entry(tlb)   for (tlb = cpu_data->itlb.first;   tlb <= cpu_data->itlb.last;   tlb += cpu_data->itlb.step)
-
-#endif
-#endif
diff --git a/libc/kernel/arch-sh/asm/tlbflush.h b/libc/kernel/arch-sh/asm/tlbflush.h
deleted file mode 100644
index 7d61293..0000000
--- a/libc/kernel/arch-sh/asm/tlbflush.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TLBFLUSH_H
-#define __ASM_SH_TLBFLUSH_H
-
-#define flush_tlb_all() local_flush_tlb_all()
-#define flush_tlb_mm(mm) local_flush_tlb_mm(mm)
-#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page)
-#define flush_tlb_one(asid, page) local_flush_tlb_one(asid, page)
-
-#define flush_tlb_range(vma, start, end)   local_flush_tlb_range(vma, start, end)
-
-#define flush_tlb_kernel_range(start, end)   local_flush_tlb_kernel_range(start, end)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/topology.h b/libc/kernel/arch-sh/asm/topology.h
deleted file mode 100644
index 1b5461b..0000000
--- a/libc/kernel/arch-sh/asm/topology.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_TOPOLOGY_H
-#define _ASM_SH_TOPOLOGY_H
-
-#include <asm-generic/topology.h>
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/types.h b/libc/kernel/arch-sh/asm/types.h
deleted file mode 100644
index 1febd0d..0000000
--- a/libc/kernel/arch-sh/asm/types.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_TYPES_H
-#define __ASM_SH_TYPES_H
-
-#ifndef __ASSEMBLY__
-
-typedef unsigned short umode_t;
-
-typedef __signed__ char __s8;
-typedef unsigned char __u8;
-
-typedef __signed__ short __s16;
-typedef unsigned short __u16;
-
-typedef __signed__ int __s32;
-typedef unsigned int __u32;
-
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
-#endif
-
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/uaccess.h b/libc/kernel/arch-sh/asm/uaccess.h
deleted file mode 100644
index 8b27346..0000000
--- a/libc/kernel/arch-sh/asm/uaccess.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UACCESS_H
-#define __ASM_SH_UACCESS_H
-
-#include <linux/errno.h>
-#include <linux/sched.h>
-#include <asm/segment.h>
-
-#define VERIFY_READ 0
-#define VERIFY_WRITE 1
-
-#define __addr_ok(addr)   ((unsigned long __force)(addr) < current_thread_info()->addr_limit.seg)
-
-#define __access_ok(addr, size)   (__addr_ok((addr) + (size)))
-#define access_ok(type, addr, size)   (__chk_user_ptr(addr),   __access_ok((unsigned long __force)(addr), (size)))
-
-#define put_user(x,ptr) __put_user_check((x), (ptr), sizeof(*(ptr)))
-#define get_user(x,ptr) __get_user_check((x), (ptr), sizeof(*(ptr)))
-
-#define __put_user(x,ptr) __put_user_nocheck((x), (ptr), sizeof(*(ptr)))
-#define __get_user(x,ptr) __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
-
-struct __large_struct { unsigned long buf[100]; };
-#define __m(x) (*(struct __large_struct __user *)(x))
-
-#define __get_user_nocheck(x,ptr,size)  ({   long __gu_err;   unsigned long __gu_val;   const __typeof__(*(ptr)) __user *__gu_addr = (ptr);   __chk_user_ptr(ptr);   __get_user_size(__gu_val, __gu_addr, (size), __gu_err);   (x) = (__typeof__(*(ptr)))__gu_val;   __gu_err;  })
-
-#define __get_user_check(x,ptr,size)  ({   long __gu_err = -EFAULT;   unsigned long __gu_val = 0;   const __typeof__(*(ptr)) *__gu_addr = (ptr);   if (likely(access_ok(VERIFY_READ, __gu_addr, (size))))   __get_user_size(__gu_val, __gu_addr, (size), __gu_err);   (x) = (__typeof__(*(ptr)))__gu_val;   __gu_err;  })
-
-#define __put_user_nocheck(x,ptr,size)  ({   long __pu_err;   __typeof__(*(ptr)) __user *__pu_addr = (ptr);   __typeof__(*(ptr)) __pu_val = x;   __chk_user_ptr(ptr);   __put_user_size(__pu_val, __pu_addr, (size), __pu_err);   __pu_err;  })
-
-#define __put_user_check(x,ptr,size)  ({   long __pu_err = -EFAULT;   __typeof__(*(ptr)) __user *__pu_addr = (ptr);   __typeof__(*(ptr)) __pu_val = x;   if (likely(access_ok(VERIFY_WRITE, __pu_addr, size)))   __put_user_size(__pu_val, __pu_addr, (size),   __pu_err);   __pu_err;  })
-
-#include "uaccess_32.h"
-
-#define __copy_to_user_inatomic __copy_to_user
-#define __copy_from_user_inatomic __copy_from_user
-
-#define clear_user(addr,n)  ({   void __user * __cl_addr = (addr);   unsigned long __cl_size = (n);     if (__cl_size && access_ok(VERIFY_WRITE,   ((unsigned long)(__cl_addr)), __cl_size))   __cl_size = __clear_user(__cl_addr, __cl_size);     __cl_size;  })
-
-#define strncpy_from_user(dest,src,count)  ({   unsigned long __sfu_src = (unsigned long)(src);   int __sfu_count = (int)(count);   long __sfu_res = -EFAULT;     if (__access_ok(__sfu_src, __sfu_count))   __sfu_res = __strncpy_from_user((unsigned long)(dest),   __sfu_src, __sfu_count);     __sfu_res;  })
-
-#define strlen_user(str) strnlen_user(str, ~0UL >> 1)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/uaccess_32.h b/libc/kernel/arch-sh/asm/uaccess_32.h
deleted file mode 100644
index af82591..0000000
--- a/libc/kernel/arch-sh/asm/uaccess_32.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UACCESS_32_H
-#define __ASM_SH_UACCESS_32_H
-
-#define __get_user_size(x,ptr,size,retval)  do {   retval = 0;   switch (size) {   case 1:   __get_user_asm(x, ptr, retval, "b");   break;   case 2:   __get_user_asm(x, ptr, retval, "w");   break;   case 4:   __get_user_asm(x, ptr, retval, "l");   break;   default:   __get_user_unknown();   break;   }  } while (0)
-
-#define __get_user_asm(x, addr, err, insn)  ({  __asm__ __volatile__(   "1:\n\t"   "mov." insn "	%2, %1\n\t"   "2:\n"   ".section	.fixup,\"ax\"\n"   "3:\n\t"   "mov	#0, %1\n\t"   "mov.l	4f, %0\n\t"   "jmp	@%0\n\t"   " mov	%3, %0\n\t"   ".balign	4\n"   "4:	.long	2b\n\t"   ".previous\n"   ".section	__ex_table,\"a\"\n\t"   ".long	1b, 3b\n\t"   ".previous"   :"=&r" (err), "=&r" (x)   :"m" (__m(addr)), "i" (-EFAULT), "0" (err)); })
-
-#define __put_user_size(x,ptr,size,retval)  do {   retval = 0;   switch (size) {   case 1:   __put_user_asm(x, ptr, retval, "b");   break;   case 2:   __put_user_asm(x, ptr, retval, "w");   break;   case 4:   __put_user_asm(x, ptr, retval, "l");   break;   case 8:   __put_user_u64(x, ptr, retval);   break;   default:   __put_user_unknown();   }  } while (0)
-
-#define __put_user_asm(x, addr, err, insn)  do {   __asm__ __volatile__ (   "1:\n\t"   "mov." insn "	%1, %2\n\t"   "2:\n"   ".section	.fixup,\"ax\"\n"   "3:\n\t"   "mov.l	4f, %0\n\t"   "jmp	@%0\n\t"   " mov	%3, %0\n\t"   ".balign	4\n"   "4:	.long	2b\n\t"   ".previous\n"   ".section	__ex_table,\"a\"\n\t"   ".long	1b, 3b\n\t"   ".previous"   : "=&r" (err)   : "r" (x), "m" (__m(addr)), "i" (-EFAULT),   "0" (err)   : "memory"   );  } while (0)
-
-#define __put_user_u64(val,addr,retval)  ({  __asm__ __volatile__(   "1:\n\t"   "mov.l	%R1,%2\n\t"   "mov.l	%S1,%T2\n\t"   "2:\n"   ".section	.fixup,\"ax\"\n"   "3:\n\t"   "mov.l	4f,%0\n\t"   "jmp	@%0\n\t"   " mov	%3,%0\n\t"   ".balign	4\n"   "4:	.long	2b\n\t"   ".previous\n"   ".section	__ex_table,\"a\"\n\t"   ".long	1b, 3b\n\t"   ".previous"   : "=r" (retval)   : "r" (val), "m" (__m(addr)), "i" (-EFAULT), "0" (retval)   : "memory"); })
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/uaccess_64.h b/libc/kernel/arch-sh/asm/uaccess_64.h
deleted file mode 100644
index b0661dc..0000000
--- a/libc/kernel/arch-sh/asm/uaccess_64.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UACCESS_64_H
-#define __ASM_SH_UACCESS_64_H
-
-#define __get_user_size(x,ptr,size,retval)  do {   retval = 0;   switch (size) {   case 1:   retval = __get_user_asm_b(x, ptr);   break;   case 2:   retval = __get_user_asm_w(x, ptr);   break;   case 4:   retval = __get_user_asm_l(x, ptr);   break;   case 8:   retval = __get_user_asm_q(x, ptr);   break;   default:   __get_user_unknown();   break;   }  } while (0)
-
-#define __put_user_size(x,ptr,size,retval)  do {   retval = 0;   switch (size) {   case 1:   retval = __put_user_asm_b(x, ptr);   break;   case 2:   retval = __put_user_asm_w(x, ptr);   break;   case 4:   retval = __put_user_asm_l(x, ptr);   break;   case 8:   retval = __put_user_asm_q(x, ptr);   break;   default:   __put_user_unknown();   }  } while (0)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/ubc.h b/libc/kernel/arch-sh/asm/ubc.h
deleted file mode 100644
index cde9ede..0000000
--- a/libc/kernel/arch-sh/asm/ubc.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UBC_H
-#define __ASM_SH_UBC_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/ucontext.h b/libc/kernel/arch-sh/asm/ucontext.h
deleted file mode 100644
index 815f79f..0000000
--- a/libc/kernel/arch-sh/asm/ucontext.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UCONTEXT_H
-#define __ASM_SH_UCONTEXT_H
-
-struct ucontext {
- unsigned long uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- struct sigcontext uc_mcontext;
- sigset_t uc_sigmask;
-};
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/unaligned.h b/libc/kernel/arch-sh/asm/unaligned.h
deleted file mode 100644
index 43ef01e..0000000
--- a/libc/kernel/arch-sh/asm/unaligned.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ASM_SH_UNALIGNED_H
-#define _ASM_SH_UNALIGNED_H
-
-#ifdef __LITTLE_ENDIAN__
-#include <linux/unaligned/le_struct.h>
-#include <linux/unaligned/be_byteshift.h>
-#include <linux/unaligned/generic.h>
-#define get_unaligned __get_unaligned_le
-#define put_unaligned __put_unaligned_le
-#else
-#include <linux/unaligned/be_struct.h>
-#include <linux/unaligned/le_byteshift.h>
-#include <linux/unaligned/generic.h>
-#define get_unaligned __get_unaligned_be
-#define put_unaligned __put_unaligned_be
-#endif
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/unistd.h b/libc/kernel/arch-sh/asm/unistd.h
deleted file mode 100644
index 02969d7..0000000
--- a/libc/kernel/arch-sh/asm/unistd.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifdef __SH5__
-#include "unistd_64.h"
-#else
-#include "unistd_32.h"
-#endif
diff --git a/libc/kernel/arch-sh/asm/unistd_32.h b/libc/kernel/arch-sh/asm/unistd_32.h
deleted file mode 100644
index 0db5074..0000000
--- a/libc/kernel/arch-sh/asm/unistd_32.h
+++ /dev/null
@@ -1,350 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UNISTD_H
-#define __ASM_SH_UNISTD_H
-
-#define __NR_restart_syscall 0
-#define __NR_exit 1
-#define __NR_fork 2
-#define __NR_read 3
-#define __NR_write 4
-#define __NR_open 5
-#define __NR_close 6
-#define __NR_waitpid 7
-#define __NR_creat 8
-#define __NR_link 9
-#define __NR_unlink 10
-#define __NR_execve 11
-#define __NR_chdir 12
-#define __NR_time 13
-#define __NR_mknod 14
-#define __NR_chmod 15
-#define __NR_lchown 16
-#define __NR_break 17
-#define __NR_oldstat 18
-#define __NR_lseek 19
-#define __NR_getpid 20
-#define __NR_mount 21
-#define __NR_umount 22
-#define __NR_setuid 23
-#define __NR_getuid 24
-#define __NR_stime 25
-#define __NR_ptrace 26
-#define __NR_alarm 27
-#define __NR_oldfstat 28
-#define __NR_pause 29
-#define __NR_utime 30
-#define __NR_stty 31
-#define __NR_gtty 32
-#define __NR_access 33
-#define __NR_nice 34
-#define __NR_ftime 35
-#define __NR_sync 36
-#define __NR_kill 37
-#define __NR_rename 38
-#define __NR_mkdir 39
-#define __NR_rmdir 40
-#define __NR_dup 41
-#define __NR_pipe 42
-#define __NR_times 43
-#define __NR_prof 44
-#define __NR_brk 45
-#define __NR_setgid 46
-#define __NR_getgid 47
-#define __NR_signal 48
-#define __NR_geteuid 49
-#define __NR_getegid 50
-#define __NR_acct 51
-#define __NR_umount2 52
-#define __NR_lock 53
-#define __NR_ioctl 54
-#define __NR_fcntl 55
-#define __NR_mpx 56
-#define __NR_setpgid 57
-#define __NR_ulimit 58
-#define __NR_oldolduname 59
-#define __NR_umask 60
-#define __NR_chroot 61
-#define __NR_ustat 62
-#define __NR_dup2 63
-#define __NR_getppid 64
-#define __NR_getpgrp 65
-#define __NR_setsid 66
-#define __NR_sigaction 67
-#define __NR_sgetmask 68
-#define __NR_ssetmask 69
-#define __NR_setreuid 70
-#define __NR_setregid 71
-#define __NR_sigsuspend 72
-#define __NR_sigpending 73
-#define __NR_sethostname 74
-#define __NR_setrlimit 75
-#define __NR_getrlimit 76  
-#define __NR_getrusage 77
-#define __NR_gettimeofday 78
-#define __NR_settimeofday 79
-#define __NR_getgroups 80
-#define __NR_setgroups 81
-#define __NR_select 82
-#define __NR_symlink 83
-#define __NR_oldlstat 84
-#define __NR_readlink 85
-#define __NR_uselib 86
-#define __NR_swapon 87
-#define __NR_reboot 88
-#define __NR_readdir 89
-#define __NR_mmap 90
-#define __NR_munmap 91
-#define __NR_truncate 92
-#define __NR_ftruncate 93
-#define __NR_fchmod 94
-#define __NR_fchown 95
-#define __NR_getpriority 96
-#define __NR_setpriority 97
-#define __NR_profil 98
-#define __NR_statfs 99
-#define __NR_fstatfs 100
-#define __NR_ioperm 101
-#define __NR_socketcall 102
-#define __NR_syslog 103
-#define __NR_setitimer 104
-#define __NR_getitimer 105
-#define __NR_stat 106
-#define __NR_lstat 107
-#define __NR_fstat 108
-#define __NR_olduname 109
-#define __NR_iopl 110
-#define __NR_vhangup 111
-#define __NR_idle 112
-#define __NR_vm86old 113
-#define __NR_wait4 114
-#define __NR_swapoff 115
-#define __NR_sysinfo 116
-#define __NR_ipc 117
-#define __NR_fsync 118
-#define __NR_sigreturn 119
-#define __NR_clone 120
-#define __NR_setdomainname 121
-#define __NR_uname 122
-#define __NR_modify_ldt 123
-#define __NR_adjtimex 124
-#define __NR_mprotect 125
-#define __NR_sigprocmask 126
-#define __NR_create_module 127
-#define __NR_init_module 128
-#define __NR_delete_module 129
-#define __NR_get_kernel_syms 130
-#define __NR_quotactl 131
-#define __NR_getpgid 132
-#define __NR_fchdir 133
-#define __NR_bdflush 134
-#define __NR_sysfs 135
-#define __NR_personality 136
-#define __NR_afs_syscall 137  
-#define __NR_setfsuid 138
-#define __NR_setfsgid 139
-#define __NR__llseek 140
-#define __NR_getdents 141
-#define __NR__newselect 142
-#define __NR_flock 143
-#define __NR_msync 144
-#define __NR_readv 145
-#define __NR_writev 146
-#define __NR_getsid 147
-#define __NR_fdatasync 148
-#define __NR__sysctl 149
-#define __NR_mlock 150
-#define __NR_munlock 151
-#define __NR_mlockall 152
-#define __NR_munlockall 153
-#define __NR_sched_setparam 154
-#define __NR_sched_getparam 155
-#define __NR_sched_setscheduler 156
-#define __NR_sched_getscheduler 157
-#define __NR_sched_yield 158
-#define __NR_sched_get_priority_max 159
-#define __NR_sched_get_priority_min 160
-#define __NR_sched_rr_get_interval 161
-#define __NR_nanosleep 162
-#define __NR_mremap 163
-#define __NR_setresuid 164
-#define __NR_getresuid 165
-#define __NR_vm86 166
-#define __NR_query_module 167
-#define __NR_poll 168
-#define __NR_nfsservctl 169
-#define __NR_setresgid 170
-#define __NR_getresgid 171
-#define __NR_prctl 172
-#define __NR_rt_sigreturn 173
-#define __NR_rt_sigaction 174
-#define __NR_rt_sigprocmask 175
-#define __NR_rt_sigpending 176
-#define __NR_rt_sigtimedwait 177
-#define __NR_rt_sigqueueinfo 178
-#define __NR_rt_sigsuspend 179
-#define __NR_pread64 180
-#define __NR_pwrite64 181
-#define __NR_chown 182
-#define __NR_getcwd 183
-#define __NR_capget 184
-#define __NR_capset 185
-#define __NR_sigaltstack 186
-#define __NR_sendfile 187
-#define __NR_streams1 188  
-#define __NR_streams2 189  
-#define __NR_vfork 190
-#define __NR_ugetrlimit 191  
-#define __NR_mmap2 192
-#define __NR_truncate64 193
-#define __NR_ftruncate64 194
-#define __NR_stat64 195
-#define __NR_lstat64 196
-#define __NR_fstat64 197
-#define __NR_lchown32 198
-#define __NR_getuid32 199
-#define __NR_getgid32 200
-#define __NR_geteuid32 201
-#define __NR_getegid32 202
-#define __NR_setreuid32 203
-#define __NR_setregid32 204
-#define __NR_getgroups32 205
-#define __NR_setgroups32 206
-#define __NR_fchown32 207
-#define __NR_setresuid32 208
-#define __NR_getresuid32 209
-#define __NR_setresgid32 210
-#define __NR_getresgid32 211
-#define __NR_chown32 212
-#define __NR_setuid32 213
-#define __NR_setgid32 214
-#define __NR_setfsuid32 215
-#define __NR_setfsgid32 216
-#define __NR_pivot_root 217
-#define __NR_mincore 218
-#define __NR_madvise 219
-#define __NR_getdents64 220
-#define __NR_fcntl64 221
-
-#define __NR_gettid 224
-#define __NR_readahead 225
-#define __NR_setxattr 226
-#define __NR_lsetxattr 227
-#define __NR_fsetxattr 228
-#define __NR_getxattr 229
-#define __NR_lgetxattr 230
-#define __NR_fgetxattr 231
-#define __NR_listxattr 232
-#define __NR_llistxattr 233
-#define __NR_flistxattr 234
-#define __NR_removexattr 235
-#define __NR_lremovexattr 236
-#define __NR_fremovexattr 237
-#define __NR_tkill 238
-#define __NR_sendfile64 239
-#define __NR_futex 240
-#define __NR_sched_setaffinity 241
-#define __NR_sched_getaffinity 242
-#define __NR_set_thread_area 243
-#define __NR_get_thread_area 244
-#define __NR_io_setup 245
-#define __NR_io_destroy 246
-#define __NR_io_getevents 247
-#define __NR_io_submit 248
-#define __NR_io_cancel 249
-#define __NR_fadvise64 250
-
-#define __NR_exit_group 252
-#define __NR_lookup_dcookie 253
-#define __NR_epoll_create 254
-#define __NR_epoll_ctl 255
-#define __NR_epoll_wait 256
-#define __NR_remap_file_pages 257
-#define __NR_set_tid_address 258
-#define __NR_timer_create 259
-#define __NR_timer_settime (__NR_timer_create+1)
-#define __NR_timer_gettime (__NR_timer_create+2)
-#define __NR_timer_getoverrun (__NR_timer_create+3)
-#define __NR_timer_delete (__NR_timer_create+4)
-#define __NR_clock_settime (__NR_timer_create+5)
-#define __NR_clock_gettime (__NR_timer_create+6)
-#define __NR_clock_getres (__NR_timer_create+7)
-#define __NR_clock_nanosleep (__NR_timer_create+8)
-#define __NR_statfs64 268
-#define __NR_fstatfs64 269
-#define __NR_tgkill 270
-#define __NR_utimes 271
-#define __NR_fadvise64_64 272
-#define __NR_vserver 273
-#define __NR_mbind 274
-#define __NR_get_mempolicy 275
-#define __NR_set_mempolicy 276
-#define __NR_mq_open 277
-#define __NR_mq_unlink (__NR_mq_open+1)
-#define __NR_mq_timedsend (__NR_mq_open+2)
-#define __NR_mq_timedreceive (__NR_mq_open+3)
-#define __NR_mq_notify (__NR_mq_open+4)
-#define __NR_mq_getsetattr (__NR_mq_open+5)
-#define __NR_kexec_load 283
-#define __NR_waitid 284
-#define __NR_add_key 285
-#define __NR_request_key 286
-#define __NR_keyctl 287
-#define __NR_ioprio_set 288
-#define __NR_ioprio_get 289
-#define __NR_inotify_init 290
-#define __NR_inotify_add_watch 291
-#define __NR_inotify_rm_watch 292
-
-#define __NR_migrate_pages 294
-#define __NR_openat 295
-#define __NR_mkdirat 296
-#define __NR_mknodat 297
-#define __NR_fchownat 298
-#define __NR_futimesat 299
-#define __NR_fstatat64 300
-#define __NR_unlinkat 301
-#define __NR_renameat 302
-#define __NR_linkat 303
-#define __NR_symlinkat 304
-#define __NR_readlinkat 305
-#define __NR_fchmodat 306
-#define __NR_faccessat 307
-#define __NR_pselect6 308
-#define __NR_ppoll 309
-#define __NR_unshare 310
-#define __NR_set_robust_list 311
-#define __NR_get_robust_list 312
-#define __NR_splice 313
-#define __NR_sync_file_range 314
-#define __NR_tee 315
-#define __NR_vmsplice 316
-#define __NR_move_pages 317
-#define __NR_getcpu 318
-#define __NR_epoll_pwait 319
-#define __NR_utimensat 320
-#define __NR_signalfd 321
-#define __NR_timerfd_create 322
-#define __NR_eventfd 323
-#define __NR_fallocate 324
-#define __NR_timerfd_settime 325
-#define __NR_timerfd_gettime 326
-#define __NR_signalfd4 327
-#define __NR_eventfd2 328
-#define __NR_epoll_create1 329
-#define __NR_dup3 330
-#define __NR_pipe2 331
-#define __NR_inotify_init1 332
-
-#define NR_syscalls 333
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/unistd_64.h b/libc/kernel/arch-sh/asm/unistd_64.h
deleted file mode 100644
index 2a72b96..0000000
--- a/libc/kernel/arch-sh/asm/unistd_64.h
+++ /dev/null
@@ -1,378 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_UNISTD_64_H
-#define __ASM_SH_UNISTD_64_H
-
-#define __NR_restart_syscall 0
-#define __NR_exit 1
-#define __NR_fork 2
-#define __NR_read 3
-#define __NR_write 4
-#define __NR_open 5
-#define __NR_close 6
-#define __NR_waitpid 7
-#define __NR_creat 8
-#define __NR_link 9
-#define __NR_unlink 10
-#define __NR_execve 11
-#define __NR_chdir 12
-#define __NR_time 13
-#define __NR_mknod 14
-#define __NR_chmod 15
-#define __NR_lchown 16
-#define __NR_break 17
-#define __NR_oldstat 18
-#define __NR_lseek 19
-#define __NR_getpid 20
-#define __NR_mount 21
-#define __NR_umount 22
-#define __NR_setuid 23
-#define __NR_getuid 24
-#define __NR_stime 25
-#define __NR_ptrace 26
-#define __NR_alarm 27
-#define __NR_oldfstat 28
-#define __NR_pause 29
-#define __NR_utime 30
-#define __NR_stty 31
-#define __NR_gtty 32
-#define __NR_access 33
-#define __NR_nice 34
-#define __NR_ftime 35
-#define __NR_sync 36
-#define __NR_kill 37
-#define __NR_rename 38
-#define __NR_mkdir 39
-#define __NR_rmdir 40
-#define __NR_dup 41
-#define __NR_pipe 42
-#define __NR_times 43
-#define __NR_prof 44
-#define __NR_brk 45
-#define __NR_setgid 46
-#define __NR_getgid 47
-#define __NR_signal 48
-#define __NR_geteuid 49
-#define __NR_getegid 50
-#define __NR_acct 51
-#define __NR_umount2 52
-#define __NR_lock 53
-#define __NR_ioctl 54
-#define __NR_fcntl 55
-#define __NR_mpx 56
-#define __NR_setpgid 57
-#define __NR_ulimit 58
-#define __NR_oldolduname 59
-#define __NR_umask 60
-#define __NR_chroot 61
-#define __NR_ustat 62
-#define __NR_dup2 63
-#define __NR_getppid 64
-#define __NR_getpgrp 65
-#define __NR_setsid 66
-#define __NR_sigaction 67
-#define __NR_sgetmask 68
-#define __NR_ssetmask 69
-#define __NR_setreuid 70
-#define __NR_setregid 71
-#define __NR_sigsuspend 72
-#define __NR_sigpending 73
-#define __NR_sethostname 74
-#define __NR_setrlimit 75
-#define __NR_getrlimit 76  
-#define __NR_getrusage 77
-#define __NR_gettimeofday 78
-#define __NR_settimeofday 79
-#define __NR_getgroups 80
-#define __NR_setgroups 81
-#define __NR_select 82
-#define __NR_symlink 83
-#define __NR_oldlstat 84
-#define __NR_readlink 85
-#define __NR_uselib 86
-#define __NR_swapon 87
-#define __NR_reboot 88
-#define __NR_readdir 89
-#define __NR_mmap 90
-#define __NR_munmap 91
-#define __NR_truncate 92
-#define __NR_ftruncate 93
-#define __NR_fchmod 94
-#define __NR_fchown 95
-#define __NR_getpriority 96
-#define __NR_setpriority 97
-#define __NR_profil 98
-#define __NR_statfs 99
-#define __NR_fstatfs 100
-#define __NR_ioperm 101
-#define __NR_socketcall 102  
-#define __NR_syslog 103
-#define __NR_setitimer 104
-#define __NR_getitimer 105
-#define __NR_stat 106
-#define __NR_lstat 107
-#define __NR_fstat 108
-#define __NR_olduname 109
-#define __NR_iopl 110
-#define __NR_vhangup 111
-#define __NR_idle 112
-#define __NR_vm86old 113
-#define __NR_wait4 114
-#define __NR_swapoff 115
-#define __NR_sysinfo 116
-#define __NR_ipc 117
-#define __NR_fsync 118
-#define __NR_sigreturn 119
-#define __NR_clone 120
-#define __NR_setdomainname 121
-#define __NR_uname 122
-#define __NR_modify_ldt 123
-#define __NR_adjtimex 124
-#define __NR_mprotect 125
-#define __NR_sigprocmask 126
-#define __NR_create_module 127
-#define __NR_init_module 128
-#define __NR_delete_module 129
-#define __NR_get_kernel_syms 130
-#define __NR_quotactl 131
-#define __NR_getpgid 132
-#define __NR_fchdir 133
-#define __NR_bdflush 134
-#define __NR_sysfs 135
-#define __NR_personality 136
-#define __NR_afs_syscall 137  
-#define __NR_setfsuid 138
-#define __NR_setfsgid 139
-#define __NR__llseek 140
-#define __NR_getdents 141
-#define __NR__newselect 142
-#define __NR_flock 143
-#define __NR_msync 144
-#define __NR_readv 145
-#define __NR_writev 146
-#define __NR_getsid 147
-#define __NR_fdatasync 148
-#define __NR__sysctl 149
-#define __NR_mlock 150
-#define __NR_munlock 151
-#define __NR_mlockall 152
-#define __NR_munlockall 153
-#define __NR_sched_setparam 154
-#define __NR_sched_getparam 155
-#define __NR_sched_setscheduler 156
-#define __NR_sched_getscheduler 157
-#define __NR_sched_yield 158
-#define __NR_sched_get_priority_max 159
-#define __NR_sched_get_priority_min 160
-#define __NR_sched_rr_get_interval 161
-#define __NR_nanosleep 162
-#define __NR_mremap 163
-#define __NR_setresuid 164
-#define __NR_getresuid 165
-#define __NR_vm86 166
-#define __NR_query_module 167
-#define __NR_poll 168
-#define __NR_nfsservctl 169
-#define __NR_setresgid 170
-#define __NR_getresgid 171
-#define __NR_prctl 172
-#define __NR_rt_sigreturn 173
-#define __NR_rt_sigaction 174
-#define __NR_rt_sigprocmask 175
-#define __NR_rt_sigpending 176
-#define __NR_rt_sigtimedwait 177
-#define __NR_rt_sigqueueinfo 178
-#define __NR_rt_sigsuspend 179
-#define __NR_pread64 180
-#define __NR_pwrite64 181
-#define __NR_chown 182
-#define __NR_getcwd 183
-#define __NR_capget 184
-#define __NR_capset 185
-#define __NR_sigaltstack 186
-#define __NR_sendfile 187
-#define __NR_streams1 188  
-#define __NR_streams2 189  
-#define __NR_vfork 190
-#define __NR_ugetrlimit 191  
-#define __NR_mmap2 192
-#define __NR_truncate64 193
-#define __NR_ftruncate64 194
-#define __NR_stat64 195
-#define __NR_lstat64 196
-#define __NR_fstat64 197
-#define __NR_lchown32 198
-#define __NR_getuid32 199
-#define __NR_getgid32 200
-#define __NR_geteuid32 201
-#define __NR_getegid32 202
-#define __NR_setreuid32 203
-#define __NR_setregid32 204
-#define __NR_getgroups32 205
-#define __NR_setgroups32 206
-#define __NR_fchown32 207
-#define __NR_setresuid32 208
-#define __NR_getresuid32 209
-#define __NR_setresgid32 210
-#define __NR_getresgid32 211
-#define __NR_chown32 212
-#define __NR_setuid32 213
-#define __NR_setgid32 214
-#define __NR_setfsuid32 215
-#define __NR_setfsgid32 216
-#define __NR_pivot_root 217
-#define __NR_mincore 218
-#define __NR_madvise 219
-
-#define __NR_socket 220
-#define __NR_bind 221
-#define __NR_connect 222
-#define __NR_listen 223
-#define __NR_accept 224
-#define __NR_getsockname 225
-#define __NR_getpeername 226
-#define __NR_socketpair 227
-#define __NR_send 228
-#define __NR_sendto 229
-#define __NR_recv 230
-#define __NR_recvfrom 231
-#define __NR_shutdown 232
-#define __NR_setsockopt 233
-#define __NR_getsockopt 234
-#define __NR_sendmsg 235
-#define __NR_recvmsg 236
-
-#define __NR_semop 237
-#define __NR_semget 238
-#define __NR_semctl 239
-#define __NR_msgsnd 240
-#define __NR_msgrcv 241
-#define __NR_msgget 242
-#define __NR_msgctl 243
-#define __NR_shmdt 245
-#define __NR_shmget 246
-#define __NR_shmctl 247
-
-#define __NR_getdents64 248
-#define __NR_fcntl64 249
-
-#define __NR_gettid 252
-#define __NR_readahead 253
-#define __NR_setxattr 254
-#define __NR_lsetxattr 255
-#define __NR_fsetxattr 256
-#define __NR_getxattr 257
-#define __NR_lgetxattr 258
-#define __NR_fgetxattr 269
-#define __NR_listxattr 260
-#define __NR_llistxattr 261
-#define __NR_flistxattr 262
-#define __NR_removexattr 263
-#define __NR_lremovexattr 264
-#define __NR_fremovexattr 265
-#define __NR_tkill 266
-#define __NR_sendfile64 267
-#define __NR_futex 268
-#define __NR_sched_setaffinity 269
-#define __NR_sched_getaffinity 270
-#define __NR_set_thread_area 271
-#define __NR_get_thread_area 272
-#define __NR_io_setup 273
-#define __NR_io_destroy 274
-#define __NR_io_getevents 275
-#define __NR_io_submit 276
-#define __NR_io_cancel 277
-#define __NR_fadvise64 278
-#define __NR_exit_group 280
-
-#define __NR_lookup_dcookie 281
-#define __NR_epoll_create 282
-#define __NR_epoll_ctl 283
-#define __NR_epoll_wait 284
-#define __NR_remap_file_pages 285
-#define __NR_set_tid_address 286
-#define __NR_timer_create 287
-#define __NR_timer_settime (__NR_timer_create+1)
-#define __NR_timer_gettime (__NR_timer_create+2)
-#define __NR_timer_getoverrun (__NR_timer_create+3)
-#define __NR_timer_delete (__NR_timer_create+4)
-#define __NR_clock_settime (__NR_timer_create+5)
-#define __NR_clock_gettime (__NR_timer_create+6)
-#define __NR_clock_getres (__NR_timer_create+7)
-#define __NR_clock_nanosleep (__NR_timer_create+8)
-#define __NR_statfs64 296
-#define __NR_fstatfs64 297
-#define __NR_tgkill 298
-#define __NR_utimes 299
-#define __NR_fadvise64_64 300
-#define __NR_vserver 301
-#define __NR_mbind 302
-#define __NR_get_mempolicy 303
-#define __NR_set_mempolicy 304
-#define __NR_mq_open 305
-#define __NR_mq_unlink (__NR_mq_open+1)
-#define __NR_mq_timedsend (__NR_mq_open+2)
-#define __NR_mq_timedreceive (__NR_mq_open+3)
-#define __NR_mq_notify (__NR_mq_open+4)
-#define __NR_mq_getsetattr (__NR_mq_open+5)
-#define __NR_kexec_load 311
-#define __NR_waitid 312
-#define __NR_add_key 313
-#define __NR_request_key 314
-#define __NR_keyctl 315
-#define __NR_ioprio_set 316
-#define __NR_ioprio_get 317
-#define __NR_inotify_init 318
-#define __NR_inotify_add_watch 319
-#define __NR_inotify_rm_watch 320
-
-#define __NR_migrate_pages 322
-#define __NR_openat 323
-#define __NR_mkdirat 324
-#define __NR_mknodat 325
-#define __NR_fchownat 326
-#define __NR_futimesat 327
-#define __NR_fstatat64 328
-#define __NR_unlinkat 329
-#define __NR_renameat 330
-#define __NR_linkat 331
-#define __NR_symlinkat 332
-#define __NR_readlinkat 333
-#define __NR_fchmodat 334
-#define __NR_faccessat 335
-#define __NR_pselect6 336
-#define __NR_ppoll 337
-#define __NR_unshare 338
-#define __NR_set_robust_list 339
-#define __NR_get_robust_list 340
-#define __NR_splice 341
-#define __NR_sync_file_range 342
-#define __NR_tee 343
-#define __NR_vmsplice 344
-#define __NR_move_pages 345
-#define __NR_getcpu 346
-#define __NR_epoll_pwait 347
-#define __NR_utimensat 348
-#define __NR_signalfd 349
-#define __NR_timerfd_create 350
-#define __NR_eventfd 351
-#define __NR_fallocate 352
-#define __NR_timerfd_settime 353
-#define __NR_timerfd_gettime 354
-#define __NR_signalfd4 355
-#define __NR_eventfd2 356
-#define __NR_epoll_create1 357
-#define __NR_dup3 358
-#define __NR_pipe2 359
-#define __NR_inotify_init1 360
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/user.h b/libc/kernel/arch-sh/asm/user.h
deleted file mode 100644
index 81ab4e3..0000000
--- a/libc/kernel/arch-sh/asm/user.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_USER_H
-#define __ASM_SH_USER_H
-
-#include <asm/ptrace.h>
-#include <asm/page.h>
-
-#ifdef __SH5__
-struct user_fpu_struct {
- unsigned long fp_regs[32];
- unsigned int fpscr;
-};
-#else
-struct user_fpu_struct {
- unsigned long fp_regs[16];
- unsigned long xfp_regs[16];
- unsigned long fpscr;
- unsigned long fpul;
-};
-#endif
-
-struct user {
- struct pt_regs regs;
- struct user_fpu_struct fpu;
- int u_fpvalid;
- size_t u_tsize;
- size_t u_dsize;
- size_t u_ssize;
- unsigned long start_code;
- unsigned long start_data;
- unsigned long start_stack;
- long int signal;
- unsigned long u_ar0;
- struct user_fpu_struct* u_fpstate;
- unsigned long magic;
- char u_comm[32];
-};
-
-#define NBPG PAGE_SIZE
-#define UPAGES 1
-#define HOST_TEXT_START_ADDR (u.start_code)
-#define HOST_DATA_START_ADDR (u.start_data)
-#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/vga.h b/libc/kernel/arch-sh/asm/vga.h
deleted file mode 100644
index 9e857a9..0000000
--- a/libc/kernel/arch-sh/asm/vga.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_VGA_H
-#define __ASM_SH_VGA_H
-
-#endif
diff --git a/libc/kernel/arch-sh/asm/watchdog.h b/libc/kernel/arch-sh/asm/watchdog.h
deleted file mode 100644
index 81d7905..0000000
--- a/libc/kernel/arch-sh/asm/watchdog.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SH_WATCHDOG_H
-#define __ASM_SH_WATCHDOG_H
-#endif
diff --git a/libc/kernel/arch-sh/asm/xor.h b/libc/kernel/arch-sh/asm/xor.h
deleted file mode 100644
index 780a4ac..0000000
--- a/libc/kernel/arch-sh/asm/xor.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/xor.h>
diff --git a/libc/kernel/tools/defaults.py b/libc/kernel/tools/defaults.py
index 2bee4ec..aa68e7c 100644
--- a/libc/kernel/tools/defaults.py
+++ b/libc/kernel/tools/defaults.py
@@ -7,7 +7,7 @@
 
 # the list of supported architectures
 #
-kernel_archs = [ 'arm', 'x86', 'sh' ]
+kernel_archs = [ 'arm', 'x86' ]
 
 # the list of include directories that belong to the kernel
 # tree. used when looking for sources...
@@ -66,15 +66,6 @@
         ]
     )
 
-kernel_known_sh_statics = set(
-       [ "___arch__swab16",    # asm-sh/byteorder.h
-         "___arch__swab32",    # asm-sh/byteorder.h
-         "___arch__swab64",    # asm-sh/byteorder.h
-         "__FD_ZERO",          # asm-sh/posix_types_32/64.h
-         "__FD_SET",           # asm-sh/posix_types_32/64.h
-       ]
-    )
-
 kernel_known_generic_statics = set(
         [ "__invalid_size_argument_for_IOC",  # asm-generic/ioctl.h
           "__cmsg_nxthdr",                    # linux/socket.h
@@ -90,7 +81,6 @@
 kernel_known_statics = {
         "arm" : kernel_known_arm_statics,
         "x86" : kernel_known_x86_statics,
-        "sh" : kernel_known_sh_statics
     }
 
 # this is a list of macros which we want to specifically exclude from
diff --git a/libc/tools/bionic_utils.py b/libc/tools/bionic_utils.py
index e7c8c2d..0bc947b 100644
--- a/libc/tools/bionic_utils.py
+++ b/libc/tools/bionic_utils.py
@@ -240,7 +240,6 @@
         if number == "stub":
             syscall_id  = -1
             syscall_id2 = -1
-            syscall_id3 = -1
         else:
             try:
                 if number[0] == '#':
@@ -248,12 +247,8 @@
                 numbers = string.split(number,',')
                 syscall_id  = int(numbers[0])
                 syscall_id2 = syscall_id
-                syscall_id3 = syscall_id
                 if len(numbers) > 1:
                     syscall_id2 = int(numbers[1])
-                    syscall_id3 = syscall_id2
-                if len(numbers) > 2:
-                    syscall_id3 = int(numbers[2])
             except:
                 E("invalid syscall number in '%s'" % line)
                 return
@@ -261,13 +256,12 @@
 		global verbose
         if verbose >= 2:
             if call_id < 0:
-                print "%s: %d,%d,%d" % (syscall_name, syscall_id, syscall_id2, syscall_id3)
+                print "%s: %d,%d" % (syscall_name, syscall_id, syscall_id2)
             else:
-                print "%s(%d): %d,%d,%d" % (syscall_name, call_id, syscall_id, syscall_id2, syscall_id3)
+                print "%s(%d): %d,%d" % (syscall_name, call_id, syscall_id, syscall_id2)
 
         t = { "id"     : syscall_id,
               "id2"    : syscall_id2,
-              "id3"    : syscall_id3,
               "cid"    : call_id,
               "name"   : syscall_name,
               "func"   : syscall_func,
diff --git a/libc/tools/checksyscalls.py b/libc/tools/checksyscalls.py
index 1b922a3..2c563d7 100755
--- a/libc/tools/checksyscalls.py
+++ b/libc/tools/checksyscalls.py
@@ -118,7 +118,6 @@
 
 arm_dict = {}
 x86_dict = {}
-superh_dict = {}
 
 # remove trailing slash from the linux_root, if any
 if linux_root[-1] == '/':
@@ -142,15 +141,8 @@
         print "maybe using a different set of kernel headers might help."
         sys.exit(1)
 
-superh_unistd = find_arch_header(linux_root, "sh", "unistd_32.h")
-if not superh_unistd:
-    print "WEIRD: Could not locate the SuperH unistd.h kernel header file,"
-    print "maybe using a different set of kernel headers might help."
-    sys.exit(1)
-
 process_header( arm_unistd, arm_dict )
 process_header( x86_unistd, x86_dict )
-process_header( superh_unistd, superh_dict )
 
 # now perform the comparison
 errors = 0
@@ -174,7 +166,6 @@
 
 errors += check_syscalls("arm", "id", arm_dict)
 errors += check_syscalls("x86", "id2", x86_dict)
-errors += check_syscalls("superh", "id3", superh_dict)
 
 if errors == 0:
     print "congratulations, everything's fine !!"
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index c188e04..bed9445 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -31,7 +31,7 @@
 bionic_temp = "/tmp/bionic_gensyscalls/"
 
 # all architectures, update as you see fit
-all_archs = [ "arm", "x86", "sh" ]
+all_archs = [ "arm", "x86" ]
 
 def make_dir( path ):
     if not os.path.exists(path):
@@ -183,63 +183,6 @@
     .fnend
 """
 
-# SuperH assembler templates for each syscall stub
-#
-superh_header = """/* autogenerated by gensyscalls.py */
-#include <sys/linux-syscalls.h>
-
-    .text
-    .type %(fname)s, @function
-    .globl %(fname)s
-    .align 4
-
-%(fname)s:
-"""
-
-superh_call_default = """
-    /* invoke trap */
-    mov.l   0f, r3  /* trap num */
-    trapa   #(%(numargs)s + 0x10)
-
-    /* check return value */
-    cmp/pz  r0
-    bt      %(idname)s_end
-
-    /* keep error number */
-    sts.l   pr, @-r15
-    mov.l   1f, r1
-    jsr     @r1
-    mov     r0, r4
-    lds.l   @r15+, pr
-
-%(idname)s_end:
-    rts
-    nop
-
-    .align  2
-0:  .long   %(idname)s
-1:  .long   __set_syscall_errno
-"""
-
-superh_5args_header = """
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-"""
-
-superh_6args_header = """
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-    mov.l   @(4, r15), r1
-"""
-
-superh_7args_header = """
-    /* get ready for additonal arg */
-    mov.l   @r15, r0
-    mov.l   @(4, r15), r1
-    mov.l   @(8, r15), r2
-"""
-
-
 def param_uses_64bits(param):
     """Returns True iff a syscall parameter description corresponds
        to a 64-bit type."""
@@ -437,10 +380,6 @@
                 E("cid for dispatch syscalls is only supported for x86 in "
                   "'%s'" % syscall_name)
                 return
-            if t["id3"] >= 0:
-                num_regs = count_generic_param_registers(syscall_params)
-                t["asm-sh"] = self.superh_genstub(syscall_func,num_regs,"__NR_"+syscall_name)
-
 
 
     def gen_NR_syscall(self,fp,name,id):
@@ -490,20 +429,6 @@
                 gen_syscalls[sc_name] = True
         fp.write( "#endif\n" );
 
-        # all superh-specific syscalls
-        fp.write( "\n#if defined(__SH3__) || defined(__SH4__) \n" );
-        for sc in self.syscalls:
-            sc_id  = sc["id"]
-            sc_id2 = sc["id2"]
-            sc_id3 = sc["id3"]
-            sc_name = sc["name"]
-            if sc_id2 != sc_id3 and sc_id3 >= 0:
-                self.gen_NR_syscall( fp, sc_name, sc_id3 )
-            else:
-                if sc_id != sc_id2 and sc_id2 >= 0:
-                    self.gen_NR_syscall( fp, sc_name, sc_id2 )
-        fp.write( "#endif\n" );
-
         fp.write( "\n#endif\n" )
         fp.write( "\n#endif /* _BIONIC_LINUX_SYSCALLS_H_ */\n" );
         fp.close()
@@ -537,7 +462,6 @@
         arch_test = {
             "arm": lambda x: x.has_key("asm-arm") or x.has_key("asm-thumb"),
             "x86": lambda x: x.has_key("asm-x86"),
-            "sh": lambda x: x.has_key("asm-sh")
         }
 
         for sc in self.syscalls:
@@ -574,14 +498,6 @@
                 fp.close()
                 self.new_stubs.append( fname )
 
-            if sc.has_key("asm-sh"):
-                fname = "arch-sh/syscalls/%s.S" % sc["func"]
-                D2( ">>> generating "+fname )
-                fp = create_file( fname )
-                fp.write(sc["asm-sh"])
-                fp.close()
-                self.new_stubs.append( fname )
-
 
     def  regenerate(self):
         D( "scanning for existing architecture-specific stub files" )
