diff options
Diffstat (limited to 'mdk-stage1/dietlibc')
327 files changed, 0 insertions, 9339 deletions
diff --git a/mdk-stage1/dietlibc/AUTHOR b/mdk-stage1/dietlibc/AUTHOR deleted file mode 100644 index 6d8ab1a05..000000000 --- a/mdk-stage1/dietlibc/AUTHOR +++ /dev/null @@ -1 +0,0 @@ -Felix von Leitner <felix-dietlibc@fefe.de> diff --git a/mdk-stage1/dietlibc/Makefile b/mdk-stage1/dietlibc/Makefile deleted file mode 100644 index 19fac4a82..000000000 --- a/mdk-stage1/dietlibc/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -all: start.o dietlibc.a - -ARCH=$(shell uname -m | sed 's/i[4-9]86/i386/') - -CFLAGS=-pipe -CROSS= - -VPATH=syscalls.c - -SYSCALLOBJ=$(patsubst syscalls.s/%.S,%.o,$(wildcard syscalls.s/*.S)) - -LIBOBJ=$(patsubst lib/%.c,%.o,$(wildcard lib/*.c)) - -include $(ARCH)/Makefile.add - -ifeq ($(CFLAGS),-pipe) -CFLAGS+=-O -fomit-frame-pointer -endif - -#CFLAGS += -g -CFLAGS += -Wall - -.SUFFIXES: -.SUFFIXES: .S .c - -%.o: %.S - $(CROSS)gcc -I. -Iinclude $(CFLAGS) -c $< - -%.o: %.c - $(CROSS)gcc -I. -Iinclude $(CFLAGS) -c $< -# $(CROSS)strip -x -R .comment -R .note $@ - -dietlibc.a: $(SYSCALLOBJ) $(LIBOBJ) __longjmp.o longjmp.o setjmp.o \ -start.o unified.o mmap.o - $(CROSS)ar cru dietlibc.a $^ - -libdietc.so: dietlibc.a - $(CROSS)ld -whole-archive -shared -o $@ $^ - -$(SYSCALLOBJ): syscalls.h - -djb: compile load - -compile: - echo 'exec gcc $(CFLAGS) -I$(HOME)/projects/dietlibc/include -c $${1+"$$@"}' > $@ - chmod 755 $@ - -load: - echo 'main="$$1"; shift; exec gcc -nostdlib -o "$$main" $(HOME)/projects/dietlibc/start.o "$$main".o $${1+"$$@"} $(HOME)/projects/dietlibc/dietlibc.a -lgcc' > $@ - chmod 755 $@ - -clean: - rm -f *.o *.a t t1 compile load exports mapfile libdietc.so - -tar: clean - cd .. && tar cvvf dietlibc.tar.bz2 dietlibc --use=bzip2 - -exports: dietlibc.a - nm -g dietlibc.a | grep -w T | awk '{ print $$3 }' | sort -u > exports - -.PHONY: t t1 -t: - $(CROSS)gcc -g $(CFLAGS) -fno-builtin -nostdlib -Iinclude -o t t.c start.o dietlibc.a -lgcc -Wl,-Map,mapfile - -t1: - $(CROSS)gcc -g -o t1 t.c - -install: - cp start.o $(prefix)/lib/dietstart.o - cp dietlibc.a $(prefix)/lib/libdietc.a - -.PHONY: sparc ppc mips arm alpha i386 - -sparc ppc alpha i386: - $(MAKE) ARCH=$@ CROSS=$@-linux- all t libdietc.so - -mips arm: - $(MAKE) ARCH=$@ CROSS=$@-linux-gnu- all t libdietc.so - diff --git a/mdk-stage1/dietlibc/README b/mdk-stage1/dietlibc/README deleted file mode 100644 index c17aefcc5..000000000 --- a/mdk-stage1/dietlibc/README +++ /dev/null @@ -1,11 +0,0 @@ -diet glibc to statically link programs that don't need all the bloat -from glibc. - -malloc, printf and scanf contributed from Olaf Dreesen. - -Usage: - gcc -I~/dietlibc/include -Os -pipe -c *.c - gcc -nostdlib -o ncp ~/dietlibc/start.o *.o ~/dietlibc/dietlibc.a - -If you use the glibc includes, directory reading (and maybe other -functions) will fail. You have been warned! diff --git a/mdk-stage1/dietlibc/alpha/Makefile.add b/mdk-stage1/dietlibc/alpha/Makefile.add deleted file mode 100644 index da3791eb6..000000000 --- a/mdk-stage1/dietlibc/alpha/Makefile.add +++ /dev/null @@ -1,5 +0,0 @@ - -CFLAGS+=-Os -fno-builtin -Iinclude -fomit-frame-pointer -fstrict-aliasing -override VPATH=alpha:syscalls.s:lib - -LIBOBJ+=divq.o diff --git a/mdk-stage1/dietlibc/alpha/__longjmp.S b/mdk-stage1/dietlibc/alpha/__longjmp.S deleted file mode 100644 index d86d76717..000000000 --- a/mdk-stage1/dietlibc/alpha/__longjmp.S +++ /dev/null @@ -1,38 +0,0 @@ -#ifdef __alpha__ - -#include <setjmp.h> - -.text -.align 2 - -.global __longjmp -__longjmp: - mov $17, $0 /* a1 -> v0 */ - - ldq $9, (JB_S0*8) ($16) /* s0 */ - ldq $10, (JB_S1*8) ($16) /* s1 */ - ldq $11, (JB_S2*8) ($16) /* s2 */ - ldq $12, (JB_S3*8) ($16) /* s3 */ - ldq $13, (JB_S4*8) ($16) /* s4 */ - ldq $14, (JB_S5*8) ($16) /* s5 */ - - ldq $26, (JB_PC*8) ($16) /* ra */ - ldq $fp, (JB_FP*8) ($16) /* fp */ - ldq $1, (JB_SP*8) ($16) /* sp */ - - ldt $f2, (JB_F2*8) ($16) /* f2 */ - ldt $f3, (JB_F3*8) ($16) /* f3 */ - ldt $f4, (JB_F4*8) ($16) /* f4 */ - ldt $f5, (JB_F5*8) ($16) /* f5 */ - ldt $f6, (JB_F6*8) ($16) /* f6 */ - ldt $f7, (JB_F7*8) ($16) /* f7 */ - ldt $f8, (JB_F8*8) ($16) /* f8 */ - ldt $f9, (JB_F9*8) ($16) /* f9 */ - - cmoveq $0, 0x1, $0 - mov $1, $sp - - ret $31, ($26), 1 - - -#endif diff --git a/mdk-stage1/dietlibc/alpha/accept.S b/mdk-stage1/dietlibc/alpha/accept.S deleted file mode 100644 index 43a40ee6f..000000000 --- a/mdk-stage1/dietlibc/alpha/accept.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_accept -syscall(accept,accept) diff --git a/mdk-stage1/dietlibc/alpha/bind.S b/mdk-stage1/dietlibc/alpha/bind.S deleted file mode 100644 index 86a04cb70..000000000 --- a/mdk-stage1/dietlibc/alpha/bind.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(bind,bind) diff --git a/mdk-stage1/dietlibc/alpha/clone.S b/mdk-stage1/dietlibc/alpha/clone.S deleted file mode 100644 index f01620595..000000000 --- a/mdk-stage1/dietlibc/alpha/clone.S +++ /dev/null @@ -1,42 +0,0 @@ -#include "syscalls.h" -#include <asm/errno.h> - -.text -.align 2 -.weak clone -clone: -.global __clone -.type __clone,@function -clone: - ldiq $0, EINVAL - beq $16, .Lerror - beq $17, .Lerror - - subq $17, 16, $17 - stq $16, 0($17) - stq $19, 8($17) - mov $18, $16 - - lda $0, __NR_pipe($31) - callsys - bne $19, .Lerror - - beq $0, .Lstart_thread - - ret $31, ($26), 0x01 - -.Lerror: - jmp error_unified_syscall - -.Lstart_thread: - clr $fp - - ldq $27, 0($sp) - ldq $16, 8($sp) - - jsr $26, ($27), 0x04 - - ldgp $gp, 0($26) - mov $0, $16 - jsr $26, _exit - diff --git a/mdk-stage1/dietlibc/alpha/connect.S b/mdk-stage1/dietlibc/alpha/connect.S deleted file mode 100644 index da3675760..000000000 --- a/mdk-stage1/dietlibc/alpha/connect.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_connect -syscall(connect,connect) diff --git a/mdk-stage1/dietlibc/alpha/divq.S b/mdk-stage1/dietlibc/alpha/divq.S deleted file mode 100644 index cf70862c4..000000000 --- a/mdk-stage1/dietlibc/alpha/divq.S +++ /dev/null @@ -1,102 +0,0 @@ -/* taken from glibc 2.2 */ - - .set noreorder - .set noat - - .ent __divqu - .globl __divqu - - .align 3 -__divqu : - lda $30 , - 48 ($30 ) - .frame $30 , 48 , $23 , 0 - .prologue 0 -$udiv: - stq $1 , 0($30 ) - mov $25 , $1 - stq $2 , 8($30 ) - mov $24 , $2 - stq $0 , 16($30 ) - clr $27 - stq $3 , 24($30 ) - ldiq $0 , 1 - stq $4 ,32($30 ) - beq $1 , $divbyzero - - .align 3 - - -1: cmpult $1 , $2 , $at - blt $1 , 2f - addq $1 , $1 , $1 - addq $0 , $0 , $0 - bne $at , 1b - unop -2: -3: addq $27 ,$0 , $4 - srl $0 , 1, $0 - cmpule $1 , $2 , $at - subq $2 , $1 , $3 - cmovne $at ,$4 , $27 - srl $1 , 1, $1 - cmovne $at , $3 , $2 - bne $0 , 3b - -$done: ldq $1 , 0($30 ) - ldq $2 , 8($30 ) - ldq $0 , 16($30 ) - ldq $3 , 24($30 ) - ldq $4 ,32($30 ) - lda $30 , 48 ($30 ) - ret $31 , ($23 ), 1 - -$divbyzero: - mov $16 , $3 - ldiq $16 , -2 - call_pal 170 - mov $3 , $16 - clr $27 - br $done - - .end __divqu - - .ent __divq - .globl __divq - - .align 3 -__divq : - lda $30 , - 48 ($30 ) - .frame $30 , 48 , $23 , 0 - .prologue 0 - or $24 , $25 , $at - - bge $at , $udiv - - - stq $24 , 0($30 ) - negq $24 , $at - stq $25 , 8($30 ) - cmovge $at , $at , $24 - stq $23 , 16($30 ) - negq $25 , $at - stq $3 , 24($30 ) - cmovge $at , $at , $25 - - - bsr $23 , __divqu - - - ldq $24 , 0($30 ) - ldq $25 , 8($30 ) - xor $24 , $25 , $at - negq $27 , $3 - - ldq $23 , 16($30 ) - cmovlt $at , $3 , $27 - ldq $3 , 24($30 ) - - lda $30 , 48 ($30 ) - ret $31 , ($23 ), 1 - - .end __divq - diff --git a/mdk-stage1/dietlibc/alpha/getegid.S b/mdk-stage1/dietlibc/alpha/getegid.S deleted file mode 100644 index 89c35d45e..000000000 --- a/mdk-stage1/dietlibc/alpha/getegid.S +++ /dev/null @@ -1,11 +0,0 @@ -.text -.align 2 -.global getegid -getegid: - lda $sp,-8($sp) - stq $26, 0($sp) - jsr getgid - ldq $26, 0($sp) - lda $sp, 8($sp) - cmovge $0, $20, $0 - ret diff --git a/mdk-stage1/dietlibc/alpha/geteuid.S b/mdk-stage1/dietlibc/alpha/geteuid.S deleted file mode 100644 index 087ca7348..000000000 --- a/mdk-stage1/dietlibc/alpha/geteuid.S +++ /dev/null @@ -1,11 +0,0 @@ -.text -.align 2 -.global geteuid -geteuid: - lda $sp,-8($sp) - stq $26, 0($sp) - jsr getuid - ldq $26, 0($sp) - lda $sp, 8($sp) - cmovge $0, $20, $0 - ret diff --git a/mdk-stage1/dietlibc/alpha/getgid.S b/mdk-stage1/dietlibc/alpha/getgid.S deleted file mode 100644 index 7350082f3..000000000 --- a/mdk-stage1/dietlibc/alpha/getgid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getxgid,getgid) diff --git a/mdk-stage1/dietlibc/alpha/getpeername.S b/mdk-stage1/dietlibc/alpha/getpeername.S deleted file mode 100644 index 3b3f48b1a..000000000 --- a/mdk-stage1/dietlibc/alpha/getpeername.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getpeername,getpeername) diff --git a/mdk-stage1/dietlibc/alpha/getpid.S b/mdk-stage1/dietlibc/alpha/getpid.S deleted file mode 100644 index d8b3523b2..000000000 --- a/mdk-stage1/dietlibc/alpha/getpid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getxpid,getpid) diff --git a/mdk-stage1/dietlibc/alpha/getppid.S b/mdk-stage1/dietlibc/alpha/getppid.S deleted file mode 100644 index e181268c3..000000000 --- a/mdk-stage1/dietlibc/alpha/getppid.S +++ /dev/null @@ -1,11 +0,0 @@ -.text -.align 2 -.global getppid -getppid: - lda $sp,-8($sp) - stq $26, 0($sp) - jsr getpid - ldq $26, 0($sp) - lda $sp, 8($sp) - cmovge $0, $20, $0 - ret diff --git a/mdk-stage1/dietlibc/alpha/getsockname.S b/mdk-stage1/dietlibc/alpha/getsockname.S deleted file mode 100644 index 2727d88da..000000000 --- a/mdk-stage1/dietlibc/alpha/getsockname.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getsockname,getsockname) diff --git a/mdk-stage1/dietlibc/alpha/getsockopt.S b/mdk-stage1/dietlibc/alpha/getsockopt.S deleted file mode 100644 index 44b4a910a..000000000 --- a/mdk-stage1/dietlibc/alpha/getsockopt.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getsockopt,getsockopt) diff --git a/mdk-stage1/dietlibc/alpha/getuid.S b/mdk-stage1/dietlibc/alpha/getuid.S deleted file mode 100644 index fcb5570c2..000000000 --- a/mdk-stage1/dietlibc/alpha/getuid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getxuid,getuid) diff --git a/mdk-stage1/dietlibc/alpha/listen.S b/mdk-stage1/dietlibc/alpha/listen.S deleted file mode 100644 index 1102831d4..000000000 --- a/mdk-stage1/dietlibc/alpha/listen.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(listen,listen) diff --git a/mdk-stage1/dietlibc/alpha/mmap.S b/mdk-stage1/dietlibc/alpha/mmap.S deleted file mode 100644 index 2e57fbb74..000000000 --- a/mdk-stage1/dietlibc/alpha/mmap.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(mmap,mmap) diff --git a/mdk-stage1/dietlibc/alpha/pipe.S b/mdk-stage1/dietlibc/alpha/pipe.S deleted file mode 100644 index 3dfef10bf..000000000 --- a/mdk-stage1/dietlibc/alpha/pipe.S +++ /dev/null @@ -1,17 +0,0 @@ -#include "syscalls.h" - -.text -.align 2 -.global pipe -.type pipe,@function -pipe: - lda $0, __NR_pipe($31) - callsys - bne $19, .Lerror - stl $0, 0($16) - stl $20, 4($16) - clr $0 - ret $31, ($26), 0x01 -.Lerror: - br error_unified_syscall - diff --git a/mdk-stage1/dietlibc/alpha/recv.S b/mdk-stage1/dietlibc/alpha/recv.S deleted file mode 100644 index 71b2e37dc..000000000 --- a/mdk-stage1/dietlibc/alpha/recv.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_recv -syscall(recv,recv) diff --git a/mdk-stage1/dietlibc/alpha/recvfrom.S b/mdk-stage1/dietlibc/alpha/recvfrom.S deleted file mode 100644 index 64779cbb8..000000000 --- a/mdk-stage1/dietlibc/alpha/recvfrom.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_recvfrom -syscall(recvfrom,recvfrom) diff --git a/mdk-stage1/dietlibc/alpha/send.S b/mdk-stage1/dietlibc/alpha/send.S deleted file mode 100644 index baed3b173..000000000 --- a/mdk-stage1/dietlibc/alpha/send.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_send -syscall(send,send) diff --git a/mdk-stage1/dietlibc/alpha/sendto.S b/mdk-stage1/dietlibc/alpha/sendto.S deleted file mode 100644 index 19169b26b..000000000 --- a/mdk-stage1/dietlibc/alpha/sendto.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_sendto -syscall(sendto,sendto) diff --git a/mdk-stage1/dietlibc/alpha/setjmp.S b/mdk-stage1/dietlibc/alpha/setjmp.S deleted file mode 100644 index 3768056be..000000000 --- a/mdk-stage1/dietlibc/alpha/setjmp.S +++ /dev/null @@ -1,46 +0,0 @@ -#include <setjmp.h> - -.text -.global __sigsetjmp -__sigsetjmp: - ldgp $gp, 0($gp) - - mov $sp, $1 - lda $sp, -16($sp) - - stq $26, 0($sp) /* save ra */ - - stq $9, (JB_S0*8) ($16) /* s0 */ - stq $10, (JB_S1*8) ($16) /* s1 */ - stq $11, (JB_S2*8) ($16) /* s2 */ - stq $12, (JB_S3*8) ($16) /* s3 */ - stq $13, (JB_S4*8) ($16) /* s4 */ - stq $14, (JB_S5*8) ($16) /* s5 */ - - stq $26, (JB_PC*8) ($16) /* ra */ - stq $fp, (JB_FP*8) ($16) /* fp */ - stq $1, (JB_SP*8) ($16) /* sp */ - - stt $f2, (JB_F2*8) ($16) /* f2 */ - stt $f3, (JB_F3*8) ($16) /* f3 */ - stt $f4, (JB_F4*8) ($16) /* f4 */ - stt $f5, (JB_F5*8) ($16) /* f5 */ - stt $f6, (JB_F6*8) ($16) /* f6 */ - stt $f7, (JB_F7*8) ($16) /* f7 */ - stt $f8, (JB_F8*8) ($16) /* f8 */ - stt $f9, (JB_F9*8) ($16) /* f9 */ - - br $26, __sigjmp_save /* call __sigjmp_save */ - - ldq $26, 0($sp) /* restore ra */ - - lda $sp, 16($sp) - ret $31, ($26), 1 /* back to caller */ - -.weak setjmp -setjmp: -.weak __setjmp -__setjmp: - ldgp $gp, 0($gp) - mov 0, $17 - br __sigsetjmp diff --git a/mdk-stage1/dietlibc/alpha/setsockopt.S b/mdk-stage1/dietlibc/alpha/setsockopt.S deleted file mode 100644 index e3fe1d321..000000000 --- a/mdk-stage1/dietlibc/alpha/setsockopt.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setsockopt,setsockopt) diff --git a/mdk-stage1/dietlibc/alpha/signal.S b/mdk-stage1/dietlibc/alpha/signal.S deleted file mode 100644 index ceca0f02d..000000000 --- a/mdk-stage1/dietlibc/alpha/signal.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(osf_signal,signal) diff --git a/mdk-stage1/dietlibc/alpha/sigprocmask.S b/mdk-stage1/dietlibc/alpha/sigprocmask.S deleted file mode 100644 index 8255a739a..000000000 --- a/mdk-stage1/dietlibc/alpha/sigprocmask.S +++ /dev/null @@ -1,7 +0,0 @@ -#include "syscalls.h" - -.text -.align 2 -.weak sigprocmask -sigprocmask: -syscall(osf_sigprocmask,__sigprocmask) diff --git a/mdk-stage1/dietlibc/alpha/socket.S b/mdk-stage1/dietlibc/alpha/socket.S deleted file mode 100644 index 85401f56e..000000000 --- a/mdk-stage1/dietlibc/alpha/socket.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(socket,socket) diff --git a/mdk-stage1/dietlibc/alpha/socketcall.S b/mdk-stage1/dietlibc/alpha/socketcall.S deleted file mode 100644 index b150bd5d5..000000000 --- a/mdk-stage1/dietlibc/alpha/socketcall.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -/* - * Doesn't exist on alpha ( accept, bind, ... are SYSCALLS !?! ) - */ diff --git a/mdk-stage1/dietlibc/alpha/start.S b/mdk-stage1/dietlibc/alpha/start.S deleted file mode 100644 index 00b8e950d..000000000 --- a/mdk-stage1/dietlibc/alpha/start.S +++ /dev/null @@ -1,35 +0,0 @@ -#include "start.h" - -#ifdef __alpha__ - -.text -.align 2 - .set noreorder - -.global __start -__start: -.global _start -_start: - clr $fp /* clear frame pointer */ - - br $gp,.Lstart /* set global pointer */ -.Lstart: - ldgp $gp, 0($gp) - -/* prepare to call main */ - ldl $16, 0($sp) /* argc */ - - lda $17, 8($sp) /* argv */ - - addq $16, 1, $18 /* argp */ - s8addq $18, $17, $18 /* (8*(argc+1))+argv -> argp */ - - stq $18, environ - - mov $0, $21 /* mov v0(dynload) to a5 */ - - jsr $26, main - mov $0, $16 - jsr $26, exit /* YES, CALL! for threads and atexit ! (+4 byte) */ - -#endif diff --git a/mdk-stage1/dietlibc/alpha/strlen.c b/mdk-stage1/dietlibc/alpha/strlen.c deleted file mode 100644 index ac532254a..000000000 --- a/mdk-stage1/dietlibc/alpha/strlen.c +++ /dev/null @@ -1,32 +0,0 @@ -#include <string.h> - -static const unsigned long long magic = 0x0101010101010101LL; - -size_t strlen(const char *s) -{ - const char *t = s; - unsigned long long word; - - if (!s) return 0; - - /* Byte compare up until 64 bit word boundary */ - for (; ((unsigned long long) t & 7); t++) - if (!*t) return t - s; - - /* Word compare */ - do { - word = *((unsigned long long *) t); t += 8; - word = (word - magic) &~ word; - word &= (magic << 7); - } while (word == 0); - - /* word & 0x8080808080808080 == word */ - word = (word - 1) & (magic << 8); - word += (word << 32); - word += (word << 16); - word += (word << 8); - t += word >> 56; - return ((const char *) t) - 8 - s; -} - - diff --git a/mdk-stage1/dietlibc/alpha/time.S b/mdk-stage1/dietlibc/alpha/time.S deleted file mode 100644 index 56a4f9b38..000000000 --- a/mdk-stage1/dietlibc/alpha/time.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(osf_gettimeofday,time) diff --git a/mdk-stage1/dietlibc/alpha/unified.S b/mdk-stage1/dietlibc/alpha/unified.S deleted file mode 100644 index 02a1c9bcd..000000000 --- a/mdk-stage1/dietlibc/alpha/unified.S +++ /dev/null @@ -1,29 +0,0 @@ -#include <dietfeatures.h> - -.global __unified_syscall -__unified_syscall: - callsys - bne $19, .Lerror - ret $31, ($26), 0x01 - -.Lerror: -.global error_unified_syscall -error_unified_syscall: -#ifdef WANT_THREAD_SAVE - lda $sp, -16($sp) /* alloc 2 qwords on stack */ - stq $26, 0($sp) /* save ra to stack */ - stq $0, 8($sp) /* save v0 to stack */ - - jsr $26, __errno_location /* call __errno_location */ - - ldq $1, 8($sp) /* write old v0 to errno */ - stl $1, 0($0) - - lda $0, -1($31) /* new return value is -1 */ - ldq $26, 0($sp) /* restore return address */ - lda $sp, 16($sp) /* free 2 qwords on stack */ -#else - lda $1, errno - stl $0, 0($1) -#endif - ret $31, ($26), 0x01 /* return */ diff --git a/mdk-stage1/dietlibc/alpha/utime.S b/mdk-stage1/dietlibc/alpha/utime.S deleted file mode 100644 index a9a8aada6..000000000 --- a/mdk-stage1/dietlibc/alpha/utime.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(utimes,utime) diff --git a/mdk-stage1/dietlibc/alpha/waitpid.S b/mdk-stage1/dietlibc/alpha/waitpid.S deleted file mode 100644 index 0ff429e17..000000000 --- a/mdk-stage1/dietlibc/alpha/waitpid.S +++ /dev/null @@ -1,9 +0,0 @@ -#include <syscalls.h> - -.text -.align 2 -.weak __libc_waitpid -.global waitpid -waitpid: - clr $19 - br wait4 diff --git a/mdk-stage1/dietlibc/dietdirent.h b/mdk-stage1/dietlibc/dietdirent.h deleted file mode 100644 index d732cf7dc..000000000 --- a/mdk-stage1/dietlibc/dietdirent.h +++ /dev/null @@ -1,6 +0,0 @@ -struct __dirstream { - int fd; - char buf[1024]; - unsigned int num; - unsigned int cur; -}; /* stream data from opendir() */ diff --git a/mdk-stage1/dietlibc/dietfeatures.h b/mdk-stage1/dietlibc/dietfeatures.h deleted file mode 100644 index 979b40d62..000000000 --- a/mdk-stage1/dietlibc/dietfeatures.h +++ /dev/null @@ -1,16 +0,0 @@ - -/* feel free to comment some of these out to reduce code size */ - -//#define WANT_FLOATING_POINT_IN_PRINTF -//#define WANT_FLOATING_POINT_IN_SCANF -#define WANT_NULL_PRINTF - -#define SLASH_PROC_OK - -// #define WANT_BUFFERED_STDIO - -/* use errno_location instead of errno */ -// #define WANT_THREAD_SAVE - -/* do you want smaller or faster string routines? */ -#define WANT_SMALL_STRING_ROUTINES diff --git a/mdk-stage1/dietlibc/dietstdio.h b/mdk-stage1/dietlibc/dietstdio.h deleted file mode 100644 index 5cacbde23..000000000 --- a/mdk-stage1/dietlibc/dietstdio.h +++ /dev/null @@ -1,64 +0,0 @@ -/* diet stdio -- no buffering ;-} */ - -#include "dietfeatures.h" -#include <sys/types.h> - -#define BUFSIZE 128 - -typedef struct __file { - int fd; - int flags; -#ifdef WANT_BUFFERED_STDIO - int seekofs; - int bm; - char buf[BUFSIZE]; - struct __file *next; -#endif -} FILE; - -extern FILE *__stdio_root; - -#define ERRORINDICATOR 1 -#define EOFINDICATOR 2 -#define BUFINPUT 4 -#define BUFLINEWISE 8 - -/* internal function to flush buffer. - * However, if next is BUFINPUT and the buffer is an input buffer, it - * will not be flushed. Vice versa for output */ -extern int __fflush4(FILE *stream,int next); - -FILE *fopen (const char *path, const char *mode); -FILE *fdopen (int fildes, const char *mode); -FILE *freopen (const char *path, const char *mode, FILE *stream); - -int fgetc(FILE *stream); -char *fgets(char *s, int size, FILE *stream); -int getc(FILE *stream); -int getchar(void); -char *gets(char *s); -int ungetc(int c, FILE *stream); - -int fputc(int c, FILE *stream); -int fputs(const char *s, FILE *stream); -int putc(int c, FILE *stream); -int putchar(int c); -int puts(const char *s); - -int fseek( FILE *stream, long offset, int whence); -long ftell( FILE *stream); -void rewind( FILE *stream); -int fgetpos( FILE *stream, fpos_t *pos); -int fsetpos( FILE *stream, fpos_t *pos); - -size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream); - -size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream); - -int fflush(FILE *stream); - -int fclose(FILE *stream); - -extern FILE *stdout, *stderr, *stdin; - -#define EOF (int)(-1) diff --git a/mdk-stage1/dietlibc/dirstream.h b/mdk-stage1/dietlibc/dirstream.h deleted file mode 100644 index dc8fba79c..000000000 --- a/mdk-stage1/dietlibc/dirstream.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. -This file is part of the GNU C Library. - -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -/* - * POSIX Standard: 5.1.2 Directory Operations <dirent.h> - */ - -#ifndef _DIRSTREAM_H - -#define _DIRSTREAM_H 1 - -#include <sys/types.h> -#include <dirent.h> -#ifdef _POSIX_THREADS -#include <pthread.h> -#endif - -/* For now, syscall readdir () only supports one entry at a time. It - * will be changed in the future. -#define NUMENT 3 -*/ -#ifndef NUMENT -#define NUMENT 1 -#endif - -#define SINGLE_READDIR 11 -#define MULTI_READDIR 12 -#define NEW_READDIR 13 - -/* Directory stream type. */ -struct __dirstream { - /* file descriptor */ - int dd_fd; - - /* offset of the next dir entry in buffer */ - off_t dd_nextloc; - - /* bytes of valid entries in buffer */ - size_t dd_size; - - /* -> directory buffer */ - struct dirent *dd_buf; - - /* we have to convert */ - struct dirent convbuf; - - /* offset of the next dir entry in directory. */ - off_t dd_nextoff; - - /* total size of buffer */ - size_t dd_max; - - enum {unknown, have_getdents, no_getdents} dd_getdents; - - /* lock */ -#ifdef _POSIX_THREADS - pthread_mutex_t *dd_lock; -#else - void *dd_lock; -#endif -}; /* stream data from opendir() */ - -#endif /* dirent.h */ diff --git a/mdk-stage1/dietlibc/i386/Makefile.add b/mdk-stage1/dietlibc/i386/Makefile.add deleted file mode 100644 index 8d2914e66..000000000 --- a/mdk-stage1/dietlibc/i386/Makefile.add +++ /dev/null @@ -1,3 +0,0 @@ - -CFLAGS+=-march=i386 -mcpu=i386 -Os -fomit-frame-pointer -override VPATH=i386:syscalls.s:lib diff --git a/mdk-stage1/dietlibc/i386/__longjmp.S b/mdk-stage1/dietlibc/i386/__longjmp.S deleted file mode 100644 index 312e01ed1..000000000 --- a/mdk-stage1/dietlibc/i386/__longjmp.S +++ /dev/null @@ -1,20 +0,0 @@ -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> - -.text -.global __longjmp -__longjmp: - movl 4(%esp), %ecx /* User's jmp_buf in %ecx. */ - movl 8(%esp), %eax /* Second argument is return value. */ - /* Save the return address now. */ - movl (JB_PC*4)(%ecx), %edx - /* Restore registers. */ - movl (JB_BX*4)(%ecx), %ebx - movl (JB_SI*4)(%ecx), %esi - movl (JB_DI*4)(%ecx), %edi - movl (JB_BP*4)(%ecx), %ebp - movl (JB_SP*4)(%ecx), %esp - /* Jump to saved PC. */ - jmp *%edx -.size __longjmp,.-__longjmp; diff --git a/mdk-stage1/dietlibc/i386/mmap.c b/mdk-stage1/dietlibc/i386/mmap.c deleted file mode 100644 index 26ecb55c0..000000000 --- a/mdk-stage1/dietlibc/i386/mmap.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <linux/types.h> -#include <linux/unistd.h> - -#define __NR__mmap __NR_mmap -_syscall1(int,_mmap,unsigned long *,buffer) - -char *mmap(char *addr, size_t len, int prot, int flags, int fd, unsigned long off) { - unsigned long buffer[6]; - buffer[0] = (unsigned long)addr; - buffer[1] = (unsigned long)len; - buffer[2] = (unsigned long)prot; - buffer[3] = (unsigned long)flags; - buffer[4] = (unsigned long)fd; - buffer[5] = (unsigned long)off; - return (char*) _mmap(buffer); -} diff --git a/mdk-stage1/dietlibc/i386/select.S b/mdk-stage1/dietlibc/i386/select.S deleted file mode 100644 index 6e9fce8e3..000000000 --- a/mdk-stage1/dietlibc/i386/select.S +++ /dev/null @@ -1,6 +0,0 @@ -#include "syscalls.h" - -.text -.weak select -select: -syscall(_newselect,select) diff --git a/mdk-stage1/dietlibc/i386/setjmp.S b/mdk-stage1/dietlibc/i386/setjmp.S deleted file mode 100644 index d7898e58f..000000000 --- a/mdk-stage1/dietlibc/i386/setjmp.S +++ /dev/null @@ -1,64 +0,0 @@ -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> - -/* setjmp for i386. - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -.section .rodata -.text -.weak setjmp -setjmp: -.globl __setjmp -__setjmp: - popl %eax /* Pop return address. */ - popl %ecx /* Pop jmp_buf. */ - pushl $0 /* Push zero argument. */ - pushl %ecx /* Push jmp_buf. */ - pushl %eax /* Push back return address. */ - -.globl __sigsetjmp -__sigsetjmp: - movl 4(%esp), %eax /* User's jmp_buf in %eax. */ - /* Save registers. */ - movl %ebx, (JB_BX*4)(%eax) - movl %esi, (JB_SI*4)(%eax) - movl %edi, (JB_DI*4)(%eax) - movl %ebp, (JB_BP*4)(%eax) - leal 4(%esp), %ecx /* Save SP as it will be after we return. */ - movl %ecx, (JB_SP*4)(%eax) - movl 0(%esp), %ecx /* Save PC we are returning to now. */ - movl %ecx, (JB_PC*4)(%eax) - - /* Make a tail call to __sigjmp_save; it takes the same args. */ -#ifdef PIC - /* We cannot use the PLT, because it requires that %ebx be set, but - we can't save and restore our caller's value. Instead, we do an - indirect jump through the GOT, using for the temporary register - %ecx, which is call-clobbered. */ - call L(here) -L(here): - popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx - movl C_SYMBOL_NAME(__sigjmp_save@GOT)(%ecx), %ecx - jmp *%ecx -#else - jmp __sigjmp_save -#endif -.size __sigsetjmp,.-__sigsetjmp; diff --git a/mdk-stage1/dietlibc/i386/start.S b/mdk-stage1/dietlibc/i386/start.S deleted file mode 100644 index 8a2ba7e38..000000000 --- a/mdk-stage1/dietlibc/i386/start.S +++ /dev/null @@ -1,28 +0,0 @@ -#include "start.h" - -#ifdef __i386__ -.text -.globl _start -_start: -#if 0 - popl %ecx - movl %esp, %edx - leal 4(%esp,%ecx,4),%eax -#else - movl (%esp),%ecx /* %ecx = argc */ - leal 4(%esp),%edx /* %edx = argv */ - - leal 4(%edx,%ecx,4),%eax /* eax = 4*ecx+4 = envp */ -#endif - pushl %eax - pushl %edx - pushl %ecx - movl %eax,environ - - call main - pushl %eax - call exit -.Lfefe: - .size _start,.Lfefe-_start -#endif - diff --git a/mdk-stage1/dietlibc/i386/strchr.S b/mdk-stage1/dietlibc/i386/strchr.S deleted file mode 100644 index 0a2a5aa52..000000000 --- a/mdk-stage1/dietlibc/i386/strchr.S +++ /dev/null @@ -1,47 +0,0 @@ -#define NEW - -.text -.global strchr -strchr: - mov %esi,%edx - mov 0x4(%esp,1),%esi - mov 0x8(%esp,1),%cl - cld -.L1: - lods (%esi),%eax - cmp %al,%cl - jz .Lafound - test %al,%al - jz .Lnotfound - - cmp %ah,%cl - jz .Lbfound - test %ah,%ah - jz .Lnotfound - - shr $16,%eax - cmp %al,%cl - jz .Lcfound - test %al,%al - jz .Lnotfound - - cmp %ah,%cl - jz .Ldfound - test %ah,%ah - - jnz .L1 -.Lnotfound: - sub %eax,%eax - mov %edx,%esi - ret -.Lafound: - dec %esi -.Lbfound: - dec %esi -.Lcfound: - dec %esi -.Ldfound: - mov %esi,%eax - mov %edx,%esi - dec %eax - ret diff --git a/mdk-stage1/dietlibc/i386/unified.S b/mdk-stage1/dietlibc/i386/unified.S deleted file mode 100644 index 740cb0ecc..000000000 --- a/mdk-stage1/dietlibc/i386/unified.S +++ /dev/null @@ -1,33 +0,0 @@ -#include <dietfeatures.h> - -.text -.global __unified_syscall -__unified_syscall: - and $0xff,%eax - push %edi - push %esi - push %ebx - movl 0x10(%esp),%ebx - movl 0x14(%esp),%ecx - movl 0x18(%esp),%edx - movl 0x1c(%esp),%esi - movl 0x20(%esp),%edi - int $0x80 - cmp $-124,%eax - jbe .Lnoerror -#ifdef WANT_THREAD_SAVE - movl %eax,%ebx - call __errno_location - neg %ebx - movl %ebx,(%eax) -#else - neg %eax - mov %eax,errno -#endif - xor %eax,%eax - dec %eax -.Lnoerror: - pop %ebx - pop %esi - pop %edi - ret diff --git a/mdk-stage1/dietlibc/include/arpa/inet.h b/mdk-stage1/dietlibc/include/arpa/inet.h deleted file mode 100644 index 6aa71a162..000000000 --- a/mdk-stage1/dietlibc/include/arpa/inet.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _ARPA_INET_H -#define _ARPA_INET_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -int inet_aton(const char *cp, struct in_addr *inp) __THROW; -unsigned long int inet_addr(const char *cp) __THROW; -unsigned long int inet_network(const char *cp) __THROW; -char *inet_ntoa(struct in_addr in) __THROW; -struct in_addr inet_makeaddr(int net, int host) __THROW; -unsigned long int inet_lnaof(struct in_addr in) __THROW; -unsigned long int inet_netof(struct in_addr in) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/assert.h b/mdk-stage1/dietlibc/include/assert.h deleted file mode 100644 index adf956022..000000000 --- a/mdk-stage1/dietlibc/include/assert.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _ASSERT_H -#define _ASSERT_H - -#include <sys/cdefs.h> - -/* This prints an "Assertion failed" message and aborts. */ -extern void __assert_fail (__const char *__assertion, __const char *__file, - unsigned int __line, __const char *__function) - __THROW __attribute__ ((__noreturn__)); - -#ifdef __PRETTY_FUNCTION__ -#define __ASSERT_FUNCTION __PRETTY_FUNCTION__ -#else -#define __ASSERT_FUNCTION __func__ -#endif - -#undef assert -# define assert(expr) \ - ((void) ((expr) ? 0 : \ - (__assert_fail (#expr, \ - __FILE__, __LINE__, __ASSERT_FUNCTION), 0))) - -#endif diff --git a/mdk-stage1/dietlibc/include/ctype.h b/mdk-stage1/dietlibc/include/ctype.h deleted file mode 100644 index c8f4e5a34..000000000 --- a/mdk-stage1/dietlibc/include/ctype.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _CTYPE_H -#define _CTYPE_H - -#include <sys/cdefs.h> - -extern int isascii (int c) __THROW; -extern int isblank (int c) __THROW; -extern int isalnum (int c) __THROW; -extern int isalpha (int c) __THROW; -extern int isdigit (int c) __THROW; -extern int isspace (int c) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/dirent.h b/mdk-stage1/dietlibc/include/dirent.h deleted file mode 100644 index d277c0762..000000000 --- a/mdk-stage1/dietlibc/include/dirent.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef _DIRENT_H -#define _DIRENT_H 1 - -#include <sys/cdefs.h> -#include <sys/types.h> - -#include <linux/dirent.h> - -#if 0 -struct dirent - { -#ifndef __USE_FILE_OFFSET64 - ino_t d_ino; - off_t d_off; -#else - ino64_t d_ino; - off64_t d_off; -#endif - unsigned short int d_reclen; - unsigned char d_type; - char d_name[256]; /* We must not include limits.h! */ - }; - -#ifdef __USE_LARGEFILE64 -struct dirent64 - { - ino64_t d_ino; - off64_t d_off; - unsigned short int d_reclen; - unsigned char d_type; - char d_name[256]; /* We must not include limits.h! */ - }; -#endif -#endif - -#define d_fileno d_ino /* Backwards compatibility. */ - -#undef _DIRENT_HAVE_D_NAMLEN -#define _DIRENT_HAVE_D_RECLEN -#define _DIRENT_HAVE_D_OFF -#define _DIRENT_HAVE_D_TYPE - -#define opendir(name) __dietopendir(name) -#define closedir(dir) __dietclosedir(dir) -#define readdir(dir) __dietreaddir(dir) -#define readdir64(dir) __dietreaddir64(dir) -#define rewinddir(dir) __dietrewinddir64(dir) -#define seekdir(dir,pos) __dietseekdir(dir,pos) -#define telldir(dir) __diettelldir(dir) - -typedef struct __dirstream DIR; - -DIR *opendir (const char *__name) __THROW; -int closedir (DIR *__dirp) __THROW; -struct dirent *readdir (DIR *__dirp) __THROW; -struct dirent64 *readdir64 (DIR *__dirp) __THROW; -void rewinddir (DIR *__dirp) __THROW; -void seekdir (DIR *__dirp, long int __pos) __THROW; -long int telldir (DIR *__dirp) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/elf.h b/mdk-stage1/dietlibc/include/elf.h deleted file mode 100644 index bf9f1ea89..000000000 --- a/mdk-stage1/dietlibc/include/elf.h +++ /dev/null @@ -1,1989 +0,0 @@ -/* This file defines standard ELF types, structures, and macros. - Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _ELF_H -#define _ELF_H 1 - -/* Standard ELF types. */ - -#include <stdint.h> - -/* Type for a 16-bit quantity. */ -typedef uint16_t Elf32_Half; -typedef uint16_t Elf64_Half; - -/* Types for signed and unsigned 32-bit quantities. */ -typedef uint32_t Elf32_Word; -typedef int32_t Elf32_Sword; -typedef uint32_t Elf64_Word; -typedef int32_t Elf64_Sword; - -/* Types for signed and unsigned 64-bit quantities. */ -typedef uint64_t Elf32_Xword; -typedef int64_t Elf32_Sxword; -typedef uint64_t Elf64_Xword; -typedef int64_t Elf64_Sxword; - -/* Type of addresses. */ -typedef uint32_t Elf32_Addr; -typedef uint64_t Elf64_Addr; - -/* Type of file offsets. */ -typedef uint32_t Elf32_Off; -typedef uint64_t Elf64_Off; - -/* Type for section indices, which are 16-bit quantities. */ -typedef uint16_t Elf32_Section; -typedef uint16_t Elf64_Section; - -/* Type for version symbol information. */ -typedef Elf32_Half Elf32_Versym; -typedef Elf64_Half Elf64_Versym; - - -/* The ELF file header. This appears at the start of every ELF file. */ - -#define EI_NIDENT (16) - -typedef struct -{ - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - Elf32_Half e_type; /* Object file type */ - Elf32_Half e_machine; /* Architecture */ - Elf32_Word e_version; /* Object file version */ - Elf32_Addr e_entry; /* Entry point virtual address */ - Elf32_Off e_phoff; /* Program header table file offset */ - Elf32_Off e_shoff; /* Section header table file offset */ - Elf32_Word e_flags; /* Processor-specific flags */ - Elf32_Half e_ehsize; /* ELF header size in bytes */ - Elf32_Half e_phentsize; /* Program header table entry size */ - Elf32_Half e_phnum; /* Program header table entry count */ - Elf32_Half e_shentsize; /* Section header table entry size */ - Elf32_Half e_shnum; /* Section header table entry count */ - Elf32_Half e_shstrndx; /* Section header string table index */ -} Elf32_Ehdr; - -typedef struct -{ - unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ - Elf64_Half e_type; /* Object file type */ - Elf64_Half e_machine; /* Architecture */ - Elf64_Word e_version; /* Object file version */ - Elf64_Addr e_entry; /* Entry point virtual address */ - Elf64_Off e_phoff; /* Program header table file offset */ - Elf64_Off e_shoff; /* Section header table file offset */ - Elf64_Word e_flags; /* Processor-specific flags */ - Elf64_Half e_ehsize; /* ELF header size in bytes */ - Elf64_Half e_phentsize; /* Program header table entry size */ - Elf64_Half e_phnum; /* Program header table entry count */ - Elf64_Half e_shentsize; /* Section header table entry size */ - Elf64_Half e_shnum; /* Section header table entry count */ - Elf64_Half e_shstrndx; /* Section header string table index */ -} Elf64_Ehdr; - -/* Fields in the e_ident array. The EI_* macros are indices into the - array. The macros under each EI_* macro are the values the byte - may have. */ - -#define EI_MAG0 0 /* File identification byte 0 index */ -#define ELFMAG0 0x7f /* Magic number byte 0 */ - -#define EI_MAG1 1 /* File identification byte 1 index */ -#define ELFMAG1 'E' /* Magic number byte 1 */ - -#define EI_MAG2 2 /* File identification byte 2 index */ -#define ELFMAG2 'L' /* Magic number byte 2 */ - -#define EI_MAG3 3 /* File identification byte 3 index */ -#define ELFMAG3 'F' /* Magic number byte 3 */ - -/* Conglomeration of the identification bytes, for easy testing as a word. */ -#define ELFMAG "\177ELF" -#define SELFMAG 4 - -#define EI_CLASS 4 /* File class byte index */ -#define ELFCLASSNONE 0 /* Invalid class */ -#define ELFCLASS32 1 /* 32-bit objects */ -#define ELFCLASS64 2 /* 64-bit objects */ -#define ELFCLASSNUM 3 - -#define EI_DATA 5 /* Data encoding byte index */ -#define ELFDATANONE 0 /* Invalid data encoding */ -#define ELFDATA2LSB 1 /* 2's complement, little endian */ -#define ELFDATA2MSB 2 /* 2's complement, big endian */ -#define ELFDATANUM 3 - -#define EI_VERSION 6 /* File version byte index */ - /* Value must be EV_CURRENT */ - -#define EI_OSABI 7 /* OS ABI identification */ -#define ELFOSABI_SYSV 0 /* UNIX System V ABI */ -#define ELFOSABI_HPUX 1 /* HP-UX */ -#define ELFOSABI_ARM 97 /* ARM */ -#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ - -#define EI_ABIVERSION 8 /* ABI version */ - -#define EI_PAD 9 /* Byte index of padding bytes */ - -/* Legal values for e_type (object file type). */ - -#define ET_NONE 0 /* No file type */ -#define ET_REL 1 /* Relocatable file */ -#define ET_EXEC 2 /* Executable file */ -#define ET_DYN 3 /* Shared object file */ -#define ET_CORE 4 /* Core file */ -#define ET_NUM 5 /* Number of defined types */ -#define ET_LOOS 0xfe00 /* OS-specific range start */ -#define ET_HIOS 0xfeff /* OS-specific range end */ -#define ET_LOPROC 0xff00 /* Processor-specific range start */ -#define ET_HIPROC 0xffff /* Processor-specific range end */ - -/* Legal values for e_machine (architecture). */ - -#define EM_NONE 0 /* No machine */ -#define EM_M32 1 /* AT&T WE 32100 */ -#define EM_SPARC 2 /* SUN SPARC */ -#define EM_386 3 /* Intel 80386 */ -#define EM_68K 4 /* Motorola m68k family */ -#define EM_88K 5 /* Motorola m88k family */ -#define EM_860 7 /* Intel 80860 */ -#define EM_MIPS 8 /* MIPS R3000 big-endian */ -#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ - -#define EM_PARISC 15 /* HPPA */ -#define EM_VPP500 17 /* Fujitsu VPP500 */ -#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ -#define EM_960 19 /* Intel 80960 */ -#define EM_PPC 20 /* PowerPC */ -#define EM_PPC64 21 /* PowerPC 64-bit */ - -#define EM_V800 36 /* NEC V800 series */ -#define EM_FR20 37 /* Fujitsu FR20 */ -#define EM_RH32 38 /* TRW RH-32 */ -#define EM_RCE 39 /* Motorola RCE */ -#define EM_ARM 40 /* ARM */ -#define EM_FAKE_ALPHA 41 /* Digital Alpha */ -#define EM_SH 42 /* Hitachi SH */ -#define EM_SPARCV9 43 /* SPARC v9 64-bit */ -#define EM_TRICORE 44 /* Siemens Tricore */ -#define EM_ARC 45 /* Argonaut RISC Core */ -#define EM_H8_300 46 /* Hitachi H8/300 */ -#define EM_H8_300H 47 /* Hitachi H8/300H */ -#define EM_H8S 48 /* Hitachi H8S */ -#define EM_H8_500 49 /* Hitachi H8/500 */ -#define EM_IA_64 50 /* Intel Merced */ -#define EM_MIPS_X 51 /* Stanford MIPS-X */ -#define EM_COLDFIRE 52 /* Motorola Coldfire */ -#define EM_68HC12 53 /* Motorola M68HC12 */ -#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/ -#define EM_PCP 55 /* Siemens PCP */ -#define EM_NCPU 56 /* Sony nCPU embeeded RISC */ -#define EM_NDR1 57 /* Denso NDR1 microprocessor */ -#define EM_STARCORE 58 /* Motorola Start*Core processor */ -#define EM_ME16 59 /* Toyota ME16 processor */ -#define EM_ST100 60 /* STMicroelectronic ST100 processor */ -#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/ -#define EM_X8664 62 /* AMD x86-64 */ - -#define EM_FX66 66 /* Siemens FX66 microcontroller */ -#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ -#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */ -#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ -#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ -#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ -#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */ -#define EM_SVX 73 /* Silicon Graphics SVx */ -#define EM_AT19 74 /* STMicroelectronics ST19 8 bit mc */ -#define EM_VAX 75 /* Digital VAX */ -#define EM_NUM 76 - -/* If it is necessary to assign new unofficial EM_* values, please - pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the - chances of collision with official or non-GNU unofficial values. */ - -#define EM_ALPHA 0x9026 -#define EM_S390 0xA390 /* IBM S390 */ - -/* Legal values for e_version (version). */ - -#define EV_NONE 0 /* Invalid ELF version */ -#define EV_CURRENT 1 /* Current version */ -#define EV_NUM 2 - -/* Section header. */ - -typedef struct -{ - Elf32_Word sh_name; /* Section name (string tbl index) */ - Elf32_Word sh_type; /* Section type */ - Elf32_Word sh_flags; /* Section flags */ - Elf32_Addr sh_addr; /* Section virtual addr at execution */ - Elf32_Off sh_offset; /* Section file offset */ - Elf32_Word sh_size; /* Section size in bytes */ - Elf32_Word sh_link; /* Link to another section */ - Elf32_Word sh_info; /* Additional section information */ - Elf32_Word sh_addralign; /* Section alignment */ - Elf32_Word sh_entsize; /* Entry size if section holds table */ -} Elf32_Shdr; - -typedef struct -{ - Elf64_Word sh_name; /* Section name (string tbl index) */ - Elf64_Word sh_type; /* Section type */ - Elf64_Xword sh_flags; /* Section flags */ - Elf64_Addr sh_addr; /* Section virtual addr at execution */ - Elf64_Off sh_offset; /* Section file offset */ - Elf64_Xword sh_size; /* Section size in bytes */ - Elf64_Word sh_link; /* Link to another section */ - Elf64_Word sh_info; /* Additional section information */ - Elf64_Xword sh_addralign; /* Section alignment */ - Elf64_Xword sh_entsize; /* Entry size if section holds table */ -} Elf64_Shdr; - -/* Special section indices. */ - -#define SHN_UNDEF 0 /* Undefined section */ -#define SHN_LORESERVE 0xff00 /* Start of reserved indices */ -#define SHN_LOPROC 0xff00 /* Start of processor-specific */ -#define SHN_HIPROC 0xff1f /* End of processor-specific */ -#define SHN_LOOS 0xff20 /* Start of OS-specific */ -#define SHN_HIOS 0xff3f /* End of OS-specific */ -#define SHN_ABS 0xfff1 /* Associated symbol is absolute */ -#define SHN_COMMON 0xfff2 /* Associated symbol is common */ -#define SHN_XINDEX 0xffff /* Index is in extra table. */ -#define SHN_HIRESERVE 0xffff /* End of reserved indices */ - -/* Legal values for sh_type (section type). */ - -#define SHT_NULL 0 /* Section header table entry unused */ -#define SHT_PROGBITS 1 /* Program data */ -#define SHT_SYMTAB 2 /* Symbol table */ -#define SHT_STRTAB 3 /* String table */ -#define SHT_RELA 4 /* Relocation entries with addends */ -#define SHT_HASH 5 /* Symbol hash table */ -#define SHT_DYNAMIC 6 /* Dynamic linking information */ -#define SHT_NOTE 7 /* Notes */ -#define SHT_NOBITS 8 /* Program space with no data (bss) */ -#define SHT_REL 9 /* Relocation entries, no addends */ -#define SHT_SHLIB 10 /* Reserved */ -#define SHT_DYNSYM 11 /* Dynamic linker symbol table */ -#define SHT_INIT_ARRAY 14 /* Array of constructors */ -#define SHT_FINI_ARRAY 15 /* Array of destructors */ -#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */ -#define SHT_GROUP 17 /* Section group */ -#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */ -#define SHT_NUM 19 /* Number of defined types. */ -#define SHT_LOOS 0x60000000 /* Start OS-specific */ -#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */ -#define SHT_SUNW_move 0x6ffffffa -#define SHT_SUNW_COMDAT 0x6ffffffb -#define SHT_SUNW_syminfo 0x6ffffffc -#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */ -#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */ -#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */ -#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */ -#define SHT_HIOS 0x6fffffff /* End OS-specific type */ -#define SHT_LOPROC 0x70000000 /* Start of processor-specific */ -#define SHT_HIPROC 0x7fffffff /* End of processor-specific */ -#define SHT_LOUSER 0x80000000 /* Start of application-specific */ -#define SHT_HIUSER 0x8fffffff /* End of application-specific */ - -/* Legal values for sh_flags (section flags). */ - -#define SHF_WRITE (1 << 0) /* Writable */ -#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */ -#define SHF_EXECINSTR (1 << 2) /* Executable */ -#define SHF_MERGE (1 << 4) /* Might be merged */ -#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */ -#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */ -#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */ -#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling - required */ -#define SHF_MASKOS 0x0ff00000 /* OS-specific. */ -#define SHF_MASKPROC 0xf0000000 /* Processor-specific */ - -/* Section group handling. */ -#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */ - -/* Symbol table entry. */ - -typedef struct -{ - Elf32_Word st_name; /* Symbol name (string tbl index) */ - Elf32_Addr st_value; /* Symbol value */ - Elf32_Word st_size; /* Symbol size */ - unsigned char st_info; /* Symbol type and binding */ - unsigned char st_other; /* Symbol visibility */ - Elf32_Section st_shndx; /* Section index */ -} Elf32_Sym; - -typedef struct -{ - Elf64_Word st_name; /* Symbol name (string tbl index) */ - unsigned char st_info; /* Symbol type and binding */ - unsigned char st_other; /* Symbol visibility */ - Elf64_Section st_shndx; /* Section index */ - Elf64_Addr st_value; /* Symbol value */ - Elf64_Xword st_size; /* Symbol size */ -} Elf64_Sym; - -/* The syminfo section if available contains additional information about - every dynamic symbol. */ - -typedef struct -{ - Elf32_Half si_boundto; /* Direct bindings, symbol bound to */ - Elf32_Half si_flags; /* Per symbol flags */ -} Elf32_Syminfo; - -typedef struct -{ - Elf64_Half si_boundto; /* Direct bindings, symbol bound to */ - Elf64_Half si_flags; /* Per symbol flags */ -} Elf64_Syminfo; - -/* Possible values for si_boundto. */ -#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */ -#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */ -#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */ - -/* Possible bitmasks for si_flags. */ -#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ -#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ -#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ -#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy - loaded */ -/* Syminfo version values. */ -#define SYMINFO_NONE 0 -#define SYMINFO_CURRENT 1 -#define SYMINFO_NUM 2 - - -/* Special section index. */ - -#define SHN_UNDEF 0 /* No section, undefined symbol. */ - -/* How to extract and insert information held in the st_info field. */ - -#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) -#define ELF32_ST_TYPE(val) ((val) & 0xf) -#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) - -/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */ -#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) -#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) -#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) - -/* Legal values for ST_BIND subfield of st_info (symbol binding). */ - -#define STB_LOCAL 0 /* Local symbol */ -#define STB_GLOBAL 1 /* Global symbol */ -#define STB_WEAK 2 /* Weak symbol */ -#define STB_NUM 3 /* Number of defined types. */ -#define STB_LOOS 10 /* Start of OS-specific */ -#define STB_HIOS 12 /* End of OS-specific */ -#define STB_LOPROC 13 /* Start of processor-specific */ -#define STB_HIPROC 15 /* End of processor-specific */ - -/* Legal values for ST_TYPE subfield of st_info (symbol type). */ - -#define STT_NOTYPE 0 /* Symbol type is unspecified */ -#define STT_OBJECT 1 /* Symbol is a data object */ -#define STT_FUNC 2 /* Symbol is a code object */ -#define STT_SECTION 3 /* Symbol associated with a section */ -#define STT_FILE 4 /* Symbol's name is file name */ -#define STT_COMMON 5 /* Symbol is a common data object */ -#define STT_NUM 6 /* Number of defined types. */ -#define STT_LOOS 10 /* Start of OS-specific */ -#define STT_HIOS 12 /* End of OS-specific */ -#define STT_LOPROC 13 /* Start of processor-specific */ -#define STT_HIPROC 15 /* End of processor-specific */ - - -/* Symbol table indices are found in the hash buckets and chain table - of a symbol hash table section. This special index value indicates - the end of a chain, meaning no further symbols are found in that bucket. */ - -#define STN_UNDEF 0 /* End of a chain. */ - - -/* How to extract and insert information held in the st_other field. */ - -#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) - -/* For ELF64 the definitions are the same. */ -#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) - -/* Symbol visibility specification encoded in the st_other field. */ -#define STV_DEFAULT 0 /* Default symbol visibility rules */ -#define STV_INTERNAL 1 /* Processor specific hidden class */ -#define STV_HIDDEN 2 /* Sym unavailable in other modules */ -#define STV_PROTECTED 3 /* Not preemptible, not exported */ - - -/* Relocation table entry without addend (in section of type SHT_REL). */ - -typedef struct -{ - Elf32_Addr r_offset; /* Address */ - Elf32_Word r_info; /* Relocation type and symbol index */ -} Elf32_Rel; - -/* I have seen two different definitions of the Elf64_Rel and - Elf64_Rela structures, so we'll leave them out until Novell (or - whoever) gets their act together. */ -/* The following, at least, is used on Sparc v9, MIPS, and Alpha. */ - -typedef struct -{ - Elf64_Addr r_offset; /* Address */ - Elf64_Xword r_info; /* Relocation type and symbol index */ -} Elf64_Rel; - -/* Relocation table entry with addend (in section of type SHT_RELA). */ - -typedef struct -{ - Elf32_Addr r_offset; /* Address */ - Elf32_Word r_info; /* Relocation type and symbol index */ - Elf32_Sword r_addend; /* Addend */ -} Elf32_Rela; - -typedef struct -{ - Elf64_Addr r_offset; /* Address */ - Elf64_Xword r_info; /* Relocation type and symbol index */ - Elf64_Sxword r_addend; /* Addend */ -} Elf64_Rela; - -/* How to extract and insert information held in the r_info field. */ - -#define ELF32_R_SYM(val) ((val) >> 8) -#define ELF32_R_TYPE(val) ((val) & 0xff) -#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) - -#define ELF64_R_SYM(i) ((i) >> 32) -#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) - -/* Program segment header. */ - -typedef struct -{ - Elf32_Word p_type; /* Segment type */ - Elf32_Off p_offset; /* Segment file offset */ - Elf32_Addr p_vaddr; /* Segment virtual address */ - Elf32_Addr p_paddr; /* Segment physical address */ - Elf32_Word p_filesz; /* Segment size in file */ - Elf32_Word p_memsz; /* Segment size in memory */ - Elf32_Word p_flags; /* Segment flags */ - Elf32_Word p_align; /* Segment alignment */ -} Elf32_Phdr; - -typedef struct -{ - Elf64_Word p_type; /* Segment type */ - Elf64_Word p_flags; /* Segment flags */ - Elf64_Off p_offset; /* Segment file offset */ - Elf64_Addr p_vaddr; /* Segment virtual address */ - Elf64_Addr p_paddr; /* Segment physical address */ - Elf64_Xword p_filesz; /* Segment size in file */ - Elf64_Xword p_memsz; /* Segment size in memory */ - Elf64_Xword p_align; /* Segment alignment */ -} Elf64_Phdr; - -/* Legal values for p_type (segment type). */ - -#define PT_NULL 0 /* Program header table entry unused */ -#define PT_LOAD 1 /* Loadable program segment */ -#define PT_DYNAMIC 2 /* Dynamic linking information */ -#define PT_INTERP 3 /* Program interpreter */ -#define PT_NOTE 4 /* Auxiliary information */ -#define PT_SHLIB 5 /* Reserved */ -#define PT_PHDR 6 /* Entry for header table itself */ -#define PT_NUM 7 /* Number of defined types */ -#define PT_LOOS 0x60000000 /* Start of OS-specific */ -#define PT_HIOS 0x6fffffff /* End of OS-specific */ -#define PT_LOPROC 0x70000000 /* Start of processor-specific */ -#define PT_HIPROC 0x7fffffff /* End of processor-specific */ - -/* Legal values for p_flags (segment flags). */ - -#define PF_X (1 << 0) /* Segment is executable */ -#define PF_W (1 << 1) /* Segment is writable */ -#define PF_R (1 << 2) /* Segment is readable */ -#define PF_MASKOS 0x0ff00000 /* OS-specific */ -#define PF_MASKPROC 0xf0000000 /* Processor-specific */ - -/* Legal values for note segment descriptor types for core files. */ - -#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */ -#define NT_FPREGSET 2 /* Contains copy of fpregset struct */ -#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ -#define NT_PRXREG 4 /* Contains copy of prxregset struct */ -#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */ -#define NT_AUXV 6 /* Contains copy of auxv array */ -#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */ -#define NT_PSTATUS 10 /* Contains copy of pstatus struct */ -#define NT_PSINFO 13 /* Contains copy of psinfo struct */ -#define NT_PRCRED 14 /* Contains copy of prcred struct */ -#define NT_UTSNAME 15 /* Contains copy of utsname struct */ -#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */ -#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */ -#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct*/ - -/* Legal values for the note segment descriptor types for object files. */ - -#define NT_VERSION 1 /* Contains a version string. */ - - -/* Dynamic section entry. */ - -typedef struct -{ - Elf32_Sword d_tag; /* Dynamic entry type */ - union - { - Elf32_Word d_val; /* Integer value */ - Elf32_Addr d_ptr; /* Address value */ - } d_un; -} Elf32_Dyn; - -typedef struct -{ - Elf64_Sxword d_tag; /* Dynamic entry type */ - union - { - Elf64_Xword d_val; /* Integer value */ - Elf64_Addr d_ptr; /* Address value */ - } d_un; -} Elf64_Dyn; - -/* Legal values for d_tag (dynamic entry type). */ - -#define DT_NULL 0 /* Marks end of dynamic section */ -#define DT_NEEDED 1 /* Name of needed library */ -#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */ -#define DT_PLTGOT 3 /* Processor defined value */ -#define DT_HASH 4 /* Address of symbol hash table */ -#define DT_STRTAB 5 /* Address of string table */ -#define DT_SYMTAB 6 /* Address of symbol table */ -#define DT_RELA 7 /* Address of Rela relocs */ -#define DT_RELASZ 8 /* Total size of Rela relocs */ -#define DT_RELAENT 9 /* Size of one Rela reloc */ -#define DT_STRSZ 10 /* Size of string table */ -#define DT_SYMENT 11 /* Size of one symbol table entry */ -#define DT_INIT 12 /* Address of init function */ -#define DT_FINI 13 /* Address of termination function */ -#define DT_SONAME 14 /* Name of shared object */ -#define DT_RPATH 15 /* Library search path (deprecated) */ -#define DT_SYMBOLIC 16 /* Start symbol search here */ -#define DT_REL 17 /* Address of Rel relocs */ -#define DT_RELSZ 18 /* Total size of Rel relocs */ -#define DT_RELENT 19 /* Size of one Rel reloc */ -#define DT_PLTREL 20 /* Type of reloc in PLT */ -#define DT_DEBUG 21 /* For debugging; unspecified */ -#define DT_TEXTREL 22 /* Reloc might modify .text */ -#define DT_JMPREL 23 /* Address of PLT relocs */ -#define DT_BIND_NOW 24 /* Process relocations of object */ -#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */ -#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */ -#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */ -#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */ -#define DT_RUNPATH 29 /* Library search path */ -#define DT_FLAGS 30 /* Flags for the object being loaded */ -#define DT_ENCODING 32 /* Start of encoded range */ -#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/ -#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */ -#define DT_NUM 34 /* Number used */ -#define DT_LOOS 0x60000000 /* Start of OS-specific */ -#define DT_HIOS 0x6fffffff /* End of OS-specific */ -#define DT_LOPROC 0x70000000 /* Start of processor-specific */ -#define DT_HIPROC 0x7fffffff /* End of processor-specific */ -#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */ - -/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the - Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's - approach. */ -#define DT_VALRNGLO 0x6ffffd00 -#define DT_PLTPADSZ 0x6ffffdf9 -#define DT_MOVEENT 0x6ffffdfa -#define DT_MOVESZ 0x6ffffdfb -#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */ -#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting - the following DT_* entry. */ -#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */ -#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */ -#define DT_VALRNGHI 0x6ffffdff - -/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the - Dyn.d_un.d_ptr field of the Elf*_Dyn structure. - - If any adjustment is made to the ELF object after it has been - built these entries will need to be adjusted. */ -#define DT_ADDRRNGLO 0x6ffffe00 -#define DT_SYMINFO 0x6ffffeff /* syminfo table */ -#define DT_ADDRRNGHI 0x6ffffeff - -/* The versioning entry types. The next are defined as part of the - GNU extension. */ -#define DT_VERSYM 0x6ffffff0 - -#define DT_RELACOUNT 0x6ffffff9 -#define DT_RELCOUNT 0x6ffffffa - -/* These were chosen by Sun. */ -#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */ -#define DT_VERDEF 0x6ffffffc /* Address of version definition - table */ -#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */ -#define DT_VERNEED 0x6ffffffe /* Address of table with needed - versions */ -#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */ -#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */ -#define DT_VERSIONTAGNUM 16 - -/* Sun added these machine-independent extensions in the "processor-specific" - range. Be compatible. */ -#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */ -#define DT_FILTER 0x7fffffff /* Shared object to get values from */ -#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) -#define DT_EXTRANUM 3 - -/* Values of `d_un.d_val' in the DT_FLAGS entry. */ -#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */ -#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */ -#define DF_TEXTREL 0x00000004 /* Object contains text relocations */ -#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */ - -/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1 - entry in the dynamic section. */ -#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */ -#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */ -#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */ -#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/ -#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/ -#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/ -#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */ -#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */ -#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */ -#define DF_1_TRANS 0x00000200 -#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */ -#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */ -#define DF_1_NODUMP 0x00001000 -#define DF_1_CONFALT 0x00002000 -#define DF_1_ENDFILTEE 0x00004000 - -/* Flags for the feature selection in DT_FEATURE_1. */ -#define DTF_1_PARINIT 0x00000001 -#define DTF_1_CONFEXP 0x00000002 - -/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */ -#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */ -#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not - generally available. */ - -/* Version definition sections. */ - -typedef struct -{ - Elf32_Half vd_version; /* Version revision */ - Elf32_Half vd_flags; /* Version information */ - Elf32_Half vd_ndx; /* Version Index */ - Elf32_Half vd_cnt; /* Number of associated aux entries */ - Elf32_Word vd_hash; /* Version name hash value */ - Elf32_Word vd_aux; /* Offset in bytes to verdaux array */ - Elf32_Word vd_next; /* Offset in bytes to next verdef - entry */ -} Elf32_Verdef; - -typedef struct -{ - Elf64_Half vd_version; /* Version revision */ - Elf64_Half vd_flags; /* Version information */ - Elf64_Half vd_ndx; /* Version Index */ - Elf64_Half vd_cnt; /* Number of associated aux entries */ - Elf64_Word vd_hash; /* Version name hash value */ - Elf64_Word vd_aux; /* Offset in bytes to verdaux array */ - Elf64_Word vd_next; /* Offset in bytes to next verdef - entry */ -} Elf64_Verdef; - - -/* Legal values for vd_version (version revision). */ -#define VER_DEF_NONE 0 /* No version */ -#define VER_DEF_CURRENT 1 /* Current version */ -#define VER_DEF_NUM 2 /* Given version number */ - -/* Legal values for vd_flags (version information flags). */ -#define VER_FLG_BASE 0x1 /* Version definition of file itself */ -#define VER_FLG_WEAK 0x2 /* Weak version identifier */ - -/* Auxialiary version information. */ - -typedef struct -{ - Elf32_Word vda_name; /* Version or dependency names */ - Elf32_Word vda_next; /* Offset in bytes to next verdaux - entry */ -} Elf32_Verdaux; - -typedef struct -{ - Elf64_Word vda_name; /* Version or dependency names */ - Elf64_Word vda_next; /* Offset in bytes to next verdaux - entry */ -} Elf64_Verdaux; - - -/* Version dependency section. */ - -typedef struct -{ - Elf32_Half vn_version; /* Version of structure */ - Elf32_Half vn_cnt; /* Number of associated aux entries */ - Elf32_Word vn_file; /* Offset of filename for this - dependency */ - Elf32_Word vn_aux; /* Offset in bytes to vernaux array */ - Elf32_Word vn_next; /* Offset in bytes to next verneed - entry */ -} Elf32_Verneed; - -typedef struct -{ - Elf64_Half vn_version; /* Version of structure */ - Elf64_Half vn_cnt; /* Number of associated aux entries */ - Elf64_Word vn_file; /* Offset of filename for this - dependency */ - Elf64_Word vn_aux; /* Offset in bytes to vernaux array */ - Elf64_Word vn_next; /* Offset in bytes to next verneed - entry */ -} Elf64_Verneed; - - -/* Legal values for vn_version (version revision). */ -#define VER_NEED_NONE 0 /* No version */ -#define VER_NEED_CURRENT 1 /* Current version */ -#define VER_NEED_NUM 2 /* Given version number */ - -/* Auxiliary needed version information. */ - -typedef struct -{ - Elf32_Word vna_hash; /* Hash value of dependency name */ - Elf32_Half vna_flags; /* Dependency specific information */ - Elf32_Half vna_other; /* Unused */ - Elf32_Word vna_name; /* Dependency name string offset */ - Elf32_Word vna_next; /* Offset in bytes to next vernaux - entry */ -} Elf32_Vernaux; - -typedef struct -{ - Elf64_Word vna_hash; /* Hash value of dependency name */ - Elf64_Half vna_flags; /* Dependency specific information */ - Elf64_Half vna_other; /* Unused */ - Elf64_Word vna_name; /* Dependency name string offset */ - Elf64_Word vna_next; /* Offset in bytes to next vernaux - entry */ -} Elf64_Vernaux; - - -/* Legal values for vna_flags. */ -#define VER_FLG_WEAK 0x2 /* Weak version identifier */ - - -/* Auxiliary vector. */ - -/* This vector is normally only used by the program interpreter. The - usual definition in an ABI supplement uses the name auxv_t. The - vector is not usually defined in a standard <elf.h> file, but it - can't hurt. We rename it to avoid conflicts. The sizes of these - types are an arrangement between the exec server and the program - interpreter, so we don't fully specify them here. */ - -typedef struct -{ - int a_type; /* Entry type */ - union - { - long int a_val; /* Integer value */ - void *a_ptr; /* Pointer value */ - void (*a_fcn) (void); /* Function pointer value */ - } a_un; -} Elf32_auxv_t; - -typedef struct -{ - long int a_type; /* Entry type */ - union - { - long int a_val; /* Integer value */ - void *a_ptr; /* Pointer value */ - void (*a_fcn) (void); /* Function pointer value */ - } a_un; -} Elf64_auxv_t; - -/* Legal values for a_type (entry type). */ - -#define AT_NULL 0 /* End of vector */ -#define AT_IGNORE 1 /* Entry should be ignored */ -#define AT_EXECFD 2 /* File descriptor of program */ -#define AT_PHDR 3 /* Program headers for program */ -#define AT_PHENT 4 /* Size of program header entry */ -#define AT_PHNUM 5 /* Number of program headers */ -#define AT_PAGESZ 6 /* System page size */ -#define AT_BASE 7 /* Base address of interpreter */ -#define AT_FLAGS 8 /* Flags */ -#define AT_ENTRY 9 /* Entry point of program */ -#define AT_NOTELF 10 /* Program is not ELF */ -#define AT_UID 11 /* Real uid */ -#define AT_EUID 12 /* Effective uid */ -#define AT_GID 13 /* Real gid */ -#define AT_EGID 14 /* Effective gid */ -#define AT_CLKTCK 17 /* Frequency of times() */ - -/* Some more special a_type values describing the hardware. */ -#define AT_PLATFORM 15 /* String identifying platform. */ -#define AT_HWCAP 16 /* Machine dependent hints about - processor capabilities. */ - -/* This entry gives some information about the FPU initialization - performed by the kernel. */ -#define AT_FPUCW 18 /* Used FPU control word. */ - - -/* Note section contents. Each entry in the note section begins with - a header of a fixed form. */ - -typedef struct -{ - Elf32_Word n_namesz; /* Length of the note's name. */ - Elf32_Word n_descsz; /* Length of the note's descriptor. */ - Elf32_Word n_type; /* Type of the note. */ -} Elf32_Nhdr; - -typedef struct -{ - Elf64_Word n_namesz; /* Length of the note's name. */ - Elf64_Word n_descsz; /* Length of the note's descriptor. */ - Elf64_Word n_type; /* Type of the note. */ -} Elf64_Nhdr; - -/* Known names of notes. */ - -/* Solaris entries in the note section have this name. */ -#define ELF_NOTE_SOLARIS "SUNW Solaris" - -/* Note entries for GNU systems have this name. */ -#define ELF_NOTE_GNU "GNU" - - -/* Defined types of notes for Solaris. */ - -/* Value of descriptor (one word) is desired pagesize for the binary. */ -#define ELF_NOTE_PAGESIZE_HINT 1 - - -/* Defined note types for GNU systems. */ - -/* ABI information. The descriptor consists of words: - word 0: OS descriptor - word 1: major version of the ABI - word 2: minor version of the ABI - word 3: subminor version of the ABI -*/ -#define ELF_NOTE_ABI 1 - -/* Known OSes. These value can appear in word 0 of an ELF_NOTE_ABI - note section entry. */ -#define ELF_NOTE_OS_LINUX 0 -#define ELF_NOTE_OS_GNU 1 -#define ELF_NOTE_OS_SOLARIS2 2 - - -/* Move records. */ -typedef struct -{ - Elf32_Xword m_value; /* Symbol value. */ - Elf32_Word m_info; /* Size and index. */ - Elf32_Word m_poffset; /* Symbol offset. */ - Elf32_Half m_repeat; /* Repeat count. */ - Elf32_Half m_stride; /* Stride info. */ -} Elf32_Move; - -typedef struct -{ - Elf64_Xword m_value; /* Symbol value. */ - Elf64_Xword m_info; /* Size and index. */ - Elf64_Xword m_poffset; /* Symbol offset. */ - Elf64_Half m_repeat; /* Repeat count. */ - Elf64_Half m_stride; /* Stride info. */ -} Elf64_Move; - -/* Macro to construct move records. */ -#define ELF32_M_SYM(info) ((info) >> 8) -#define ELF32_M_SIZE(info) ((unsigned char) (info)) -#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) - -#define ELF64_M_SYM(info) ELF32_M_SYM (info) -#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) -#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) - - -/* Motorola 68k specific definitions. */ - -/* Values for Elf32_Ehdr.e_flags. */ -#define EF_CPU32 0x00810000 - -/* m68k relocs. */ - -#define R_68K_NONE 0 /* No reloc */ -#define R_68K_32 1 /* Direct 32 bit */ -#define R_68K_16 2 /* Direct 16 bit */ -#define R_68K_8 3 /* Direct 8 bit */ -#define R_68K_PC32 4 /* PC relative 32 bit */ -#define R_68K_PC16 5 /* PC relative 16 bit */ -#define R_68K_PC8 6 /* PC relative 8 bit */ -#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */ -#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */ -#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */ -#define R_68K_GOT32O 10 /* 32 bit GOT offset */ -#define R_68K_GOT16O 11 /* 16 bit GOT offset */ -#define R_68K_GOT8O 12 /* 8 bit GOT offset */ -#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */ -#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */ -#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */ -#define R_68K_PLT32O 16 /* 32 bit PLT offset */ -#define R_68K_PLT16O 17 /* 16 bit PLT offset */ -#define R_68K_PLT8O 18 /* 8 bit PLT offset */ -#define R_68K_COPY 19 /* Copy symbol at runtime */ -#define R_68K_GLOB_DAT 20 /* Create GOT entry */ -#define R_68K_JMP_SLOT 21 /* Create PLT entry */ -#define R_68K_RELATIVE 22 /* Adjust by program base */ -/* Keep this the last entry. */ -#define R_68K_NUM 23 - -/* Intel 80386 specific definitions. */ - -/* i386 relocs. */ - -#define R_386_NONE 0 /* No reloc */ -#define R_386_32 1 /* Direct 32 bit */ -#define R_386_PC32 2 /* PC relative 32 bit */ -#define R_386_GOT32 3 /* 32 bit GOT entry */ -#define R_386_PLT32 4 /* 32 bit PLT address */ -#define R_386_COPY 5 /* Copy symbol at runtime */ -#define R_386_GLOB_DAT 6 /* Create GOT entry */ -#define R_386_JMP_SLOT 7 /* Create PLT entry */ -#define R_386_RELATIVE 8 /* Adjust by program base */ -#define R_386_GOTOFF 9 /* 32 bit offset to GOT */ -#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */ -/* Keep this the last entry. */ -#define R_386_NUM 11 - -/* SUN SPARC specific definitions. */ - -/* Legal values for ST_TYPE subfield of st_info (symbol type). */ - -#define STT_REGISTER 13 /* Global register reserved to app. */ - -/* Values for Elf64_Ehdr.e_flags. */ - -#define EF_SPARCV9_MM 3 -#define EF_SPARCV9_TSO 0 -#define EF_SPARCV9_PSO 1 -#define EF_SPARCV9_RMO 2 -#define EF_SPARC_LEDATA 0x800000 /* little endian data */ -#define EF_SPARC_EXT_MASK 0xFFFF00 -#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */ -#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */ -#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */ -#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */ - -/* SPARC relocs. */ - -#define R_SPARC_NONE 0 /* No reloc */ -#define R_SPARC_8 1 /* Direct 8 bit */ -#define R_SPARC_16 2 /* Direct 16 bit */ -#define R_SPARC_32 3 /* Direct 32 bit */ -#define R_SPARC_DISP8 4 /* PC relative 8 bit */ -#define R_SPARC_DISP16 5 /* PC relative 16 bit */ -#define R_SPARC_DISP32 6 /* PC relative 32 bit */ -#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */ -#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */ -#define R_SPARC_HI22 9 /* High 22 bit */ -#define R_SPARC_22 10 /* Direct 22 bit */ -#define R_SPARC_13 11 /* Direct 13 bit */ -#define R_SPARC_LO10 12 /* Truncated 10 bit */ -#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */ -#define R_SPARC_GOT13 14 /* 13 bit GOT entry */ -#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */ -#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */ -#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */ -#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */ -#define R_SPARC_COPY 19 /* Copy symbol at runtime */ -#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */ -#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */ -#define R_SPARC_RELATIVE 22 /* Adjust by program base */ -#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */ - -/* Additional Sparc64 relocs. */ - -#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */ -#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */ -#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */ -#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */ -#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */ -#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */ -#define R_SPARC_10 30 /* Direct 10 bit */ -#define R_SPARC_11 31 /* Direct 11 bit */ -#define R_SPARC_64 32 /* Direct 64 bit */ -#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */ -#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */ -#define R_SPARC_HM10 35 /* High middle 10 bits of ... */ -#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */ -#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */ -#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */ -#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */ -#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */ -#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */ -#define R_SPARC_7 43 /* Direct 7 bit */ -#define R_SPARC_5 44 /* Direct 5 bit */ -#define R_SPARC_6 45 /* Direct 6 bit */ -#define R_SPARC_DISP64 46 /* PC relative 64 bit */ -#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */ -#define R_SPARC_HIX22 48 /* High 22 bit complemented */ -#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */ -#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */ -#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */ -#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */ -#define R_SPARC_REGISTER 53 /* Global register usage */ -#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */ -#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */ -/* Keep this the last entry. */ -#define R_SPARC_NUM 56 - -/* For Sparc64, legal values for d_tag of Elf64_Dyn. */ - -#define DT_SPARC_REGISTER 0x70000001 -#define DT_SPARC_NUM 2 - -/* Bits present in AT_HWCAP, primarily for Sparc32. */ - -#define HWCAP_SPARC_FLUSH 1 /* The cpu supports flush insn. */ -#define HWCAP_SPARC_STBAR 2 -#define HWCAP_SPARC_SWAP 4 -#define HWCAP_SPARC_MULDIV 8 -#define HWCAP_SPARC_V9 16 /* The cpu is v9, so v8plus is ok. */ - -/* MIPS R3000 specific definitions. */ - -/* Legal values for e_flags field of Elf32_Ehdr. */ - -#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used */ -#define EF_MIPS_PIC 2 /* Contains PIC code */ -#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence */ -#define EF_MIPS_XGOT 8 -#define EF_MIPS_64BIT_WHIRL 16 -#define EF_MIPS_ABI2 32 -#define EF_MIPS_ABI_ON32 64 -#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level */ - -/* Legal values for MIPS architecture level. */ - -#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */ -#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */ -#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */ -#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */ -#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */ - -/* The following are non-official names and should not be used. */ - -#define E_MIPS_ARCH_1 0x00000000 /* -mips1 code. */ -#define E_MIPS_ARCH_2 0x10000000 /* -mips2 code. */ -#define E_MIPS_ARCH_3 0x20000000 /* -mips3 code. */ -#define E_MIPS_ARCH_4 0x30000000 /* -mips4 code. */ -#define E_MIPS_ARCH_5 0x40000000 /* -mips5 code. */ - -/* Special section indices. */ - -#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */ -#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */ -#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */ -#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */ -#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */ - -/* Legal values for sh_type field of Elf32_Shdr. */ - -#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */ -#define SHT_MIPS_MSYM 0x70000001 -#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols */ -#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes */ -#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */ -#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging information*/ -#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information */ -#define SHT_MIPS_PACKAGE 0x70000007 -#define SHT_MIPS_PACKSYM 0x70000008 -#define SHT_MIPS_RELD 0x70000009 -#define SHT_MIPS_IFACE 0x7000000b -#define SHT_MIPS_CONTENT 0x7000000c -#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */ -#define SHT_MIPS_SHDR 0x70000010 -#define SHT_MIPS_FDESC 0x70000011 -#define SHT_MIPS_EXTSYM 0x70000012 -#define SHT_MIPS_DENSE 0x70000013 -#define SHT_MIPS_PDESC 0x70000014 -#define SHT_MIPS_LOCSYM 0x70000015 -#define SHT_MIPS_AUXSYM 0x70000016 -#define SHT_MIPS_OPTSYM 0x70000017 -#define SHT_MIPS_LOCSTR 0x70000018 -#define SHT_MIPS_LINE 0x70000019 -#define SHT_MIPS_RFDESC 0x7000001a -#define SHT_MIPS_DELTASYM 0x7000001b -#define SHT_MIPS_DELTAINST 0x7000001c -#define SHT_MIPS_DELTACLASS 0x7000001d -#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */ -#define SHT_MIPS_DELTADECL 0x7000001f -#define SHT_MIPS_SYMBOL_LIB 0x70000020 -#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */ -#define SHT_MIPS_TRANSLATE 0x70000022 -#define SHT_MIPS_PIXIE 0x70000023 -#define SHT_MIPS_XLATE 0x70000024 -#define SHT_MIPS_XLATE_DEBUG 0x70000025 -#define SHT_MIPS_WHIRL 0x70000026 -#define SHT_MIPS_EH_REGION 0x70000027 -#define SHT_MIPS_XLATE_OLD 0x70000028 -#define SHT_MIPS_PDR_EXCEPTION 0x70000029 - -/* Legal values for sh_flags field of Elf32_Shdr. */ - -#define SHF_MIPS_GPREL 0x10000000 /* Must be part of global data area */ -#define SHF_MIPS_MERGE 0x20000000 -#define SHF_MIPS_ADDR 0x40000000 -#define SHF_MIPS_STRINGS 0x80000000 -#define SHF_MIPS_NOSTRIP 0x08000000 -#define SHF_MIPS_LOCAL 0x04000000 -#define SHF_MIPS_NAMES 0x02000000 -#define SHF_MIPS_NODUPE 0x01000000 - - -/* Symbol tables. */ - -/* MIPS specific values for `st_other'. */ -#define STO_MIPS_DEFAULT 0x0 -#define STO_MIPS_INTERNAL 0x1 -#define STO_MIPS_HIDDEN 0x2 -#define STO_MIPS_PROTECTED 0x3 -#define STO_MIPS_SC_ALIGN_UNUSED 0xff - -/* MIPS specific values for `st_info'. */ -#define STB_MIPS_SPLIT_COMMON 13 - -/* Entries found in sections of type SHT_MIPS_GPTAB. */ - -typedef union -{ - struct - { - Elf32_Word gt_current_g_value; /* -G value used for compilation */ - Elf32_Word gt_unused; /* Not used */ - } gt_header; /* First entry in section */ - struct - { - Elf32_Word gt_g_value; /* If this value were used for -G */ - Elf32_Word gt_bytes; /* This many bytes would be used */ - } gt_entry; /* Subsequent entries in section */ -} Elf32_gptab; - -/* Entry found in sections of type SHT_MIPS_REGINFO. */ - -typedef struct -{ - Elf32_Word ri_gprmask; /* General registers used */ - Elf32_Word ri_cprmask[4]; /* Coprocessor registers used */ - Elf32_Sword ri_gp_value; /* $gp register value */ -} Elf32_RegInfo; - -/* Entries found in sections of type SHT_MIPS_OPTIONS. */ - -typedef struct -{ - unsigned char kind; /* Determines interpretation of the - variable part of descriptor. */ - unsigned char size; /* Size of descriptor, including header. */ - Elf32_Section section; /* Section header index of section affected, - 0 for global options. */ - Elf32_Word info; /* Kind-specific information. */ -} Elf_Options; - -/* Values for `kind' field in Elf_Options. */ - -#define ODK_NULL 0 /* Undefined. */ -#define ODK_REGINFO 1 /* Register usage information. */ -#define ODK_EXCEPTIONS 2 /* Exception processing options. */ -#define ODK_PAD 3 /* Section padding options. */ -#define ODK_HWPATCH 4 /* Hardware workarounds performed */ -#define ODK_FILL 5 /* record the fill value used by the linker. */ -#define ODK_TAGS 6 /* reserve space for desktop tools to write. */ -#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */ -#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */ - -/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */ - -#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */ -#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */ -#define OEX_PAGE0 0x10000 /* page zero must be mapped. */ -#define OEX_SMM 0x20000 /* Force sequential memory mode? */ -#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */ -#define OEX_PRECISEFP OEX_FPDBUG -#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */ - -#define OEX_FPU_INVAL 0x10 -#define OEX_FPU_DIV0 0x08 -#define OEX_FPU_OFLO 0x04 -#define OEX_FPU_UFLO 0x02 -#define OEX_FPU_INEX 0x01 - -/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */ - -#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */ -#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */ -#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */ -#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */ - -#define OPAD_PREFIX 0x1 -#define OPAD_POSTFIX 0x2 -#define OPAD_SYMBOL 0x4 - -/* Entry found in `.options' section. */ - -typedef struct -{ - Elf32_Word hwp_flags1; /* Extra flags. */ - Elf32_Word hwp_flags2; /* Extra flags. */ -} Elf_Options_Hw; - -/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */ - -#define OHWA0_R4KEOP_CHECKED 0x00000001 -#define OHWA1_R4KEOP_CLEAN 0x00000002 - -/* MIPS relocs. */ - -#define R_MIPS_NONE 0 /* No reloc */ -#define R_MIPS_16 1 /* Direct 16 bit */ -#define R_MIPS_32 2 /* Direct 32 bit */ -#define R_MIPS_REL32 3 /* PC relative 32 bit */ -#define R_MIPS_26 4 /* Direct 26 bit shifted */ -#define R_MIPS_HI16 5 /* High 16 bit */ -#define R_MIPS_LO16 6 /* Low 16 bit */ -#define R_MIPS_GPREL16 7 /* GP relative 16 bit */ -#define R_MIPS_LITERAL 8 /* 16 bit literal entry */ -#define R_MIPS_GOT16 9 /* 16 bit GOT entry */ -#define R_MIPS_PC16 10 /* PC relative 16 bit */ -#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */ -#define R_MIPS_GPREL32 12 /* GP relative 32 bit */ - -#define R_MIPS_SHIFT5 16 -#define R_MIPS_SHIFT6 17 -#define R_MIPS_64 18 -#define R_MIPS_GOT_DISP 19 -#define R_MIPS_GOT_PAGE 20 -#define R_MIPS_GOT_OFST 21 -#define R_MIPS_GOT_HI16 22 -#define R_MIPS_GOT_LO16 23 -#define R_MIPS_SUB 24 -#define R_MIPS_INSERT_A 25 -#define R_MIPS_INSERT_B 26 -#define R_MIPS_DELETE 27 -#define R_MIPS_HIGHER 28 -#define R_MIPS_HIGHEST 29 -#define R_MIPS_CALL_HI16 30 -#define R_MIPS_CALL_LO16 31 -#define R_MIPS_SCN_DISP 32 -#define R_MIPS_REL16 33 -#define R_MIPS_ADD_IMMEDIATE 34 -#define R_MIPS_PJUMP 35 -#define R_MIPS_RELGOT 36 -#define R_MIPS_JALR 37 -/* Keep this the last entry. */ -#define R_MIPS_NUM 38 - -/* Legal values for p_type field of Elf32_Phdr. */ - -#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */ -#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */ -#define PT_MIPS_OPTIONS 0x70000002 - -/* Special program header types. */ - -#define PF_MIPS_LOCAL 0x10000000 - -/* Legal values for d_tag field of Elf32_Dyn. */ - -#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */ -#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */ -#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */ -#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */ -#define DT_MIPS_FLAGS 0x70000005 /* Flags */ -#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */ -#define DT_MIPS_MSYM 0x70000007 -#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */ -#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */ -#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */ -#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */ -#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */ -#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */ -#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */ -#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */ -#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */ -#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */ -#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */ -#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in - DT_MIPS_DELTA_CLASS. */ -#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */ -#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in - DT_MIPS_DELTA_INSTANCE. */ -#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */ -#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in - DT_MIPS_DELTA_RELOC. */ -#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta - relocations refer to. */ -#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in - DT_MIPS_DELTA_SYM. */ -#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the - class declaration. */ -#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in - DT_MIPS_DELTA_CLASSSYM. */ -#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */ -#define DT_MIPS_PIXIE_INIT 0x70000023 -#define DT_MIPS_SYMBOL_LIB 0x70000024 -#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -#define DT_MIPS_LOCAL_GOTIDX 0x70000026 -#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 -#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */ -#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */ -#define DT_MIPS_DYNSTR_ALIGN 0x7000002b -#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */ -#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve - function stored in GOT. */ -#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added - by rld on dlopen() calls. */ -#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */ -#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */ -#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */ -#define DT_MIPS_NUM 0x32 - -/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */ - -#define RHF_NONE 0 /* No flags */ -#define RHF_QUICKSTART (1 << 0) /* Use quickstart */ -#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */ -#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */ -#define RHF_NO_MOVE (1 << 3) -#define RHF_SGI_ONLY (1 << 4) -#define RHF_GUARANTEE_INIT (1 << 5) -#define RHF_DELTA_C_PLUS_PLUS (1 << 6) -#define RHF_GUARANTEE_START_INIT (1 << 7) -#define RHF_PIXIE (1 << 8) -#define RHF_DEFAULT_DELAY_LOAD (1 << 9) -#define RHF_REQUICKSTART (1 << 10) -#define RHF_REQUICKSTARTED (1 << 11) -#define RHF_CORD (1 << 12) -#define RHF_NO_UNRES_UNDEF (1 << 13) -#define RHF_RLD_ORDER_SAFE (1 << 14) - -/* Entries found in sections of type SHT_MIPS_LIBLIST. */ - -typedef struct -{ - Elf32_Word l_name; /* Name (string table index) */ - Elf32_Word l_time_stamp; /* Timestamp */ - Elf32_Word l_checksum; /* Checksum */ - Elf32_Word l_version; /* Interface version */ - Elf32_Word l_flags; /* Flags */ -} Elf32_Lib; - -typedef struct -{ - Elf64_Word l_name; /* Name (string table index) */ - Elf64_Word l_time_stamp; /* Timestamp */ - Elf64_Word l_checksum; /* Checksum */ - Elf64_Word l_version; /* Interface version */ - Elf64_Word l_flags; /* Flags */ -} Elf64_Lib; - - -/* Legal values for l_flags. */ - -#define LL_NONE 0 -#define LL_EXACT_MATCH (1 << 0) /* Require exact match */ -#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */ -#define LL_REQUIRE_MINOR (1 << 2) -#define LL_EXPORTS (1 << 3) -#define LL_DELAY_LOAD (1 << 4) -#define LL_DELTA (1 << 5) - -/* Entries found in sections of type SHT_MIPS_CONFLICT. */ - -typedef Elf32_Addr Elf32_Conflict; - - -/* HPPA specific definitions. */ - -/* Legal values for e_flags field of Elf32_Ehdr. */ - -#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */ -#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */ -#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */ -#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */ -#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch - prediction. */ -#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */ -#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */ - -/* Defined values for `e_flags & EF_PARISC_ARCH' are: */ - -#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */ -#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */ -#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */ - -/* Additional section indeces. */ - -#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared - symbols in ANSI C. */ -#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */ - -/* Legal values for sh_type field of Elf32_Shdr. */ - -#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */ -#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */ -#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */ - -/* Legal values for sh_flags field of Elf32_Shdr. */ - -#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */ -#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */ -#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */ - -/* Legal values for ST_TYPE subfield of st_info (symbol type). */ - -#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */ - -#define STT_HP_OPAQUE (STT_LOOS + 0x1) -#define STT_HP_STUB (STT_LOOS + 0x2) - -/* HPPA relocs. */ - -#define R_PARISC_NONE 0 /* No reloc. */ -#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */ -#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */ -#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */ -#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */ -#define R_PARISC_DIR14R 5 /* Right 14 bits of eff. address. */ -#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */ -#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */ -#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */ -#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ -#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ -#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ -#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ -#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ -#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ -#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ -#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ -#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ -#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ -#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ -#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ -#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ -#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -#define R_PARISC_FPTR64 64 /* 64 bits function address. */ -#define R_PARISC_PLABEL32 65 /* 32 bits function address. */ -#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ -#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ -#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ -#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */ -#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */ -#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */ -#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */ -#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */ -#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */ -#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */ -#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */ -#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */ -#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */ -#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */ -#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */ -#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */ -#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */ -#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */ -#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */ -#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */ -#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */ -#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */ -#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ -#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ -#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ -#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ -#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ -#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ -#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */ -#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */ -#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */ -#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */ -#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */ -#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */ -#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */ -#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */ -#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */ -#define R_PARISC_LORESERVE 128 -#define R_PARISC_COPY 128 /* Copy relocation. */ -#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */ -#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */ -#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */ -#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */ -#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */ -#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */ -#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/ -#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */ -#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */ -#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */ -#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */ -#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */ -#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */ -#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */ -#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */ -#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/ -#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/ -#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */ -#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */ -#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */ -#define R_PARISC_HIRESERVE 255 - -/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */ - -#define PT_HP_TLS (PT_LOOS + 0x0) -#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -#define PT_HP_PARALLEL (PT_LOOS + 0x10) -#define PT_HP_FASTBIND (PT_LOOS + 0x11) -#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -#define PT_HP_STACK (PT_LOOS + 0x14) - -#define PT_PARISC_ARCHEXT 0x70000000 -#define PT_PARISC_UNWIND 0x70000001 - -/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */ - -#define PF_PARISC_SBP 0x08000000 - -#define PF_HP_PAGE_SIZE 0x00100000 -#define PF_HP_FAR_SHARED 0x00200000 -#define PF_HP_NEAR_SHARED 0x00400000 -#define PF_HP_CODE 0x01000000 -#define PF_HP_MODIFY 0x02000000 -#define PF_HP_LAZYSWAP 0x04000000 -#define PF_HP_SBP 0x08000000 - - -/* Alpha specific definitions. */ - -/* Legal values for e_flags field of Elf64_Ehdr. */ - -#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */ -#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */ - -/* Legal values for sh_type field of Elf64_Shdr. */ - -/* These two are primerily concerned with ECOFF debugging info. */ -#define SHT_ALPHA_DEBUG 0x70000001 -#define SHT_ALPHA_REGINFO 0x70000002 - -/* Legal values for sh_flags field of Elf64_Shdr. */ - -#define SHF_ALPHA_GPREL 0x10000000 - -/* Legal values for st_other field of Elf64_Sym. */ -#define STO_ALPHA_NOPV 0x80 /* No PV required. */ -#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */ - -/* Alpha relocs. */ - -#define R_ALPHA_NONE 0 /* No reloc */ -#define R_ALPHA_REFLONG 1 /* Direct 32 bit */ -#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */ -#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */ -#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */ -#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */ -#define R_ALPHA_GPDISP 6 /* Add displacement to GP */ -#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */ -#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */ -#define R_ALPHA_SREL16 9 /* PC relative 16 bit */ -#define R_ALPHA_SREL32 10 /* PC relative 32 bit */ -#define R_ALPHA_SREL64 11 /* PC relative 64 bit */ -#define R_ALPHA_OP_PUSH 12 /* OP stack push */ -#define R_ALPHA_OP_STORE 13 /* OP stack pop and store */ -#define R_ALPHA_OP_PSUB 14 /* OP stack subtract */ -#define R_ALPHA_OP_PRSHIFT 15 /* OP stack right shift */ -#define R_ALPHA_GPVALUE 16 -#define R_ALPHA_GPRELHIGH 17 -#define R_ALPHA_GPRELLOW 18 -#define R_ALPHA_IMMED_GP_16 19 -#define R_ALPHA_IMMED_GP_HI32 20 -#define R_ALPHA_IMMED_SCN_HI32 21 -#define R_ALPHA_IMMED_BR_HI32 22 -#define R_ALPHA_IMMED_LO32 23 -#define R_ALPHA_COPY 24 /* Copy symbol at runtime */ -#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */ -#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */ -#define R_ALPHA_RELATIVE 27 /* Adjust by program base */ -/* Keep this the last entry. */ -#define R_ALPHA_NUM 28 - - -/* PowerPC specific declarations */ - -/* Values for Elf32/64_Ehdr.e_flags. */ -#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */ - -/* Cygnus local bits below */ -#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/ -#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib - flag */ - -/* PowerPC relocations defined by the ABIs */ -#define R_PPC_NONE 0 -#define R_PPC_ADDR32 1 /* 32bit absolute address */ -#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */ -#define R_PPC_ADDR16 3 /* 16bit absolute address */ -#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */ -#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */ -#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */ -#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */ -#define R_PPC_ADDR14_BRTAKEN 8 -#define R_PPC_ADDR14_BRNTAKEN 9 -#define R_PPC_REL24 10 /* PC relative 26 bit */ -#define R_PPC_REL14 11 /* PC relative 16 bit */ -#define R_PPC_REL14_BRTAKEN 12 -#define R_PPC_REL14_BRNTAKEN 13 -#define R_PPC_GOT16 14 -#define R_PPC_GOT16_LO 15 -#define R_PPC_GOT16_HI 16 -#define R_PPC_GOT16_HA 17 -#define R_PPC_PLTREL24 18 -#define R_PPC_COPY 19 -#define R_PPC_GLOB_DAT 20 -#define R_PPC_JMP_SLOT 21 -#define R_PPC_RELATIVE 22 -#define R_PPC_LOCAL24PC 23 -#define R_PPC_UADDR32 24 -#define R_PPC_UADDR16 25 -#define R_PPC_REL32 26 -#define R_PPC_PLT32 27 -#define R_PPC_PLTREL32 28 -#define R_PPC_PLT16_LO 29 -#define R_PPC_PLT16_HI 30 -#define R_PPC_PLT16_HA 31 -#define R_PPC_SDAREL16 32 -#define R_PPC_SECTOFF 33 -#define R_PPC_SECTOFF_LO 34 -#define R_PPC_SECTOFF_HI 35 -#define R_PPC_SECTOFF_HA 36 -/* Keep this the last entry. */ -#define R_PPC_NUM 37 - -/* The remaining relocs are from the Embedded ELF ABI, and are not - in the SVR4 ELF ABI. */ -#define R_PPC_EMB_NADDR32 101 -#define R_PPC_EMB_NADDR16 102 -#define R_PPC_EMB_NADDR16_LO 103 -#define R_PPC_EMB_NADDR16_HI 104 -#define R_PPC_EMB_NADDR16_HA 105 -#define R_PPC_EMB_SDAI16 106 -#define R_PPC_EMB_SDA2I16 107 -#define R_PPC_EMB_SDA2REL 108 -#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */ -#define R_PPC_EMB_MRKREF 110 -#define R_PPC_EMB_RELSEC16 111 -#define R_PPC_EMB_RELST_LO 112 -#define R_PPC_EMB_RELST_HI 113 -#define R_PPC_EMB_RELST_HA 114 -#define R_PPC_EMB_BIT_FLD 115 -#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */ - -/* Diab tool relocations. */ -#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */ -#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */ -#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */ -#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */ -#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */ -#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */ - -/* This is a phony reloc to handle any old fashioned TOC16 references - that may still be in object files. */ -#define R_PPC_TOC16 255 - - -/* ARM specific declarations */ - -/* Processor specific flags for the ELF header e_flags field. */ -#define EF_ARM_RELEXEC 0x01 -#define EF_ARM_HASENTRY 0x02 -#define EF_ARM_INTERWORK 0x04 -#define EF_ARM_APCS_26 0x08 -#define EF_ARM_APCS_FLOAT 0x10 -#define EF_ARM_PIC 0x20 -#define EF_ALIGN8 0x40 /* 8-bit structure alignment is in use */ -#define EF_NEW_ABI 0x80 -#define EF_OLD_ABI 0x100 - -/* Additional symbol types for Thumb */ -#define STT_ARM_TFUNC 0xd - -/* ARM-specific values for sh_flags */ -#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */ -#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined - in the input to a link step */ - -/* ARM-specific program header flags */ -#define PF_ARM_SB 0x10000000 /* Segment contains the location - addressed by the static base */ - -/* ARM relocs. */ -#define R_ARM_NONE 0 /* No reloc */ -#define R_ARM_PC24 1 /* PC relative 26 bit branch */ -#define R_ARM_ABS32 2 /* Direct 32 bit */ -#define R_ARM_REL32 3 /* PC relative 32 bit */ -#define R_ARM_PC13 4 -#define R_ARM_ABS16 5 /* Direct 16 bit */ -#define R_ARM_ABS12 6 /* Direct 12 bit */ -#define R_ARM_THM_ABS5 7 -#define R_ARM_ABS8 8 /* Direct 8 bit */ -#define R_ARM_SBREL32 9 -#define R_ARM_THM_PC22 10 -#define R_ARM_THM_PC8 11 -#define R_ARM_AMP_VCALL9 12 -#define R_ARM_SWI24 13 -#define R_ARM_THM_SWI8 14 -#define R_ARM_XPC25 15 -#define R_ARM_THM_XPC22 16 -#define R_ARM_COPY 20 /* Copy symbol at runtime */ -#define R_ARM_GLOB_DAT 21 /* Create GOT entry */ -#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */ -#define R_ARM_RELATIVE 23 /* Adjust by program base */ -#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */ -#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */ -#define R_ARM_GOT32 26 /* 32 bit GOT entry */ -#define R_ARM_PLT32 27 /* 32 bit PLT address */ -#define R_ARM_GNU_VTENTRY 100 -#define R_ARM_GNU_VTINHERIT 101 -#define R_ARM_THM_PC11 102 /* thumb unconditional branch */ -#define R_ARM_THM_PC9 103 /* thumb conditional branch */ -#define R_ARM_RXPC25 249 -#define R_ARM_RSBREL32 250 -#define R_ARM_THM_RPC22 251 -#define R_ARM_RREL32 252 -#define R_ARM_RABS22 253 -#define R_ARM_RPC24 254 -#define R_ARM_RBASE 255 -/* Keep this the last entry. */ -#define R_ARM_NUM 256 - -/* IA-64 specific declarations. */ - -/* Processor specific flags for the Ehdr e_flags field. */ -#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */ -#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */ -#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */ - -/* Processor specific values for the Phdr p_type field. */ -#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */ -#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */ - -/* Processor specific flags for the Phdr p_flags field. */ -#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */ - -/* Processor specific values for the Shdr sh_type field. */ -#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */ -#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */ - -/* Processor specific flags for the Shdr sh_flags field. */ -#define SHF_IA_64_SHORT 0x10000000 /* section near gp */ -#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */ - -/* Processor specific values for the Dyn d_tag field. */ -#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) -#define DT_IA_64_NUM 1 - -/* IA-64 relocations. */ -#define R_IA64_NONE 0x00 /* none */ -#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */ -#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */ -#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */ -#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */ -#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */ -#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */ -#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */ -#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */ -#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */ -#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */ -#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */ -#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */ -#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */ -#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */ -#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */ -#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */ -#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */ -#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */ -#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */ -#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */ -#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */ -#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */ -#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */ -#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */ -#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */ -#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */ -#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */ -#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */ -#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */ -#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */ -#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */ -#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */ -#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */ -#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */ -#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */ -#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */ -#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */ -#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */ -#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */ -#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */ -#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */ -#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */ -#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */ -#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */ -#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */ -#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */ -#define R_IA64_REL32MSB 0x6c /* data 4 + REL */ -#define R_IA64_REL32LSB 0x6d /* data 4 + REL */ -#define R_IA64_REL64MSB 0x6e /* data 8 + REL */ -#define R_IA64_REL64LSB 0x6f /* data 8 + REL */ -#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */ -#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */ -#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */ -#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */ -#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */ -#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */ -#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */ -#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */ -#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */ -#define R_IA64_COPY 0x84 /* copy relocation */ -#define R_IA64_SUB 0x85 /* Addend and symbol difference */ -#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */ -#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */ -#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */ -#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */ -#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */ -#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */ -#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */ -#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */ -#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */ -#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */ -#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */ -#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */ -#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */ -#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */ -#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */ -#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */ -#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */ -#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */ -#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */ - -/* SH specific declarations */ - -/* SH relocs. */ -#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_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 -/* Keep this the last entry. */ -#define R_SH_NUM 256 - -/* Additional s390 relocs */ - -#define R_390_NONE 0 /* No reloc. */ -#define R_390_8 1 /* Direct 8 bit. */ -#define R_390_12 2 /* Direct 12 bit. */ -#define R_390_16 3 /* Direct 16 bit. */ -#define R_390_32 4 /* Direct 32 bit. */ -#define R_390_PC32 5 /* PC relative 32 bit. */ -#define R_390_GOT12 6 /* 12 bit GOT offset. */ -#define R_390_GOT32 7 /* 32 bit GOT offset. */ -#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */ -#define R_390_COPY 9 /* Copy symbol at runtime. */ -#define R_390_GLOB_DAT 10 /* Create GOT entry. */ -#define R_390_JMP_SLOT 11 /* Create PLT entry. */ -#define R_390_RELATIVE 12 /* Adjust by program base. */ -#define R_390_GOTOFF 13 /* 32 bit offset to GOT. */ -#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */ -#define R_390_GOT16 15 /* 16 bit GOT offset. */ -#define R_390_PC16 16 /* PC relative 16 bit. */ -#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */ -#define R_390_PLT16DBL 18 /* 32 bit PC rel. PLT shifted by 1. */ -/* Keep this the last entry. */ -#define R_390_NUM 19 - -#endif /* elf.h */ diff --git a/mdk-stage1/dietlibc/include/endian.h b/mdk-stage1/dietlibc/include/endian.h deleted file mode 100644 index 463c24fff..000000000 --- a/mdk-stage1/dietlibc/include/endian.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef _ENDIAN_H -#define _ENDIAN_H - -#define __LITTLE_ENDIAN 1234 -#define __BIG_ENDIAN 4321 - -#ifdef __i386__ -#define __BYTE_ORDER __LITTLE_ENDIAN -#define __FLOAT_WORD_ORDER __BYTE_ORDER -#endif - -#ifdef __sparc__ -#define __BYTE_ORDER __BIG_ENDIAN -#define __FLOAT_WORD_ORDER __BYTE_ORDER -#endif - -#ifdef __mips__ -#ifdef __MIPSEB__ -#define __BIG_ENDIAN__ -#endif -#endif - -#ifndef __BYTE_ORDER -#ifdef __BIG_ENDIAN__ -#define __BYTE_ORDER __BIG_ENDIAN -#define __FLOAT_WORD_ORDER __BYTE_ORDER -#else -#define __BYTE_ORDER __LITTLE_ENDIAN -#define __FLOAT_WORD_ORDER __BYTE_ORDER -#endif -#endif - -#define LITTLE_ENDIAN __LITTLE_ENDIAN -#define BIG_ENDIAN __BIG_ENDIAN -#define BYTE_ORDER __BYTE_ORDER - -#if __BYTE_ORDER == __LITTLE_ENDIAN -# define __LONG_LONG_PAIR(HI, LO) LO, HI -#elif __BYTE_ORDER == __BIG_ENDIAN -# define __LONG_LONG_PAIR(HI, LO) HI, LO -#endif - -#endif diff --git a/mdk-stage1/dietlibc/include/errno.h b/mdk-stage1/dietlibc/include/errno.h deleted file mode 100644 index f4ba482b5..000000000 --- a/mdk-stage1/dietlibc/include/errno.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _ERRNO_H -#define _ERRNO_H - -extern int errno; - -#include <linux/errno.h> - -extern void __set_errno(int error); - -#endif diff --git a/mdk-stage1/dietlibc/include/fcntl.h b/mdk-stage1/dietlibc/include/fcntl.h deleted file mode 100644 index b792502c1..000000000 --- a/mdk-stage1/dietlibc/include/fcntl.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _FCNTL_H -#define _FCNTL_H - -#include <sys/cdefs.h> - -#include <sys/types.h> -#include <unistd.h> - -#include <asm/fcntl.h> - -extern int fcntl (int __fd, int __cmd, ...) __THROW; -extern int open (const char *__file, int __oflag, ...) __THROW; -extern int open64 (const char *__file, int __oflag, ...) __THROW; -extern int creat (const char *__file, mode_t __mode) __THROW; -extern int creat64 (const char *__file, mode_t __mode) __THROW; -extern int lockf (int __fd, int __cmd, off_t __len) __THROW; -extern int lockf64 (int __fd, int __cmd, off64_t __len) __THROW; - -#define F_ULOCK 0 /* Unlock a previously locked region. */ -#define F_LOCK 1 /* Lock a region for exclusive use. */ -#define F_TLOCK 2 /* Test and lock a region for exclusive use. */ -#define F_TEST 3 /* Test a region for other processes locks. */ - -#endif diff --git a/mdk-stage1/dietlibc/include/features.h b/mdk-stage1/dietlibc/include/features.h deleted file mode 100644 index 02f081006..000000000 --- a/mdk-stage1/dietlibc/include/features.h +++ /dev/null @@ -1 +0,0 @@ -#warning "someone included features.h, apparently someone is including glibc headers!" diff --git a/mdk-stage1/dietlibc/include/ftw.h b/mdk-stage1/dietlibc/include/ftw.h deleted file mode 100644 index c888f0021..000000000 --- a/mdk-stage1/dietlibc/include/ftw.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _FTW_H -#define _FTW_H - -#include <sys/cdefs.h> -#include <sys/stat.h> - -struct FTW - { - int base; - int level; - }; - -int ftw (const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag), int depth) __THROW; -int nftw (const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag, struct FTW *s), int depth, int flags) __THROW; - -enum -{ - FTW_F, /* Regular file. */ -#define FTW_F FTW_F - FTW_D, /* Directory. */ -#define FTW_D FTW_D - FTW_DNR, /* Unreadable directory. */ -#define FTW_DNR FTW_DNR - FTW_NS, /* Unstatable file. */ -#define FTW_NS FTW_NS - FTW_SL, /* Symbolic link. */ -# define FTW_SL FTW_SL -/* These flags are only passed from the `nftw' function. */ - FTW_DP, /* Directory, all subdirs have been visited. */ -# define FTW_DP FTW_DP - FTW_SLN /* Symbolic link naming non-existing file. */ -# define FTW_SLN FTW_SLN -}; - -typedef int (*__ftw_func_t) (__const char *__filename, - __const struct stat *__status, int __flag) __THROW; - -typedef int (*__nftw_func_t) (__const char *__filename, - __const struct stat *__status, int __flag, - struct FTW *__info) __THROW; - -#ifndef __NO_STAT64 -typedef int (*__ftw64_func_t) (__const char *__filename, - __const struct stat64 *__status, int __flag) __THROW; - -typedef int (*__nftw64_func_t) (__const char *__filename, - __const struct stat64 *__status, - int __flag, struct FTW *__info) __THROW; -#endif - -#endif diff --git a/mdk-stage1/dietlibc/include/grp.h b/mdk-stage1/dietlibc/include/grp.h deleted file mode 100644 index 2acd0f208..000000000 --- a/mdk-stage1/dietlibc/include/grp.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _GRP_H -#define _GRP_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -struct group - { - char *gr_name; /* Group name. */ - char *gr_passwd; /* Password. */ - gid_t gr_gid; /* Group ID. */ - char **gr_mem; /* Member list. */ - }; - -extern struct passwd *getgrgid (uid_t __uid) __THROW; -extern struct passwd *getgrnam (const char *__name) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/limits.h b/mdk-stage1/dietlibc/include/limits.h deleted file mode 100644 index ccc02150d..000000000 --- a/mdk-stage1/dietlibc/include/limits.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _LIMITS_H -#define _LIMITS_H - -#include <linux/limits.h> - -#ifndef PATH_MAX -#define PATH_MAX 4096 -#endif - -#endif diff --git a/mdk-stage1/dietlibc/include/malloc.h b/mdk-stage1/dietlibc/include/malloc.h deleted file mode 100644 index c8b49f26d..000000000 --- a/mdk-stage1/dietlibc/include/malloc.h +++ /dev/null @@ -1 +0,0 @@ -#include <stdlib.h> diff --git a/mdk-stage1/dietlibc/include/net/if.h b/mdk-stage1/dietlibc/include/net/if.h deleted file mode 100644 index e6e7be441..000000000 --- a/mdk-stage1/dietlibc/include/net/if.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _NET_IF_H -#define _NET_IF_H - -#include <sys/cdefs.h> - -unsigned int if_nametoindex (const char *ifname) __THROW; -char *if_indextoname (unsigned int ifindex, char *ifname) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/netdb.h b/mdk-stage1/dietlibc/include/netdb.h deleted file mode 100644 index 29f452ee9..000000000 --- a/mdk-stage1/dietlibc/include/netdb.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef _NETDB_H -#define _NETDB_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -/* Absolute file name for network data base files. */ -#define _PATH_HEQUIV "/etc/hosts.equiv" -#define _PATH_HOSTS "/etc/hosts" -#define _PATH_NETWORKS "/etc/networks" -#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf" -#define _PATH_PROTOCOLS "/etc/protocols" -#define _PATH_SERVICES "/etc/services" - -/* Description of data base entry for a single service. */ -struct servent -{ - char *s_name; /* Official service name. */ - char **s_aliases; /* Alias list. */ - int s_port; /* Port number. */ - char *s_proto; /* Protocol to use. */ -}; - -extern void endservent (void) __THROW; -extern struct servent *getservent (void) __THROW; -extern struct servent *getservbyname (__const char *__name, - __const char *__proto) __THROW; -extern struct servent *getservbyport (int __port, __const char *__proto) - __THROW; - -struct hostent -{ - char *h_name; /* Official name of host. */ - char **h_aliases; /* Alias list. */ - int h_addrtype; /* Host address type. */ - socklen_t h_length; /* Length of address. */ - char **h_addr_list; /* List of addresses from name server. */ -#define h_addr h_addr_list[0] /* Address, for backward compatibility. */ -}; - -extern void endhostent (void) __THROW; -extern struct hostent *gethostent (void) __THROW; -extern struct hostent *gethostbyaddr (const void *__addr, socklen_t __len, - int __type) __THROW; -extern struct hostent *gethostbyname (const char *__name) __THROW; -extern struct hostent *gethostbyname2 (const char *__name, int __af) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/netinet/in.h b/mdk-stage1/dietlibc/include/netinet/in.h deleted file mode 100644 index d83498a76..000000000 --- a/mdk-stage1/dietlibc/include/netinet/in.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _NETINET_IN_H -#define _NETINET_IN_H - -#include <linux/in.h> - -#endif diff --git a/mdk-stage1/dietlibc/include/netinet/in_systm.h b/mdk-stage1/dietlibc/include/netinet/in_systm.h deleted file mode 100644 index e69de29bb..000000000 --- a/mdk-stage1/dietlibc/include/netinet/in_systm.h +++ /dev/null diff --git a/mdk-stage1/dietlibc/include/netinet/ip.h b/mdk-stage1/dietlibc/include/netinet/ip.h deleted file mode 100644 index 35bf9cc42..000000000 --- a/mdk-stage1/dietlibc/include/netinet/ip.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _NETINET_IP_H -#define _NETINET_IP_H - -#include <linux/ip.h> - -#endif diff --git a/mdk-stage1/dietlibc/include/paths.h b/mdk-stage1/dietlibc/include/paths.h deleted file mode 100644 index aac47e870..000000000 --- a/mdk-stage1/dietlibc/include/paths.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _PATHS_H -#define _PATHS_H - -#define _PATH_BSHELL "/bin/sh" -#define _PATH_DEFPATH "/bin:/usr/bin:" - -#endif diff --git a/mdk-stage1/dietlibc/include/pwd.h b/mdk-stage1/dietlibc/include/pwd.h deleted file mode 100644 index c7120917c..000000000 --- a/mdk-stage1/dietlibc/include/pwd.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _PWD_H -#define _PWD_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -struct passwd { - char *pw_name; /* Username. */ - char *pw_passwd; /* Password. */ - uid_t pw_uid; /* User ID. */ - gid_t pw_gid; /* Group ID. */ - char *pw_gecos; /* Real name. */ - char *pw_dir; /* Home directory. */ - char *pw_shell; /* Shell program. */ -}; - -extern struct passwd *getpwuid (uid_t __uid) __THROW; -extern struct passwd *getpwnam (const char *__name) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/setjmp.h b/mdk-stage1/dietlibc/include/setjmp.h deleted file mode 100644 index a49b450ac..000000000 --- a/mdk-stage1/dietlibc/include/setjmp.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef _SETJMP_H -#define _SETJMP_H - -#include <sys/cdefs.h> - -#ifdef __i386__ -#ifndef __ASSEMBLER__ -typedef int __jmp_buf[6]; -#endif -# define JB_BX 0 -# define JB_SI 1 -# define JB_DI 2 -# define JB_BP 3 -# define JB_SP 4 -# define JB_PC 5 -# define JB_SIZE 24 -#endif - -#ifdef __alpha__ -#define JB_S0 0 -#define JB_S1 1 -#define JB_S2 2 -#define JB_S3 3 -#define JB_S4 4 -#define JB_S5 5 -#define JB_PC 6 -#define JB_FP 7 -#define JB_SP 8 -#define JB_F2 9 -#define JB_F3 10 -#define JB_F4 11 -#define JB_F5 12 -#define JB_F6 13 -#define JB_F7 14 -#define JB_F8 15 -#define JB_F9 16 -#ifndef __ASSEMBLER__ -typedef long int __jmp_buf[17]; -#endif -#endif - -#ifdef __mips__ -#ifndef __ASSEMBLER__ -typedef struct - { - void * __pc; /* Program counter. */ - void * __sp; /* Stack pointer. */ - int __regs[8]; /* Callee-saved registers s0 through s7. */ - void * __fp; /* The frame pointer. */ - void * __gp; /* The global pointer. */ - int __fpc_csr; /* Floating point status register. */ - double __fpregs[6]; /* Callee-saved floating point registers. */ - } __jmp_buf[1]; -#endif -#endif - -#ifdef __sparc__ -#define JB_SP 0 -#define JB_FP 1 -#define JB_PC 2 -#ifndef __ASSEMBLER__ -typedef int __jmp_buf[3]; -#endif -#endif - -#ifdef __arm__ -#define __JMP_BUF_SP 8 -#ifndef __ASSEMBLER__ -typedef int __jmp_buf[10]; -#endif -#endif - -#ifdef __powerpc__ -# define JB_GPR1 0 /* Also known as the stack pointer */ -# define JB_GPR2 1 -# define JB_LR 2 /* The address we will return to */ -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */ -# define JB_CR 21 /* Condition code registers. */ -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */ -# define JB_SIZE (58*4) -#ifndef __ASSEMBLER__ -typedef long int __jmp_buf[58]; -#endif -#endif - -#ifndef __ASSEMBLER__ - -typedef int __sig_atomic_t; - -# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) -typedef struct - { - unsigned long int __val[_SIGSET_NWORDS]; - } __sigset_t; - -/* Calling environment, plus possibly a saved signal mask. */ -typedef struct __jmp_buf_tag /* C++ doesn't like tagless structs. */ - { - /* NOTE: The machine-dependent definitions of `__sigsetjmp' - assume that a `jmp_buf' begins with a `__jmp_buf'. - Do not move this member or add others before it. */ - __jmp_buf __jmpbuf; /* Calling environment. */ - int __mask_was_saved; /* Saved the signal mask? */ - __sigset_t __saved_mask; /* Saved signal mask. */ - } jmp_buf[1]; - -extern int __sigsetjmp (jmp_buf __env, int __savemask) __THROW; - -extern void longjmp (jmp_buf __env, int __val) - __THROW __attribute__ ((__noreturn__)); - -typedef jmp_buf sigjmp_buf; - -extern void siglongjmp (sigjmp_buf __env, int __val) - __THROW __attribute__ ((__noreturn__)); - -#define setjmp(env) __sigsetjmp(env,0) - -#endif - -#endif diff --git a/mdk-stage1/dietlibc/include/signal.h b/mdk-stage1/dietlibc/include/signal.h deleted file mode 100644 index 9214d176d..000000000 --- a/mdk-stage1/dietlibc/include/signal.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _SIGNAL_H -#define _SIGNAL_H - -#include <sys/cdefs.h> - -#include <linux/types.h> -#include <linux/signal.h> - -int sigemptyset(sigset_t *set) __THROW; -int sigaddset(sigset_t *set, int signum) __THROW; -int sigprocmask(int how, const sigset_t *set, sigset_t *oldset) __THROW; -int raise (int sig) __THROW; -void (*signal(int signum, void (*sighandler)(int)))(int) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/stdint.h b/mdk-stage1/dietlibc/include/stdint.h deleted file mode 100644 index d287e6794..000000000 --- a/mdk-stage1/dietlibc/include/stdint.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _STDINT_H -#define _STDINT_H - -#include <sys/types.h> - -#endif diff --git a/mdk-stage1/dietlibc/include/stdio.h b/mdk-stage1/dietlibc/include/stdio.h deleted file mode 100644 index 65974668d..000000000 --- a/mdk-stage1/dietlibc/include/stdio.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef _STDIO_H -#define _STDIO_H - -#include <sys/types.h> - -typedef struct __stdio_file FILE; - -FILE *fopen (const char *path, const char *mode); -FILE *fdopen (int fildes, const char *mode); -FILE *freopen (const char *path, const char *mode, FILE *stream); - -int printf(const char *format, ...); -int fprintf(FILE *stream, const char *format, ...); -int sprintf(char *str, const char *format, ...); -int snprintf(char *str, size_t size, const char *format, ...); - -int scanf( const char *format, ...); -int fscanf( FILE *stream, const char *format, ...); -int sscanf( const char *str, const char *format, ...); - -#include <stdarg.h> - -int vprintf(const char *format, va_list ap); -int vfprintf(FILE *stream, const char *format, va_list ap); -int vsprintf(char *str, const char *format, va_list ap); -int vsnprintf(char *str, size_t size, const char *format, va_list ap); - -int vscanf( const char *format, va_list ap); -int vsscanf( const char *str, const char *format, va_list ap); -int vfscanf( FILE *stream, const char *format, va_list ap); - -int ferror(FILE *stream); -int feof(FILE *stream); - -int fgetc(FILE *stream); -char *fgets(char *s, int size, FILE *stream); -int getc(FILE *stream); -int getchar(void); -char *gets(char *s); - -int fputc(int c, FILE *stream); -int fputs(const char *s, FILE *stream); -int putc(int c, FILE *stream); -int putchar(int c); -int puts(const char *s); - -int fseek( FILE *stream, long offset, int whence); -long ftell( FILE *stream); -void rewind( FILE *stream); -int fgetpos( FILE *stream, fpos_t *pos); -int fsetpos( FILE *stream, fpos_t *pos); - -size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream); - -size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream); - -int fflush(FILE *stream); - -int fclose(FILE *stream); - -extern FILE *stdin, *stdout, *stderr; - -#define EOF (int)(-1) - -void perror (const char *__s); - -#define BUFSIZ 128 - -#endif diff --git a/mdk-stage1/dietlibc/include/stdlib.h b/mdk-stage1/dietlibc/include/stdlib.h deleted file mode 100644 index c5fea2608..000000000 --- a/mdk-stage1/dietlibc/include/stdlib.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _STDLIB_H -#define _STDLIB_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -void *calloc(size_t nmemb, size_t size) __THROW; -void *malloc(size_t size) __THROW; -void free(void *ptr) __THROW; -void *realloc(void *ptr, size_t size) __THROW; - -void *alloca(size_t size); - -char *getenv(const char *name) __pure__; - -int atexit(void (*function)(void)) __THROW; - -double strtod(const char *nptr, char **endptr) __THROW; -long int strtol(const char *nptr, char **endptr, int base); -unsigned long int strtoul(const char *nptr, char **endptr, int base); - -int __ltostr(char *s, int size, unsigned long i, int base, char UpCase); -#ifdef __GNUC__ -long long int strtoll(const char *nptr, char **endptr, int base); -unsigned long long int strtoull(const char *nptr, char **endptr, int base); -int __lltostr(char *s, int size, unsigned long long i, int base, char UpCase); -#endif - -int atoi(const char *nptr); - -void abort(void); -void exit(int); - -extern char **environ; - -#define WIFSTOPPED(status) (((status) & 0xff) == 0x7f) -#define WIFSIGNALED(status) (!WIFSTOPPED(status) && !WIFEXITED(status)) -#define WEXITSTATUS(status) (((status) & 0xff00) >> 8) -#define WTERMSIG(status) ((status) & 0x7f) -#define WSTOPSIG(status) WEXITSTATUS(status) -#define WIFEXITED(status) (WTERMSIG(status) == 0) - - -#endif diff --git a/mdk-stage1/dietlibc/include/string.h b/mdk-stage1/dietlibc/include/string.h deleted file mode 100644 index 133ac3b61..000000000 --- a/mdk-stage1/dietlibc/include/string.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef _STRING_H -#define _STRING_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -char *strcpy(char *dest, const char *src) __THROW; -char *strncpy(char *dest, const char *src, size_t n) __THROW; - -void *memccpy(void *dest, const void *src, int c, size_t n) __THROW; -void *memcpy(void *dest, const void *src, size_t n) __THROW; -void *memmove(void *dest, const void *src, size_t n) __THROW; - -int memccmp(const void *s1, const void *s2, int c, size_t n) __THROW __pure__; -int memcmp(const void *s1, const void *s2, size_t n) __THROW __pure__; -int strcmp(const char *s1, const char *s2) __THROW __pure__; -int strncmp(const char *s1, const char *s2, size_t n) __THROW __pure__; -char *strstr (const char *__haystack, const char *__needle) __THROW __pure__; - -size_t strlen(const char *s) __THROW __pure__; - -char *strdup(const char *s) __THROW; - -char *strchr(const char *s, int c) __THROW; -char *strrchr(const char *s, int c) __THROW; - -char *strcat(char *dest, const char *src) __THROW; -char *strncat(char *dest, const char *src, size_t n) __THROW; - -size_t strcspn(const char *s, const char *reject); - -void* memset(void *s, int c, size_t n) __THROW; - -#undef NULL -#define NULL (void*)0 - -#define bzero(s,n) memset(s,0,n) -#define bcmp(s1,s2,n) memcmp(s1,s2,n) - -char *strerror (int __errnum) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/cdefs.h b/mdk-stage1/dietlibc/include/sys/cdefs.h deleted file mode 100644 index 9f256f59f..000000000 --- a/mdk-stage1/dietlibc/include/sys/cdefs.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _SYS_CDEFS_H -#define _SYS_CDEFS_H - -#ifndef __cplusplus -#define throw () -#define __THROW -#else -#define __THROW throw () -#endif - -#ifndef __GNUC__ -#define __attribute__(xyz) -#endif - -#define __pure__ -#ifdef __GNUC__ -#if (__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 96)) -#undef __pure__ -#define __pure__ __attribute__ ((__pure__)) -#endif - -#endif - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/ioctl.h b/mdk-stage1/dietlibc/include/sys/ioctl.h deleted file mode 100644 index fca1aeeab..000000000 --- a/mdk-stage1/dietlibc/include/sys/ioctl.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _IOCTL_H -#define _IOCTL_H - -#include <sys/cdefs.h> -#include <linux/ioctl.h> -#include <asm/ioctls.h> - -int ioctl(int d, int request, ...) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/mman.h b/mdk-stage1/dietlibc/include/sys/mman.h deleted file mode 100644 index 03faa37ae..000000000 --- a/mdk-stage1/dietlibc/include/sys/mman.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _SYS_MMAN_H -#define _SYS_MMAN_H - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <linux/mman.h> - -#define MAP_FAILED ((void *) -1) - -extern void *mmap (void *__addr, size_t __len, int __prot, - int __flags, int __fd, off_t __offset); - -extern int munmap (void *__addr, size_t __len) __THROW; -extern int mprotect (void *__addr, size_t __len, int __prot) __THROW; -extern int msync (void *__addr, size_t __len, int __flags) __THROW; -extern void *mremap (void *__addr, size_t __old_len, size_t __new_len, - int __may_move) __THROW; -extern int mincore (void *__start, size_t __len, unsigned char *__vec); - -#ifdef __quad_t -extern void *mmap64 (void *__addr, size_t __len, int __prot, - int __flags, int __fd, off64_t __offset) __THROW; -#endif - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/mount.h b/mdk-stage1/dietlibc/include/sys/mount.h deleted file mode 100644 index 1c4368a2f..000000000 --- a/mdk-stage1/dietlibc/include/sys/mount.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef _SYS_MOUNT_H -#define _SYS_MOUNT_H 1 - -#include <sys/ioctl.h> - -#define BLOCK_SIZE 1024 -#define BLOCK_SIZE_BITS 10 - -/* These are the fs-independent mount-flags: up to 16 flags are - supported */ -enum -{ - MS_RDONLY = 1, /* Mount read-only. */ -#define MS_RDONLY MS_RDONLY - MS_NOSUID = 2, /* Ignore suid and sgid bits. */ -#define MS_NOSUID MS_NOSUID - MS_NODEV = 4, /* Disallow access to device special files. */ -#define MS_NODEV MS_NODEV - MS_NOEXEC = 8, /* Disallow program execution. */ -#define MS_NOEXEC MS_NOEXEC - MS_SYNCHRONOUS = 16, /* Writes are synced at once. */ -#define MS_SYNCHRONOUS MS_SYNCHRONOUS - MS_REMOUNT = 32, /* Alter flags of a mounted FS. */ -#define MS_REMOUNT MS_REMOUNT - MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */ -#define MS_MANDLOCK MS_MANDLOCK - S_WRITE = 128, /* Write on file/directory/symlink. */ -#define S_WRITE S_WRITE - S_APPEND = 256, /* Append-only file. */ -#define S_APPEND S_APPEND - S_IMMUTABLE = 512, /* Immutable file. */ -#define S_IMMUTABLE S_IMMUTABLE - MS_NOATIME = 1024, /* Do not update access times. */ -#define MS_NOATIME MS_NOATIME - MS_NODIRATIME = 2048, /* Do not update directory access times. */ -#define MS_NODIRATIME MS_NODIRATIME - MS_BIND = 4096, /* Bind directory at different place. */ -#define MS_BIND MS_BIND -}; - -/* Flags that can be altered by MS_REMOUNT */ -#define MS_RMT_MASK (MS_RDONLY | MS_MANDLOCK) - - -/* Magic mount flag number. Has to be or-ed to the flag values. */ - -#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */ -#define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */ - - -/* The read-only stuff doesn't really belong here, but any other place - is probably as bad and I don't want to create yet another include - file. */ - -#define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */ -#define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */ -#define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */ -#define BLKGETSIZE _IO(0x12, 96) /* Return device size. */ -#define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */ -#define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */ -#define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */ - - -/* Possible value for FLAGS parameter of `umount2'. */ -enum -{ - MNT_FORCE = 1 /* Force unmounting. */ -#define MNT_FORCE MNT_FORCE -}; - - -/* Mount a filesystem. */ -int mount(const char *specialfile, const char *dir, const char *filesystemtype, unsigned long rwflag, const void *data) __THROW; - -/* Unmount a filesystem. */ -extern int umount (const char *__special_file) __THROW; - -/* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */ -extern int umount2 (const char *__special_file, int __flags) __THROW; - -#endif /* _SYS_MOUNT_H */ diff --git a/mdk-stage1/dietlibc/include/sys/resource.h b/mdk-stage1/dietlibc/include/sys/resource.h deleted file mode 100644 index 953fc0eb2..000000000 --- a/mdk-stage1/dietlibc/include/sys/resource.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _SYS_RESOURCE_H -#define _SYS_RESOURCE_H - -#include <sys/cdefs.h> -#include <linux/resource.h> - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/select.h b/mdk-stage1/dietlibc/include/sys/select.h deleted file mode 100644 index fa166a530..000000000 --- a/mdk-stage1/dietlibc/include/sys/select.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _SYS_SELECT_H -#define _SYS_SELECT_H 1 - -int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/socket.h b/mdk-stage1/dietlibc/include/sys/socket.h deleted file mode 100644 index f590c35c4..000000000 --- a/mdk-stage1/dietlibc/include/sys/socket.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _SYS_SOCKET_H -#define _SYS_SOCKET_H - -#include <sys/types.h> -#include <linux/socket.h> - -int socket(int domain, int type, int protocol); -int listen (int fd, int n); -int accept(int s, struct sockaddr *addr, socklen_t *addrlen); -int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); -int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); -int recv(int s, void *buf, size_t len, int flags); -int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); -int recvmsg(int s, struct msghdr *msg, int flags); -int send(int s, const void *msg, size_t len, int flags); -int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); -int sendmsg(int s, const struct msghdr *msg, int flags); -int getpeername(int s, struct sockaddr *name, socklen_t *namelen); -int getsockname(int s , struct sockaddr * name , socklen_t * namelen ); - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/stat.h b/mdk-stage1/dietlibc/include/sys/stat.h deleted file mode 100644 index 7c3504218..000000000 --- a/mdk-stage1/dietlibc/include/sys/stat.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef _SYS_STAT_H -#define _SYS_STAT_H - -#include <sys/cdefs.h> -#include <sys/types.h> - -#include <linux/stat.h> -#include <asm/stat.h> - -#ifdef __alpha__ -#define __NO_STAT64 -#endif - -#define stat(file,buf) __dietstat(file,buf) -#define fstat(file,buf) __dietfstat(file,buf) -#define lstat(file,buf) __dietlstat(file,buf) - -#define stat64(file,buf) __dietstat64(file,buf) -#define fstat64(file,buf) __dietfstat64(file,buf) -#define lstat64(file,buf) __dietlstat64(file,buf) - -#define major(dev) (((dev)>>8) & 0xff) -#define minor(dev) ((dev) & 0xff) -#define makedev(major, minor) ((((unsigned int) (major)) << 8) | ((unsigned int) (minor))) - -extern int __dietstat (const char *__file, struct stat *__buf) __THROW; -extern int __dietfstat (int __fd, struct stat *__buf) __THROW; -extern int __dietlstat (const char *__file, struct stat *__buf) __THROW; - -#ifndef __NO_STAT64 -extern int __dietstat64 (const char *__file, struct stat64 *__buf) __THROW; -extern int __dietfstat64 (int __fd, struct stat64 *__buf) __THROW; -extern int __dietlstat64 (const char *__file, struct stat64 *__buf) __THROW; -#endif - -extern int chmod (const char *__file, mode_t __mode) __THROW; - -extern int fchmod (int __fd, mode_t __mode) __THROW; - -extern mode_t umask (mode_t __mask) __THROW; - -extern int mkdir (const char *__path, mode_t __mode) __THROW; - -extern int mknod (const char *__path, mode_t __mode, dev_t __dev) __THROW; - -extern int mkfifo (const char *__path, mode_t __mode) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/time.h b/mdk-stage1/dietlibc/include/sys/time.h deleted file mode 100644 index 069d50a83..000000000 --- a/mdk-stage1/dietlibc/include/sys/time.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _SYS_TIME_H -#define _SYS_TIME_H 1 - -#include <sys/cdefs.h> - -#include <sys/types.h> -#include <linux/time.h> - -#if defined __USE_GNU || defined __USE_BSD -typedef struct timezone *__timezone_ptr_t; -#else -typedef void *__timezone_ptr_t; -#endif - -int getitimer(int which, struct itimerval *value) __THROW; -int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue) __THROW; - -int gettimeofday(struct timeval *tv, struct timezone *tz) __THROW; -int settimeofday(const struct timeval *tv , const struct timezone *tz) __THROW; - -extern int adjtime (const struct timeval *__delta, - struct timeval *__olddelta) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/types.h b/mdk-stage1/dietlibc/include/sys/types.h deleted file mode 100644 index 34dbaa9f1..000000000 --- a/mdk-stage1/dietlibc/include/sys/types.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _SYS_TYPES_H -#define _SYS_TYPES_H - -#include <linux/types.h> -#include <linux/posix_types.h> -#include <linux/socket.h> - -#ifdef __GNUC__ -#define __quad_t __quad_t -typedef long long int __quad_t; -typedef unsigned long long int __u_quad_t; -#else -#warning no long long support - no 64 bit file I/O support -typedef long int __quad_t; -typedef unsigned long int __u_quad_t; -#endif - - -#ifdef __quad_t -typedef __quad_t off64_t; -typedef __u_quad_t ino64_t; -typedef __quad_t blkcnt64_t; -#endif - -typedef long int fpos_t; - -#define socklen_t socklen_t -typedef unsigned int socklen_t; - -typedef long int blksize_t; -typedef long int blkcnt_t; - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/utsname.h b/mdk-stage1/dietlibc/include/sys/utsname.h deleted file mode 100644 index 37bf6c811..000000000 --- a/mdk-stage1/dietlibc/include/sys/utsname.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _SYS_UTSNAME_H -#define _SYS_UTSNAME_H 1 - -#include <sys/cdefs.h> - -/* Length of the entries in `struct utsname' is 65. */ -#define _UTSNAME_LENGTH 65 -#define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH - -/* Linux provides as additional information in the `struct utsname' - the name of the current domain. Define _UTSNAME_DOMAIN_LENGTH - to a value != 0 to activate this entry. */ -#define _UTSNAME_DOMAIN_LENGTH _UTSNAME_LENGTH - -struct utsname { - /* Name of the implementation of the operating system. */ - char sysname[_UTSNAME_LENGTH]; - - /* Name of this node on the network. */ - char nodename[_UTSNAME_NODENAME_LENGTH]; - - /* Current release level of this implementation. */ - char release[_UTSNAME_LENGTH]; - /* Current version level of this release. */ - char version[_UTSNAME_LENGTH]; - - /* Name of the hardware type the system is running on. */ - char machine[_UTSNAME_LENGTH]; - - /* Name of the domain of this node on the network. */ - char domainname[_UTSNAME_DOMAIN_LENGTH]; -}; - -extern int uname (struct utsname *__name) __THROW; -#endif diff --git a/mdk-stage1/dietlibc/include/sys/vfs.h b/mdk-stage1/dietlibc/include/sys/vfs.h deleted file mode 100644 index e4740a225..000000000 --- a/mdk-stage1/dietlibc/include/sys/vfs.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _SYS_VFS_H -#define _SYS_VFS_H - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <linux/vfs.h> - -int statfs(const char *path, struct statfs *buf) __THROW; -int fstatfs(int fd, struct statfs *buf) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/sys/wait.h b/mdk-stage1/dietlibc/include/sys/wait.h deleted file mode 100644 index 91b5da348..000000000 --- a/mdk-stage1/dietlibc/include/sys/wait.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _SYS_WAIT_H -#define _SYS_WAIT_H - -#include <sys/cdefs.h> -#include <sys/resource.h> - -pid_t wait(int *status) __THROW; -pid_t waitpid(pid_t pid, int *status, int options) __THROW; - -pid_t wait3(int *status, int options, struct rusage *rusage) __THROW; - -pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/termios.h b/mdk-stage1/dietlibc/include/termios.h deleted file mode 100644 index fc297ea19..000000000 --- a/mdk-stage1/dietlibc/include/termios.h +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef _TERMIOS_H -#define _TERMIOS_H - -typedef unsigned char cc_t; -typedef unsigned int speed_t; -typedef unsigned int tcflag_t; - -#define NCCS 32 -struct termios - { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* output speed */ - }; - -/* c_cc characters */ -#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 - -/* c_iflag bits */ -#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 - -/* c_oflag bits */ -#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 BSDLY 0020000 -#define BS0 0000000 -#define BS1 0020000 -#define FFDLY 0100000 -#define FF0 0000000 -#define FF1 0100000 - -#define VTDLY 0040000 -#define VT0 0000000 -#define VT1 0040000 - -#define XTABS 0014000 - -/* c_cflag bit meaning */ -#define CBAUD 0010017 -#define B0 0000000 /* hang up */ -#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 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 /* input baud rate (not used) */ -#define CRTSCTS 020000000000 /* flow control */ - -/* c_lflag bits */ -#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 - -/* tcflow() and TCXONC use these */ -#define TCOOFF 0 -#define TCOON 1 -#define TCIOFF 2 -#define TCION 3 - -/* tcflush() and TCFLSH use these */ -#define TCIFLUSH 0 -#define TCOFLUSH 1 -#define TCIOFLUSH 2 - -/* tcsetattr uses these */ -#define TCSANOW 0 -#define TCSADRAIN 1 -#define TCSAFLUSH 2 - - -#define _IOT_termios /* Hurd ioctl type field. */ \ - _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2) - -#endif diff --git a/mdk-stage1/dietlibc/include/time.h b/mdk-stage1/dietlibc/include/time.h deleted file mode 100644 index adc3710a4..000000000 --- a/mdk-stage1/dietlibc/include/time.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef _TIME_H -#define _TIME_H - -#include <sys/cdefs.h> -#include <sys/time.h> - -struct tm -{ - int tm_sec; /* Seconds. [0-60] (1 leap second) */ - int tm_min; /* Minutes. [0-59] */ - int tm_hour; /* Hours. [0-23] */ - int tm_mday; /* Day. [1-31] */ - int tm_mon; /* Month. [0-11] */ - int tm_year; /* Year - 1900. */ - int tm_wday; /* Day of week. [0-6] */ - int tm_yday; /* Days in year.[0-365] */ - int tm_isdst; /* DST. [-1/0/1]*/ - - long int tm_gmtoff; /* Seconds east of UTC. */ - const char *tm_zone; /* Timezone abbreviation. */ -}; - -# define __isleap(year) \ - ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) - -int nanosleep(const struct timespec *req, struct timespec *rem) __THROW; -unsigned int sleep(unsigned int secs) __THROW; - -struct tm *localtime(const time_t *timep) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/unistd.h b/mdk-stage1/dietlibc/include/unistd.h deleted file mode 100644 index 5165ba286..000000000 --- a/mdk-stage1/dietlibc/include/unistd.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef _UNISTD_H -#define _UNISTD_H - -#include <dirent.h> -#include <sys/cdefs.h> -#include <sys/types.h> - -const enum { - SEEK_SET=0, - SEEK_CUR=1, - SEEK_END=2 -} __seek_types; - -off_t lseek(int fildes, off_t offset, int whence) __THROW; - -int chdir(const char *path) __THROW; -int fchdir(int fd) __THROW; -int mkdir(const char *pathname, mode_t mode) __THROW; -int rmdir(const char *pathname) __THROW; -char *getcwd(char *buf, size_t size) __THROW; - -int open(const char* pathname,int flags, ...) __THROW; -int creat(const char* pathname,mode_t mode) __THROW; -int write(int fd,const void* buf,size_t len) __THROW; -int read(int fd,const void* buf,size_t len) __THROW; -int close(int fd) __THROW; - -int pread(int fd, void *buf, size_t count, off_t offset); -int pwrite(int fd, const void *buf, size_t count, off_t offset); - -int execve (const char *filename, char *const argv [], char *const envp[]) __THROW; -int execl( const char *path, ...); -int execv (const char *__path, char *const __argv[]) __THROW; - -pid_t getpid(void) __attribute__((const)) __THROW; -pid_t getppid(void) __THROW; -int kill(pid_t pid, int sig) __THROW; - -int mknod(const char *pathname, mode_t mode, dev_t dev) __THROW; - -int getdents(unsigned int fd, struct dirent *dirp, unsigned int count) __THROW; -int getdents64(unsigned int fd, struct dirent64 *dirp, unsigned int count) __THROW; - -pid_t fork() __THROW; -pid_t vfork() __THROW; - -int readlink(const char *path, char *buf, size_t bufsiz) __THROW; -int symlink(const char *oldpath, const char *newpath) __THROW; -int link(const char *oldpath, const char *newpath) __THROW; -int unlink (const char *__name) __THROW; - -int chown(const char *path, uid_t owner, gid_t group) __THROW; -int fchown(int fd, uid_t owner, gid_t group) __THROW; -int lchown(const char *path, uid_t owner, gid_t group) __THROW; - -char *ttyname (int desc) __THROW; - -int brk(void *end_data_segment) __THROW; -void *sbrk(ptrdiff_t increment) __THROW; - -int gethostname(char *name, size_t len) __THROW; -int sethostname(const char *name, size_t len) __THROW; - -int setdomainname(const char *name, size_t len) __THROW; - -void sync(void) __THROW; - -/* Values for the second argument to access. - These may be OR'd together. */ -#define R_OK 4 /* Test for read permission. */ -#define W_OK 2 /* Test for write permission. */ -#define X_OK 1 /* Test for execute permission. */ -#define F_OK 0 /* Test for existence. */ - -int access (char *__name, int __type) __THROW; - -int dup2 (int __fd, int __fd2) __THROW; - -pid_t setsid (void) __THROW; - -unsigned int sleep (unsigned int __seconds) __THROW; - -#endif diff --git a/mdk-stage1/dietlibc/include/utime.h b/mdk-stage1/dietlibc/include/utime.h deleted file mode 100644 index 41674f379..000000000 --- a/mdk-stage1/dietlibc/include/utime.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _UTIME_H -#define _UTIME_H - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <time.h> - -struct utimbuf { - time_t actime; /* access time */ - time_t modtime; /* modification time */ -}; - -int utime(const char *filename, struct utimbuf *buf) __THROW; - - -#endif diff --git a/mdk-stage1/dietlibc/include/utmp.h b/mdk-stage1/dietlibc/include/utmp.h deleted file mode 100644 index 2f598257c..000000000 --- a/mdk-stage1/dietlibc/include/utmp.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef _UTMP_H -#define _UTMP_H - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <time.h> - -#define UT_LINESIZE 32 -#define UT_NAMESIZE 32 -#define UT_HOSTSIZE 256 - -#define _PATH_UTMP "/var/run/utmp" -#define _PATH_WTMP "/var/log/wtmp" - -/* The structure describing an entry in the database of - previous logins. */ -struct lastlog - { - time_t ll_time; - char ll_line[UT_LINESIZE]; - char ll_host[UT_HOSTSIZE]; - }; - -/* The structure describing the status of a terminated process. This - type is used in `struct utmp' below. */ -struct exit_status - { - short int e_termination; /* Process termination status. */ - short int e_exit; /* Process exit status. */ - }; - -/* The structure describing an entry in the user accounting database. */ -struct utmp -{ - short int ut_type; /* Type of login. */ - pid_t ut_pid; /* Process ID of login process. */ - char ut_line[UT_LINESIZE]; /* Devicename. */ - char ut_id[4]; /* Inittab ID. */ - char ut_user[UT_NAMESIZE]; /* Username. */ - char ut_host[UT_HOSTSIZE]; /* Hostname for remote login. */ - struct exit_status ut_exit; /* Exit status of a process marked - as DEAD_PROCESS. */ - long int ut_session; /* Session ID, used for windowing. */ - struct timeval ut_tv; /* Time entry was made. */ - int32_t ut_addr_v6[4]; /* Internet address of remote host. */ - char __unused[20]; /* Reserved for future use. */ -}; - -/* Values for the `ut_type' field of a `struct utmp'. */ -#define EMPTY 0 /* No valid user accounting information. */ - -#define RUN_LVL 1 /* The system's runlevel. */ -#define BOOT_TIME 2 /* Time of system boot. */ -#define NEW_TIME 3 /* Time after system clock changed. */ -#define OLD_TIME 4 /* Time when system clock changed. */ - -#define INIT_PROCESS 5 /* Process spawned by the init process. */ -#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ -#define USER_PROCESS 7 /* Normal process. */ -#define DEAD_PROCESS 8 /* Terminated process. */ - -#define ACCOUNTING 9 - -/* Tell the user that we have a modern system with UT_HOST, UT_PID, - UT_TYPE, UT_ID and UT_TV fields. */ -#define _HAVE_UT_TYPE 1 -#define _HAVE_UT_PID 1 -#define _HAVE_UT_ID 1 -#define _HAVE_UT_TV 1 -#define _HAVE_UT_HOST 1 - -#endif diff --git a/mdk-stage1/dietlibc/lib/__dtostr.c b/mdk-stage1/dietlibc/lib/__dtostr.c deleted file mode 100644 index def091f16..000000000 --- a/mdk-stage1/dietlibc/lib/__dtostr.c +++ /dev/null @@ -1,82 +0,0 @@ -/* convert double to string. Helper for sprintf. */ - -int __dtostr(double d,char *buf,int maxlen,int prec) { - unsigned long long *x=(unsigned long long *)&d; - /* step 1: extract sign, mantissa and exponent */ - signed int s=*x>>63; - signed long e=((*x>>52)&((1<<11)-1))-1023; -/* unsigned long long m=*x & ((1ull<<52)-1); */ - /* step 2: exponent is base 2, compute exponent for base 10 */ - signed long e10=1+(long)(e*0.30102999566398119802); /* log10(2) */ - /* step 3: calculate 10^e10 */ - int i; - double tmp=10.0; - char *oldbuf=buf; - int initial=1; - - if (s) { d=-d; *buf='-'; --maxlen; buf++; } - if ((i=e10)>=0) { - while (i>10) { tmp=tmp*1e10; i-=10; } - while (i>1) { tmp=tmp*10; --i; } - } else { - i=(e10=-e10); - while (i>10) { tmp=tmp*1e-10; i-=10; } - while (i>1) { tmp=tmp/10; --i; } - } - while (d/tmp<1) { - --e10; - tmp/=10.0; - } - /* step 4: see if precision is sufficient to display all digits */ - if (e10>prec) { - /* use scientific notation */ - int len=__dtostr(d/tmp,buf,maxlen,prec); - if (len==0) return 0; - maxlen-=len; buf+=len; - if (--maxlen>=0) { - *buf='e'; - ++buf; - } - for (len=1000; len>0; len/=10) { - if (e10>=len || !initial) { - if (--maxlen>=0) { - *buf=(e10/len)+'0'; - ++buf; - } - initial=0; - e10=e10%len; - } - } - if (maxlen>=0) return buf-oldbuf; - return 0; - } - /* step 5: loop through the digits, inserting the decimal point when - * appropriate */ - for (; prec>0; ) { - double tmp2=d/tmp; - char c; - d-=((int)tmp2*tmp); - c=((int)tmp2); - if ((!initial)||c) { - if (--maxlen>=0) { - initial=0; - *buf=c+'0'; - ++buf; - } else - return 0; - --prec; - } - if (tmp>0.5 && tmp<1.5) { - tmp=1e-1; - initial=0; - if (--maxlen>=0) { - *buf='.'; - ++buf; - } else - return 0; - } else - tmp/=10.0; - } - *buf=0; - return buf-oldbuf; -} diff --git a/mdk-stage1/dietlibc/lib/__lltostr.c b/mdk-stage1/dietlibc/lib/__lltostr.c deleted file mode 100644 index f53dcfb80..000000000 --- a/mdk-stage1/dietlibc/lib/__lltostr.c +++ /dev/null @@ -1,34 +0,0 @@ -#include <string.h> - -static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; - -int __lltostr(char *s, int size, unsigned long long i, int base, char UpCase) -{ - char *tmp; - int j=0; - - s[--size]=0; - - tmp=s+size; - - if ((base==0)||(base>36)) base=10; - - j=0; - if (!i) - { - *(--tmp)='0'; - j=1; - } - - while((tmp>s)&&(i)) - { - tmp--; - *tmp=num[i%base]; - if ((UpCase)&&(*tmp>96)) (*tmp)-=' '; - i=i/base; - j++; - } - memmove(s,tmp,j+1); - - return j; -} diff --git a/mdk-stage1/dietlibc/lib/__ltostr.c b/mdk-stage1/dietlibc/lib/__ltostr.c deleted file mode 100644 index b2ebeb074..000000000 --- a/mdk-stage1/dietlibc/lib/__ltostr.c +++ /dev/null @@ -1,34 +0,0 @@ -#include <string.h> - -static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; - -int __ltostr(char *s, int size, unsigned long i, int base, char UpCase) -{ - char *tmp; - int j=0; - - s[--size]=0; - - tmp=s+size; - - if ((base==0)||(base>36)) base=10; - - j=0; - if (!i) - { - *(--tmp)='0'; - j=1; - } - - while((tmp>s)&&(i)) - { - tmp--; - *tmp=num[i%base]; - if ((UpCase)&&(*tmp>96)) (*tmp)-=' '; - i=i/base; - j++; - } - memmove(s,tmp,j+1); - - return j; -} diff --git a/mdk-stage1/dietlibc/lib/__xmknod.c b/mdk-stage1/dietlibc/lib/__xmknod.c deleted file mode 100644 index 4739a1f5f..000000000 --- a/mdk-stage1/dietlibc/lib/__xmknod.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <sys/stat.h> - -int __xmknod(int ver,char* filename,mode_t mode,dev_t *dev) { - return mknod(filename,mode,*dev); -} - diff --git a/mdk-stage1/dietlibc/lib/_brk.c b/mdk-stage1/dietlibc/lib/_brk.c deleted file mode 100644 index 6d0b29c03..000000000 --- a/mdk-stage1/dietlibc/lib/_brk.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <unistd.h> - -extern int __diet_brk(void *end_data_segment); - -void* __curbrk=0; - -int __brk(void *end_data_segment) { - int res; - if ((res=__diet_brk(end_data_segment))==0) - __curbrk=end_data_segment; - return res; -} - -int brk (void *end_data_segment) __attribute__((weak,alias("__brk"))); diff --git a/mdk-stage1/dietlibc/lib/abort.c b/mdk-stage1/dietlibc/lib/abort.c deleted file mode 100644 index e6374c5ac..000000000 --- a/mdk-stage1/dietlibc/lib/abort.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <linux/types.h> -#include <linux/signal.h> -#include <signal.h> - -extern int exit(int code) __attribute__ ((noreturn)); - -void abort() { - sigset_t t; - if (!sigemptyset(&t) && !sigaddset(&t, SIGABRT)) - sigprocmask(SIG_UNBLOCK, &t, 0); - while (1) - if (raise(SIGABRT)) - exit(127); -} diff --git a/mdk-stage1/dietlibc/lib/accept.c b/mdk-stage1/dietlibc/lib/accept.c deleted file mode 100644 index a7ae824eb..000000000 --- a/mdk-stage1/dietlibc/lib/accept.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int accept(int a, void * addr, void * addr2) { -#ifdef __i386__ - return socketcall(SYS_ACCEPT, (long*)&a); -#else - unsigned long args[] = { a, (long) addr, (long) addr2 }; - return socketcall(SYS_ACCEPT, args); -#endif -} - -int __libc_accept(int a, void * addr, void * addr2) __attribute__((weak,alias("accept"))); diff --git a/mdk-stage1/dietlibc/lib/alarm.c b/mdk-stage1/dietlibc/lib/alarm.c deleted file mode 100644 index fd35372f2..000000000 --- a/mdk-stage1/dietlibc/lib/alarm.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 1991, 1992, 1994, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include <unistd.h> -#include <sys/time.h> - -/* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM. - If SECONDS is zero, any currently scheduled alarm will be cancelled. - The function returns the number of seconds remaining until the last - alarm scheduled would have signaled, or zero if there wasn't one. - There is no return value to indicate an error, but you can set `errno' - to 0 and check its value after calling `alarm', and this might tell you. - The signal may come late due to processor scheduling. */ -unsigned int -alarm (seconds) - unsigned int seconds; -{ - struct itimerval old, new; - unsigned int retval; - - new.it_interval.tv_usec = 0; - new.it_interval.tv_sec = 0; - new.it_value.tv_usec = 0; - new.it_value.tv_sec = (long int) seconds; - if (setitimer (ITIMER_REAL, &new, &old) < 0) - return 0; - - retval = old.it_value.tv_sec; - if (old.it_value.tv_usec) - ++retval; - return retval; -} diff --git a/mdk-stage1/dietlibc/lib/alloc.c b/mdk-stage1/dietlibc/lib/alloc.c deleted file mode 100644 index 27b6838df..000000000 --- a/mdk-stage1/dietlibc/lib/alloc.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * malloc/free by O.Dreesen - */ - -#include <linux/unistd.h> -#include <asm/mman.h> -#include <linux/errno.h> - -#if 0 -#include <sys/mman.h> -#define _LIBC -#include <errno.h> -#endif - -#include <linux/types.h> - -#if defined(MAP_ANONYMOUS) && !defined(MAP_ANON) -#define MAP_ANON MAP_ANONYMOUS -#endif - -#ifndef MAP_FAILED -#define MAP_FAILED ((void*)-1) -#endif - -#ifndef NULL -#define NULL ((void*)0) -#endif - -extern void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset); -extern void *memset(void *s, int c, size_t n); -extern void *memcpy(void *dest, const void *src, size_t n); - -typedef struct t_alloc_head { - struct t_alloc_head *ptr; - unsigned long size; -} alloc_head; - -/* guess what ? the virtual block size */ -#define MEM_BLOCK_SIZE 4096 - -/* minimum allocated bytes */ -#define MEM_ALLOC_MIN 4 - -/* Initial start position in memory */ -#define MEM_ALLOC_START ((char*)0x18000000) - -/* Make every block align */ -#define MEM_ALIGN(s) (((s)+MEM_ALLOC_MIN-1)&(~(MEM_ALLOC_MIN-1))) -#define PAGE_ALIGN(s) (((s)+MEM_BLOCK_SIZE-1)&(~(MEM_BLOCK_SIZE-1))) -#define PAGE_ALIGNP(p) ((char*)PAGE_ALIGN((size_t)(p))) - -#define END_OF_BLOCK(p) ((alloc_head*)(((char*)(p))+((p)->size))) -#define START_BLOCK(p) ((alloc_head*)(((char*)(p))-sizeof(alloc_head))) -#define START_DATA(p) (((char*)(p))+sizeof(alloc_head)) -#define MIN_ALLOC(s) (((((s)+sizeof(alloc_head)-1)/MEM_ALLOC_MIN)+1)*MEM_ALLOC_MIN) - -/* freelist handler */ -static alloc_head base = {&base,0}; -static char *alloc_get_end = MEM_ALLOC_START; - -void free(void *ptr) -{ - alloc_head *prev,*p,*block; - - if (ptr==NULL) return; - - block=START_BLOCK(ptr); - prev=&base; - for (p=prev->ptr ; ; prev=p, p=p->ptr) - { - if ((block>prev)&&(block<p)) break; /* found the gap block belongs */ - if ((prev>p)&&(block<p)) break; /* block pre freelist */ - if ((prev>p)&&(block>prev)) break; /* block after freelist */ - - /* emergency escape: freelist has ONLY one entry the freelist base */ - if (p->ptr==p) break; - } - prev->ptr = block; - - if (END_OF_BLOCK(block)==p) - { /* join right neighbor */ - block->ptr = p->ptr; - block->size += p->size; - } - else - block->ptr = p; - - if (END_OF_BLOCK(prev)==block) - { /* join left neighbor */ - prev->size += block->size; - prev->ptr = block->ptr; - } -} - -static void *alloc_get_mem(unsigned long size) -{ - char *tmp; - alloc_head *ah; - - size=PAGE_ALIGN(size); - - /* map free pages @ alloc_get_end */ - tmp=mmap(alloc_get_end, size, PROT_READ|PROT_WRITE, - MAP_ANONYMOUS|MAP_PRIVATE|MAP_FIXED, -1, 0); - if (tmp==MAP_FAILED) - { - /* OK we can't map free pages @ alloc_get_end so try free position */ - tmp=mmap(0, size, PROT_READ|PROT_WRITE, - MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - if (tmp==MAP_FAILED) - { - errno = ENOMEM; - return NULL; /* PANIC ! */ - } - alloc_get_end=tmp; - } - - alloc_get_end+=size; - - /* make a header */ - ah=(alloc_head*)tmp; - ah->ptr=ah; - ah->size=size; - - /* link new free maped pages in freelist */ - free(START_DATA(tmp)); - - return &base; -} - -void *malloc(size_t size) -{ - alloc_head *p, *prev; - size_t need; - - /* needed MEM_ALLOC_MIN */ - need=MIN_ALLOC(size); - - prev=&base; - for (p=prev->ptr;;prev=p,p=p->ptr) - { - if (p->size>=need) - { - if (p->size==need) - { /* fit PERFECT */ - prev->ptr=p->ptr; /* relink freelist */ - } - else - { - alloc_head *tmp=(alloc_head*)(((char*)p)+need); - if ((p->size-need)<sizeof(alloc_head)) - { /* work around: if there is not enough space for freelist head. - * this waste some bytes ( < sizeof(alloc_head) ) */ - need=p->size; - prev->ptr=p->ptr; /* relink freelist */ - } - else - { - prev->ptr=tmp; - tmp->ptr=p->ptr; - tmp->size=p->size-need; /* remaining size */ - } - - p->size=need; /* set size */ - } - p->ptr=p; /* self-link */ - - return (void*)START_DATA(p); - } - else if (p==&base) - { - if ((p=alloc_get_mem(need))==NULL) return NULL; - } - } - return NULL; -} - -void *calloc(size_t nmemb,size_t size) -{ - size_t n=nmemb*size; - void *tmp=malloc(n); - if (tmp) memset(tmp,0,n); - return tmp; -} - -void *realloc(void *ptr,size_t size) -{ - alloc_head *tmp=0,*tf=0; - long need=0; - long diff=0; - - if (ptr) - { - if (size) - { - tmp=START_BLOCK(ptr); - need=MIN_ALLOC(size); /* only this size will survive */ - diff=tmp->size-need; - if (diff<0) - { - if ((tf=malloc(size))) - { - memcpy(tf,ptr,tmp->size-sizeof(alloc_head)); - free(ptr); - return tf; - } - return NULL; - } - if (diff>0) - { - tmp->size=need; - tf=END_OF_BLOCK(tmp); - tf->ptr=tf; - tf->size=diff; - free(START_DATA(tf)); - } - return ptr; - } - else - free(ptr); - } - else if (size>0) - return malloc(size); - return NULL; -} diff --git a/mdk-stage1/dietlibc/lib/assert_fail.c b/mdk-stage1/dietlibc/lib/assert_fail.c deleted file mode 100644 index caa70ef5b..000000000 --- a/mdk-stage1/dietlibc/lib/assert_fail.c +++ /dev/null @@ -1,27 +0,0 @@ -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -extern int __ltostr(char *s, int size, unsigned long i, int base, char UpCase); - -void __assert_fail (const char *assertion, const char *file, unsigned int line, const char *function) -{ - int alen=strlen(assertion); - int flen=strlen(file); - int fulen=strlen(function); - char *buf=(char*)alloca(alen+flen+fulen+50); - if (buf) { - char *tmp; - *buf=0; - if (file) strcat(strcat(buf,file),":"); - tmp=buf+strlen(buf); - __ltostr(tmp,10,line,10,0); - strcat(buf,": "); - if (function) strcat(strcat(buf,function),": "); - strcat(buf,"Assertion `"); - strcat(buf,assertion); - strcat(buf,"' failed.\n"); - write(2,buf,strlen(buf)); - } - abort(); -} diff --git a/mdk-stage1/dietlibc/lib/atexit.c b/mdk-stage1/dietlibc/lib/atexit.c deleted file mode 100644 index 2b644bf49..000000000 --- a/mdk-stage1/dietlibc/lib/atexit.c +++ /dev/null @@ -1,23 +0,0 @@ -typedef void (*function)(void); - -static function __atexitlist[4]; - -int atexit(function t) { - int i; - for (i=0; i<4; i++) - if (__atexitlist[i]==0) { - __atexitlist[i]=t; - return 0; - } - return -1; -} - -extern void _exit(int code) __attribute__((noreturn)); - -void exit(int code) { - if (__atexitlist[0]) __atexitlist[0](); - if (__atexitlist[1]) __atexitlist[1](); - if (__atexitlist[2]) __atexitlist[2](); - if (__atexitlist[3]) __atexitlist[3](); - _exit(code); -} diff --git a/mdk-stage1/dietlibc/lib/atof.c b/mdk-stage1/dietlibc/lib/atof.c deleted file mode 100644 index 4839e5152..000000000 --- a/mdk-stage1/dietlibc/lib/atof.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <stdlib.h> - -double atof(const char *nptr) { - return strtod(nptr,0); -} diff --git a/mdk-stage1/dietlibc/lib/atoi.c b/mdk-stage1/dietlibc/lib/atoi.c deleted file mode 100644 index fe952b8c4..000000000 --- a/mdk-stage1/dietlibc/lib/atoi.c +++ /dev/null @@ -1,8 +0,0 @@ -int atoi(const char* s) { - int v=0; - int sign=1; - if (*s=='-') { sign=-1; ++s; } else if (*s=='+') ++s; - while (*s && (*s>='0') && (*s<='9')) - v=v*10+*s++-'0'; - return v*sign; -} diff --git a/mdk-stage1/dietlibc/lib/atol.c b/mdk-stage1/dietlibc/lib/atol.c deleted file mode 100644 index 558a004b9..000000000 --- a/mdk-stage1/dietlibc/lib/atol.c +++ /dev/null @@ -1,8 +0,0 @@ -long int atol(const char* s) { - long int v=0; - int sign=1; - if (*s=='-') { sign=-1; ++s; } else if (*s=='+') ++s; - while (*s && (*s>='0') && (*s<='9')) - v=v*10+*s++-'0'; - return v*sign; -} diff --git a/mdk-stage1/dietlibc/lib/bind.c b/mdk-stage1/dietlibc/lib/bind.c deleted file mode 100644 index ec1c93e1b..000000000 --- a/mdk-stage1/dietlibc/lib/bind.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int bind(int a, void * b, int c) { -#ifdef __i386__ - return socketcall(SYS_BIND, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c }; - return socketcall(SYS_BIND, args); -#endif -} diff --git a/mdk-stage1/dietlibc/lib/cfgetospeed.c b/mdk-stage1/dietlibc/lib/cfgetospeed.c deleted file mode 100644 index 4e392a239..000000000 --- a/mdk-stage1/dietlibc/lib/cfgetospeed.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <termios.h> -#include <sys/types.h> - -speed_t cfgetospeed(struct termios *termios_p) { - return termios_p->c_ospeed; -} diff --git a/mdk-stage1/dietlibc/lib/closedir.c b/mdk-stage1/dietlibc/lib/closedir.c deleted file mode 100644 index c8d834f3b..000000000 --- a/mdk-stage1/dietlibc/lib/closedir.c +++ /dev/null @@ -1,28 +0,0 @@ -#include <stdlib.h> -#include <unistd.h> -#include <errno.h> -#undef _POSIX_PTHREADS -#include "dirstream.h" - -#undef closedir -int closedir(DIR * dir) -{ - int fd; - - if (!dir) { - errno = EBADF; - return -1; - } - - /* We need to check dd_fd. */ - if (dir->dd_fd == -1) - { - errno = EBADF; - return -1; - } - fd = dir->dd_fd; - dir->dd_fd = -1; - free(dir->dd_buf); - free(dir); - return close(fd); -} diff --git a/mdk-stage1/dietlibc/lib/connect.c b/mdk-stage1/dietlibc/lib/connect.c deleted file mode 100644 index f7f4f1ed7..000000000 --- a/mdk-stage1/dietlibc/lib/connect.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int connect(int a, void * b, int c) { -#ifdef __i386__ - return socketcall(SYS_CONNECT, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c }; - return socketcall(SYS_CONNECT, args); -#endif -} - -int __libc_connect(int a, void * b, int c) __attribute__((weak,alias("connect"))); diff --git a/mdk-stage1/dietlibc/lib/creat64.c b/mdk-stage1/dietlibc/lib/creat64.c deleted file mode 100644 index 923c1baaa..000000000 --- a/mdk-stage1/dietlibc/lib/creat64.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <fcntl.h> - -int creat64(const char *file,mode_t mode) { - return open64(file,O_WRONLY|O_CREAT|O_TRUNC,mode); -} diff --git a/mdk-stage1/dietlibc/lib/errlist.c b/mdk-stage1/dietlibc/lib/errlist.c deleted file mode 100644 index d0e712190..000000000 --- a/mdk-stage1/dietlibc/lib/errlist.c +++ /dev/null @@ -1,132 +0,0 @@ - -const char *const sys_errlist[] = { - "Success", /* 0 */ - "Operation not permitted", /* EPERM */ - "No such file or directory", /* ENOENT */ - "No such process", /* ESRCH */ - "Interrupted system call", /* EINTR */ - "I/O error", /* EIO */ - "No such device or address", /* ENXIO */ - "Arg list too long", /* E2BIG */ - "Exec format error", /* ENOEXEC */ - "Bad file number", /* EBADF */ - "No child processes", /* ECHILD */ - "Try again", /* EAGAIN */ - "Out of memory", /* ENOMEM */ - "Permission denied", /* EACCES */ - "Bad address", /* EFAULT */ - "Block device required", /* ENOTBLK */ - "Device or resource busy", /* EBUSY */ - "File exists", /* EEXIST */ - "Cross-device link", /* EXDEV */ - "No such device", /* ENODEV */ - "Not a directory", /* ENOTDIR */ - "Is a directory", /* EISDIR */ - "Invalid argument", /* EINVAL */ - "File table overflow", /* ENFILE */ - "Too many open files", /* EMFILE */ - "Not a typewriter", /* ENOTTY */ - "Text file busy", /* ETXTBSY */ - "File too large", /* EFBIG */ - "No space left on device", /* ENOSPC */ - "Illegal seek", /* ESPIPE */ - "Read-only file system", /* EROFS */ - "Too many links", /* EMLINK */ - "Broken pipe", /* EPIPE */ - "Math argument out of domain of func", /* EDOM */ - "Math result not representable", /* ERANGE */ - "Resource deadlock would occur", /* EDEADLK */ - "File name too long", /* ENAMETOOLONG */ - "No record locks available", /* ENOLCK */ - "Function not implemented", /* ENOSYS */ - "Directory not empty", /* ENOTEMPTY */ - "Too many symbolic links encountered", /* ELOOP */ - "Operation would block", /* EWOULDBLOCK */ - "No message of desired type", /* ENOMSG */ - "Identifier removed", /* EIDRM */ - "Channel number out of range", /* ECHRNG */ - "Level 2 not synchronized", /* EL2NSYNC */ - "Level 3 halted", /* EL3HLT */ - "Level 3 reset", /* EL3RST */ - "Link number out of range", /* ELNRNG */ - "Protocol driver not attached", /* EUNATCH */ - "No CSI structure available", /* ENOCSI */ - "Level 2 halted", /* EL2HLT */ - "Invalid exchange", /* EBADE */ - "Invalid request descriptor", /* EBADR */ - "Exchange full", /* EXFULL */ - "No anode", /* ENOANO */ - "Invalid request code", /* EBADRQC */ - "Invalid slot", /* EBADSLT */ - "File locking deadlock error", /* EDEADLOCK */ - "Bad font file format", /* EBFONT */ - "Device not a stream", /* ENOSTR */ - "No data available", /* ENODATA */ - "Timer expired", /* ETIME */ - "Out of streams resources", /* ENOSR */ - "Machine is not on the network", /* ENONET */ - "Package not installed", /* ENOPKG */ - "Object is remote", /* EREMOTE */ - "Link has been severed", /* ENOLINK */ - "Advertise error", /* EADV */ - "Srmount error", /* ESRMNT */ - "Communication error on send", /* ECOMM */ - "Protocol error", /* EPROTO */ - "Multihop attempted", /* EMULTIHOP */ - "RFS specific error", /* EDOTDOT */ - "Not a data message", /* EBADMSG */ - "Value too large for defined data type", /* EOVERFLOW */ - "Name not unique on network", /* ENOTUNIQ */ - "File descriptor in bad state", /* EBADFD */ - "Remote address changed", /* EREMCHG */ - "Can not access a needed shared library", /* ELIBACC */ - "Accessing a corrupted shared library", /* ELIBBAD */ - ".lib section in a.out corrupted", /* ELIBSCN */ - "Attempting to link in too many shared libraries", /* ELIBMAX */ - "Cannot exec a shared library directly", /* ELIBEXEC */ - "Illegal byte sequence", /* EILSEQ */ - "Interrupted system call should be restarted", /* ERESTART */ - "Streams pipe error", /* ESTRPIPE */ - "Too many users", /* EUSERS */ - "Socket operation on non-socket", /* ENOTSOCK */ - "Destination address required", /* EDESTADDRREQ */ - "Message too long", /* EMSGSIZE */ - "Protocol wrong type for socket", /* EPROTOTYPE */ - "Protocol not available", /* ENOPROTOOPT */ - "Protocol not supported", /* EPROTONOSUPPORT */ - "Socket type not supported", /* ESOCKTNOSUPPORT */ - "Operation not supported on transport endpoint", /* EOPNOTSUPP */ - "Protocol family not supported", /* EPFNOSUPPORT */ - "Address family not supported by protocol", /* EAFNOSUPPORT */ - "Address already in use", /* EADDRINUSE */ - "Cannot assign requested address", /* EADDRNOTAVAIL */ - "Network is down", /* ENETDOWN */ - "Network is unreachable", /* ENETUNREACH */ - "Network dropped connection because of reset", /* ENETRESET */ - "Software caused connection abort", /* ECONNABORTED */ - "Connection reset by peer", /* ECONNRESET */ - "No buffer space available", /* ENOBUFS */ - "Transport endpoint is already connected", /* EISCONN */ - "Transport endpoint is not connected", /* ENOTCONN */ - "Cannot send after transport endpoint shutdown", /* ESHUTDOWN */ - "Too many references: cannot splice", /* ETOOMANYREFS */ - "Connection timed out", /* ETIMEDOUT */ - "Connection refused", /* ECONNREFUSED */ - "Host is down", /* EHOSTDOWN */ - "No route to host", /* EHOSTUNREACH */ - "Operation already in progress", /* EALREADY */ - "Operation now in progress", /* EINPROGRESS */ - "Stale NFS file handle", /* ESTALE */ - "Structure needs cleaning", /* EUCLEAN */ - "Not a XENIX named type file", /* ENOTNAM */ - "No XENIX semaphores available", /* ENAVAIL */ - "Is a named type file", /* EISNAM */ - "Remote I/O error", /* EREMOTEIO */ - "Quota exceeded", /* EDQUOT */ - "No medium found", /* ENOMEDIUM */ - "Wrong medium type", /* EMEDIUMTYPE */ - 0 -}; - - -const int sys_nerr = ((sizeof (sys_errlist))/(sizeof(char *))-1); diff --git a/mdk-stage1/dietlibc/lib/errno_location.c b/mdk-stage1/dietlibc/lib/errno_location.c deleted file mode 100644 index 286f833c9..000000000 --- a/mdk-stage1/dietlibc/lib/errno_location.c +++ /dev/null @@ -1,5 +0,0 @@ -extern int errno; - -int *__errno_location() { return &errno; } - -int *errno_location() __attribute__((weak,alias("__errno_location"))); diff --git a/mdk-stage1/dietlibc/lib/execl.c b/mdk-stage1/dietlibc/lib/execl.c deleted file mode 100644 index ae28fb850..000000000 --- a/mdk-stage1/dietlibc/lib/execl.c +++ /dev/null @@ -1,24 +0,0 @@ -#include <stdarg.h> -#include <unistd.h> -#include <errno.h> -#include <stdlib.h> - -int execl( const char *path, ...) { - va_list ap; - int n,i; - char **argv,*tmp; - va_start(ap, path); - n=1; - while ((tmp=va_arg(ap,char *))) - ++n; - va_end (ap); - if ((argv=(char **)alloca(n*sizeof(char*)))) { - va_start(ap, path); - for (i=0; i<n; ++i) - argv[i]=va_arg(ap,char *); - va_end (ap); - return execve(path,argv,environ); - } - __set_errno(ENOMEM); - return -1; -} diff --git a/mdk-stage1/dietlibc/lib/execvp.c b/mdk-stage1/dietlibc/lib/execvp.c deleted file mode 100644 index 809252990..000000000 --- a/mdk-stage1/dietlibc/lib/execvp.c +++ /dev/null @@ -1,55 +0,0 @@ -#include <limits.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <paths.h> -#include <errno.h> - -extern char **environ; - -static int exec_shell(const char *file, char *const argv[]) { - int i; - - for (i = 0; argv[i]; i++); - - if (1) { - char *shell_argv[i + 1]; - shell_argv[0] = _PATH_BSHELL; - shell_argv[1] = (char *) file; - for (; i > 1; i--) - shell_argv[i] = argv[i - 1]; - return execve(_PATH_BSHELL, shell_argv, environ); - } -} - -int execvp(const char *file, char *const argv[]) { - char *path=getenv("PATH"); - char *cur,*next; - char buf[PATH_MAX]; - if (strchr((char*)file,'/')) { - if (execve(file,argv,environ)==-1) { - if (errno==ENOEXEC) exec_shell(file,argv); - return -1; - } - } - if (!path) path=_PATH_DEFPATH; - for (cur=path; cur; cur=next) { - next=strchr(cur,':'); - if (!next) - next=cur+strlen(cur); - if (next==cur) { - buf[0]='.'; - cur--; - } else - memmove(buf,cur,next-cur); - buf[next-cur]='/'; - memmove(&buf[next-cur+1],file,strlen(file)+1); - if (execve(buf,argv,environ)==-1) { - if (errno==ENOEXEC) return exec_shell(buf,argv); - if ((errno!=EACCES) && (errno!=ENOENT)) return -1; - } - if (*next==0) break; - next++; - } - return -1; -} diff --git a/mdk-stage1/dietlibc/lib/ftw.c b/mdk-stage1/dietlibc/lib/ftw.c deleted file mode 100644 index a3c04af9a..000000000 --- a/mdk-stage1/dietlibc/lib/ftw.c +++ /dev/null @@ -1,52 +0,0 @@ -#include <linux/stat.h> -#include <unistd.h> -#include <limits.h> -#include <ftw.h> -#include <dirent.h> -#include <string.h> -#include <stdlib.h> - -int ftw(const char *dir,int (*fn)(const char *file, const struct stat *sb, int flag), int depth) { - char *cwd; - int cwdlen; - DIR *d; - struct dirent *de; - struct stat sb; - if (chdir(dir)) return -1; - cwd=alloca(PATH_MAX+1); - if (!getcwd(cwd,PATH_MAX)) return -1; - cwd[PATH_MAX]=0; - cwdlen=strlen(cwd); -/* write(1,"ftw in ",7); puts(cwd); */ - if (!(d=opendir("."))) return -1; - while ((de=readdir(d))) { - int res; - int flag; - int nlen; - char *filename; - if (de->d_name[0]=='.' && - (de->d_name[1]==0 || - (de->d_name[1]=='.' && de->d_name[2]==0))) continue; - nlen=strlen(de->d_name); - filename=alloca(nlen+cwdlen+3); - memmove(filename,cwd,cwdlen); - filename[cwdlen]='/'; - memmove(filename+cwdlen+1,de->d_name,nlen+1); - if (!lstat(de->d_name,&sb)) { - if (S_ISLNK(sb.st_mode)) flag=FTW_SL; else - if (S_ISDIR(sb.st_mode)) flag=FTW_D; else - flag=FTW_F; - } else - flag=FTW_NS; - res=fn(filename,&sb,flag); - if (res) return res; - if (flag==FTW_D && depth>0) { - res=ftw(filename,fn,depth-1); - chdir(dir); - if (res) return res; - } -/* puts(de->d_name); */ - } - closedir(d); - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/getdomainname.c b/mdk-stage1/dietlibc/lib/getdomainname.c deleted file mode 100644 index 2554fe4c3..000000000 --- a/mdk-stage1/dietlibc/lib/getdomainname.c +++ /dev/null @@ -1,17 +0,0 @@ -#define _GNU_SOURCE - -#include <sys/types.h> -#include <sys/utsname.h> - -int getdomainname(char *name,size_t len) { - struct utsname u; - int res=uname(&u); - if (res==0) { - int i; - if (len>=_UTSNAME_DOMAIN_LENGTH) - len=_UTSNAME_DOMAIN_LENGTH; - for (i=0; i<len; i++) - name[i]=u.domainname[i]; - } - return res; -} diff --git a/mdk-stage1/dietlibc/lib/getenv.c b/mdk-stage1/dietlibc/lib/getenv.c deleted file mode 100644 index fc37e9927..000000000 --- a/mdk-stage1/dietlibc/lib/getenv.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <string.h> - -extern char **environ; - -extern char *getenv(const char *s) -{ - int i; - unsigned int len; - - if (!environ || !s) return 0; - len = strlen(s); - for (i = 0;environ[i];++i) - if ((memcmp(environ[i],s,len)==0) && (environ[i][len] == '=')) - return environ[i] + len + 1; - return 0; -} - diff --git a/mdk-stage1/dietlibc/lib/gethostname.c b/mdk-stage1/dietlibc/lib/gethostname.c deleted file mode 100644 index ccc0fbc8e..000000000 --- a/mdk-stage1/dietlibc/lib/gethostname.c +++ /dev/null @@ -1,18 +0,0 @@ -#define _GNU_SOURCE - -#include <sys/types.h> -#include <sys/utsname.h> - -int gethostname(char *name,size_t len) { - struct utsname u; - int res=uname(&u); - if (res==0) { - int i; - if (len>=_UTSNAME_NODENAME_LENGTH) - len=_UTSNAME_NODENAME_LENGTH; - for (i=0; i<len; i++) - name[i]=u.nodename[i]; - } - return res; -} - diff --git a/mdk-stage1/dietlibc/lib/getpeername.c b/mdk-stage1/dietlibc/lib/getpeername.c deleted file mode 100644 index 8adcddf55..000000000 --- a/mdk-stage1/dietlibc/lib/getpeername.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int getpeername(int a, void * b, int c) { -#ifdef __i386__ - return socketcall(SYS_GETPEERNAME, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c }; - return socketcall(SYS_GETPEERNAME, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/getservent.c b/mdk-stage1/dietlibc/lib/getservent.c deleted file mode 100644 index ee6a77c21..000000000 --- a/mdk-stage1/dietlibc/lib/getservent.c +++ /dev/null @@ -1,141 +0,0 @@ -#include <unistd.h> -#include <fcntl.h> -#include <netdb.h> -#include <sys/mman.h> -#include <errno.h> -#include <netinet/in.h> -#include <string.h> - -static int servicesfd=-1; -static char* servicesmap; -static unsigned int serviceslen; - -static char* aliases[10]; - -static char *cur; - -static inline int isalpha(char c) { - return (c>='a' && c<='z') || (c>='A' && c<='Z'); -} - -static inline int isdigit(char c) { - return (c>='0' && c<='9'); -} - -static inline int isalnum(char c) { - return isalpha(c) || isdigit(c); -} - -static inline int isblank(char c) { - return (c==' ' || c=='\t'); -} - -/* nameserver 42/tcp name # IEN 116 */ -struct servent *getservent(void) { - static struct servent se; - char *last; - int aliasidx; - if (servicesfd<0) { - servicesfd=open("/etc/services",O_RDONLY); - if (servicesfd<0) return 0; - serviceslen=lseek(servicesfd,0,SEEK_END); - servicesmap=mmap(0,serviceslen,PROT_READ|PROT_WRITE,MAP_PRIVATE,servicesfd,0); - if ((long)servicesmap==(-1)) goto error; - cur=servicesmap; - } - last=servicesmap+serviceslen; -again: - se.s_name=0; - se.s_aliases=aliases; aliases[0]=0; - se.s_port=0; - se.s_proto=0; - if (cur>=last) return 0; - if (*cur=='#' || *cur=='\n') goto parseerror; - /* first, the primary name */ - if (!isalpha(*cur)) goto parseerror; - se.s_name=cur; - se.s_aliases=aliases; - while (cur<last && isalnum(*cur)) cur++; - if (cur>=last) return 0; - if (*cur=='\n') goto parseerror; - *cur=0; cur++; - /* second, the port */ - while (cur<last && isblank(*cur)) cur++; - while (cur<last && isdigit(*cur)) { - se.s_port=se.s_port*10+*cur-'0'; - cur++; - } - se.s_port=htons(se.s_port); - if (cur>=last) return 0; - /* third, "/tcp" or "/udp" */ - if (*cur!='/') goto parseerror; - cur++; - se.s_proto=cur; - while (cur<last && isalpha(*cur)) cur++; - if (cur>=last) return 0; - if (*cur=='\n') { *cur++=0; return &se; } - *cur=0; cur++; - /* now the aliases */ - for (aliasidx=0;aliasidx<10;aliasidx++) { - while (cur<last && isblank(*cur)) cur++; - aliases[aliasidx]=cur; - while (cur<last && isalpha(*cur)) cur++; - if (cur>=last || !isblank(*cur)) break; - if (*cur=='\n') { *cur++=0; break; } - *cur++=0; - } - aliases[aliasidx]=0; - return &se; -parseerror: - while (cur<last && *cur!='\n') cur++; - cur++; - goto again; -error: - if (servicesmap!=(char*)-1) munmap(servicesmap,serviceslen); - if (servicesfd!=-1) close(servicesfd); - servicesmap=(char*)-1; - servicesfd=-1; - errno=ENOMEM; - return 0; -} - -struct servent *getservbyname(const char *name, const char *proto) { - struct servent *s; - for (s=getservent(); s; s=getservent()) { - char **tmp; -#if 0 - write(1,"found ",6); - write(1,s->s_name,strlen(s->s_name)); - write(1,"/",1); - write(1,s->s_proto,strlen(s->s_proto)); - write(1,"\n",1); -#endif - if (!strcmp(name,s->s_name) && !strcmp(proto,s->s_proto)) - return s; - tmp=s->s_aliases; - while (*tmp) - if (!strcmp(name,*tmp++)) return s; - } - return 0; -} - -struct servent *getservbyport(int port, const char *proto) { - struct servent *s; - for (s=getservent(); s; s=getservent()) { - if (port==s->s_port && !strcmp(proto,s->s_proto)) - return s; - } - return 0; -} - -void setservent(int stayopen) { - cur=servicesmap; -} - -void endservent(void) { - if (servicesmap!=(char*)-1) munmap(servicesmap,serviceslen); - if (servicesfd!=-1) close(servicesfd); - servicesmap=(char*)-1; - servicesfd=-1; -} - diff --git a/mdk-stage1/dietlibc/lib/getsockname.c b/mdk-stage1/dietlibc/lib/getsockname.c deleted file mode 100644 index 61a3ea24a..000000000 --- a/mdk-stage1/dietlibc/lib/getsockname.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int getsockname(int a, void * b, int c) { -#ifdef __i386__ - return socketcall(SYS_GETSOCKNAME, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c }; - return socketcall(SYS_GETSOCKNAME, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/getsockopt.c b/mdk-stage1/dietlibc/lib/getsockopt.c deleted file mode 100644 index 8c0a57557..000000000 --- a/mdk-stage1/dietlibc/lib/getsockopt.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int getsockopt(int a, int b, int c, void *d, int e) { -#ifdef __i386__ - return socketcall(SYS_GETSOCKOPT, (long*)&a); -#else - unsigned long args[] = { a, b, c, (long)d, e }; - return socketcall(SYS_GETSOCKOPT, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/htons.c b/mdk-stage1/dietlibc/lib/htons.c deleted file mode 100644 index 92a43f937..000000000 --- a/mdk-stage1/dietlibc/lib/htons.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <asm/byteorder.h> - -#undef htons -#ifdef __i386__ -unsigned short int htons(unsigned short int netshort) { - return ___arch__swab16(netshort); -} -#else -unsigned short int htons(unsigned short int netshort) { - return netshort; -} -#endif diff --git a/mdk-stage1/dietlibc/lib/if_indextoname.c b/mdk-stage1/dietlibc/lib/if_indextoname.c deleted file mode 100644 index e683755f6..000000000 --- a/mdk-stage1/dietlibc/lib/if_indextoname.c +++ /dev/null @@ -1,29 +0,0 @@ -#include <linux/if.h> -#include <linux/net.h> -#include <sys/ioctl.h> -#include <unistd.h> -#include <sys/socket.h> - -#ifndef SOCK_DGRAM -#define SOCK_DGRAM 2 -#endif - -char* if_indextoname(unsigned int interface,char* blub) { - struct ifreq ifr; - int fd; - - fd=socket(AF_INET6,SOCK_DGRAM,0); - if (fd<0) fd=socket(AF_INET,SOCK_DGRAM,0); - ifr.ifr_ifindex=interface; - if (ioctl(fd,SIOCGIFNAME,&ifr)==0) { - int i; - close(fd); - for (i=0; i<IFNAMSIZ-1; i++) - if (!(blub[i]=ifr.ifr_name[i])) - return blub; - blub[i]=0; - return blub; - } - close(fd); - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/if_nametoindex.c b/mdk-stage1/dietlibc/lib/if_nametoindex.c deleted file mode 100644 index 5923963b1..000000000 --- a/mdk-stage1/dietlibc/lib/if_nametoindex.c +++ /dev/null @@ -1,27 +0,0 @@ -#include <linux/if.h> -#include <linux/net.h> -#include <sys/ioctl.h> -#include <unistd.h> -#include <sys/socket.h> - -#ifndef SOCK_DGRAM -#define SOCK_DGRAM 2 -#endif - -int if_nametoindex(char* blub) { - struct ifreq ifr; - int fd; - char *tmp; - int len=sizeof(ifr.ifr_name); - fd=socket(AF_INET6,SOCK_DGRAM,0); - if (fd<0) fd=socket(AF_INET,SOCK_DGRAM,0); - for (tmp=ifr.ifr_name; len>0; --len) { - if ((*tmp++=*blub++)==0) break; - } - if (ioctl(fd,SIOCGIFINDEX,&ifr)==0) { - close(fd); - return ifr.ifr_ifindex; - } - close(fd); - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/isalnum.c b/mdk-stage1/dietlibc/lib/isalnum.c deleted file mode 100644 index 19e5151d5..000000000 --- a/mdk-stage1/dietlibc/lib/isalnum.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <ctype.h> - -int isalnum(int c) { - return isalpha(c) || isdigit(c); -} - diff --git a/mdk-stage1/dietlibc/lib/isalpha.c b/mdk-stage1/dietlibc/lib/isalpha.c deleted file mode 100644 index db04c3fae..000000000 --- a/mdk-stage1/dietlibc/lib/isalpha.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <ctype.h> - -inline int isalpha(int c) { - return (c>='a' && c<='z') || (c>='A' && c<='Z'); -} - diff --git a/mdk-stage1/dietlibc/lib/isascii.c b/mdk-stage1/dietlibc/lib/isascii.c deleted file mode 100644 index e627efb41..000000000 --- a/mdk-stage1/dietlibc/lib/isascii.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <ctype.h> - -inline int isascii(int c) { - return (c & 0x80) == 0; -} - diff --git a/mdk-stage1/dietlibc/lib/isatty.c b/mdk-stage1/dietlibc/lib/isatty.c deleted file mode 100644 index b31609720..000000000 --- a/mdk-stage1/dietlibc/lib/isatty.c +++ /dev/null @@ -1,20 +0,0 @@ -#define ioctl libc_ioctl -#include <termios.h> -#undef ioctl -#include <sys/ioctl.h> - -extern int errno; - -int isatty(int fd) -{ - int save; - int is_tty; - struct termios term; - - save = errno; - is_tty = ioctl(fd, TCGETS, &term) == 0; - errno = save; - - return is_tty; -} - diff --git a/mdk-stage1/dietlibc/lib/isblank.c b/mdk-stage1/dietlibc/lib/isblank.c deleted file mode 100644 index 034e543b1..000000000 --- a/mdk-stage1/dietlibc/lib/isblank.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <ctype.h> - -int isblank(int ch) -{ - return ((ch==' ')||(ch=='\t')); -} diff --git a/mdk-stage1/dietlibc/lib/isdigit.c b/mdk-stage1/dietlibc/lib/isdigit.c deleted file mode 100644 index 734eb5197..000000000 --- a/mdk-stage1/dietlibc/lib/isdigit.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <ctype.h> - -inline int isdigit(int c) { - return (c>='0' && c<='9'); -} - diff --git a/mdk-stage1/dietlibc/lib/isspace.c b/mdk-stage1/dietlibc/lib/isspace.c deleted file mode 100644 index ab39e81bc..000000000 --- a/mdk-stage1/dietlibc/lib/isspace.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <ctype.h> - -int isspace(int ch) -{ - return ((ch==' ')||(ch=='\f')||(ch=='\t')||(ch=='\v')||(ch=='\r')||(ch=='\n')); -} diff --git a/mdk-stage1/dietlibc/lib/listen.c b/mdk-stage1/dietlibc/lib/listen.c deleted file mode 100644 index 56a51be06..000000000 --- a/mdk-stage1/dietlibc/lib/listen.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int listen(int a, int b) { -#ifdef __i386__ - return socketcall(SYS_LISTEN, (long*)&a); -#else - unsigned long args[] = { a, b, 0 }; - return socketcall(SYS_LISTEN, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/lockf.c b/mdk-stage1/dietlibc/lib/lockf.c deleted file mode 100644 index 2b1d004ef..000000000 --- a/mdk-stage1/dietlibc/lib/lockf.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> -#include <errno.h> - -int lockf(int fd, int cmd, off_t len) { - struct flock fl; - fl.l_whence=SEEK_CUR; - fl.l_start=0; - fl.l_len=len; - fl.l_pid=0; - switch (cmd) { - case F_TEST: - if (fcntl(fd,F_GETLK,&fl)<0) - return -1; - if (fl.l_type == F_UNLCK || fl.l_pid == getpid ()) - return 0; - errno=EACCES; - return -1; - case F_ULOCK: - fl.l_type=F_UNLCK; - cmd=F_SETLK; - break; - case F_LOCK: - fl.l_type = F_WRLCK; - cmd = F_SETLKW; - break; - case F_TLOCK: - fl.l_type = F_WRLCK; - cmd = F_SETLK; - break; - default: - errno=EINVAL; - return -1; - } - return fcntl(fd,cmd,&fl); -} diff --git a/mdk-stage1/dietlibc/lib/longjmp.c b/mdk-stage1/dietlibc/lib/longjmp.c deleted file mode 100644 index d0a5719c1..000000000 --- a/mdk-stage1/dietlibc/lib/longjmp.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (C) 1991, 92, 94, 95, 97, 98 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* #include <stddef.h> */ -#include <setjmp.h> -#include <signal.h> - -extern int __sigprocmask(int how,void* set,void* oldset); -extern void __longjmp(void* env, int val); - -/* -extern void _longjmp_unwind (jmp_buf env, int val); -*/ -/* Set the signal mask to the one specified in ENV, and jump - to the position specified in ENV, causing the setjmp - call there to return VAL, or 1 if VAL is 0. */ -void __siglongjmp (sigjmp_buf env, int val) -{ - /* Perform any cleanups needed by the frames being unwound. */ - /* - _longjmp_unwind (env, val); - */ - - if (env[0].__mask_was_saved) - /* Restore the saved signal mask. */ - (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask, - (sigset_t *) NULL); - - /* Call the machine-dependent function to restore machine state. */ - __longjmp (env[0].__jmpbuf, val ?: 1); -} - -void siglongjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp"))); -void longjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp"))); -void _longjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp"))); -void __libc_longjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp"))); diff --git a/mdk-stage1/dietlibc/lib/memccmp.c b/mdk-stage1/dietlibc/lib/memccmp.c deleted file mode 100644 index 3a8c14f60..000000000 --- a/mdk-stage1/dietlibc/lib/memccmp.c +++ /dev/null @@ -1,17 +0,0 @@ -#define _POSIX_SOURCE -#define _XOPEN_SOURCE -#include <sys/types.h> - -int memccmp(const void *dst, const void *src, int c, size_t count) -{ - register const char *a = dst; - register const char *b = src; - while (count--) - { - register int res=(*a - *b); - if (res) return res; - if (*a==c) return 0; - ++a; ++b; - } - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/memccpy.c b/mdk-stage1/dietlibc/lib/memccpy.c deleted file mode 100644 index 6d6ac98ab..000000000 --- a/mdk-stage1/dietlibc/lib/memccpy.c +++ /dev/null @@ -1,19 +0,0 @@ -#define _POSIX_SOURCE -#define _XOPEN_SOURCE -#include <sys/types.h> - -void *memccpy(void *dst, const void *src, int c, size_t count) -{ - char *a = dst; - const char *b = src; - while (count--) - { - *a++ = *b; - if (*b==c) - { - return (void *)a; - } - b++; - } - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/memchr.c b/mdk-stage1/dietlibc/lib/memchr.c deleted file mode 100644 index 93d81328a..000000000 --- a/mdk-stage1/dietlibc/lib/memchr.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <sys/types.h> - -char *memchr(const char *s, int c, size_t n) { - int i; - for (i=n; i; --i) - if (*s++==c) - return (char*)s; - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/memcmp.c b/mdk-stage1/dietlibc/lib/memcmp.c deleted file mode 100644 index 8bce6c975..000000000 --- a/mdk-stage1/dietlibc/lib/memcmp.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <sys/types.h> - -int memcmp(const void *dst, const void *src, size_t count) { - register int r; - register const char *d=dst; - register const char *s=src; - while (count--) { - if ((r=(*d - *s))) - return r; - ++d; - ++s; - } - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/memcpy.c b/mdk-stage1/dietlibc/lib/memcpy.c deleted file mode 100644 index 0c688b509..000000000 --- a/mdk-stage1/dietlibc/lib/memcpy.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <sys/types.h> - -void* memcpy(void* dst, const void* src, size_t count) { - register char *d=dst; - register const char *s=src; - ++count; /* this actually produces better code than using count-- */ - while (--count) { - *d = *s; - ++d; ++s; - } - return dst; -} diff --git a/mdk-stage1/dietlibc/lib/memmove.c b/mdk-stage1/dietlibc/lib/memmove.c deleted file mode 100644 index 7adb2be91..000000000 --- a/mdk-stage1/dietlibc/lib/memmove.c +++ /dev/null @@ -1,23 +0,0 @@ -#define _POSIX_SOURCE -#define _XOPEN_SOURCE -#include <sys/types.h> - -void *memmove(void *dst, const void *src, size_t count) -{ - char *a = dst; - const char *b = src; - if (src!=dst) - { - if (src>dst) - { - while (count--) *a++ = *b++; - } - else - { - a+=count-1; - b+=count-1; - while (count--) *a-- = *b--; - } - } - return dst; -} diff --git a/mdk-stage1/dietlibc/lib/memset.c b/mdk-stage1/dietlibc/lib/memset.c deleted file mode 100644 index 5f9ae49ee..000000000 --- a/mdk-stage1/dietlibc/lib/memset.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <sys/types.h> - -void * memset(void * dst, int s, size_t count) { - register char * a = dst; - count++; /* this actually creates smaller code than using count-- */ - while (--count) - *a++ = s; - return dst; -} diff --git a/mdk-stage1/dietlibc/lib/mkfifo.c b/mdk-stage1/dietlibc/lib/mkfifo.c deleted file mode 100644 index 97659490c..000000000 --- a/mdk-stage1/dietlibc/lib/mkfifo.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <linux/stat.h> -#include <unistd.h> - -int mkfifo(char *fn,int mode) { - return mknod(fn,S_IFIFO|mode,0); -} diff --git a/mdk-stage1/dietlibc/lib/nop.c b/mdk-stage1/dietlibc/lib/nop.c deleted file mode 100644 index 623278dee..000000000 --- a/mdk-stage1/dietlibc/lib/nop.c +++ /dev/null @@ -1,7 +0,0 @@ - -int __fflush_stdin() __attribute__((weak,alias("__nop"))); -int __fflush_stdout() __attribute__((weak,alias("__nop"))); -int __fflush_stderr() __attribute__((weak,alias("__nop"))); - -/* used for weak aliases */ -int __nop() { return 0; } diff --git a/mdk-stage1/dietlibc/lib/open64.c b/mdk-stage1/dietlibc/lib/open64.c deleted file mode 100644 index cab7e992e..000000000 --- a/mdk-stage1/dietlibc/lib/open64.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <linux/types.h> -#include <linux/fcntl.h> -#include <unistd.h> - -#ifdef O_LARGEFILE -int open64(const char* file,int oflag,int mode) { - return open(file,oflag|O_LARGEFILE,mode); -} - -int __libc_open64(const char* file,int oflag,int mode) __attribute__((weak,alias("open64"))); -#endif diff --git a/mdk-stage1/dietlibc/lib/opendir.c b/mdk-stage1/dietlibc/lib/opendir.c deleted file mode 100644 index 05c0b9bc8..000000000 --- a/mdk-stage1/dietlibc/lib/opendir.c +++ /dev/null @@ -1,63 +0,0 @@ -#include <sys/stat.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> -#include <unistd.h> -#undef _POSIX_PTHREADS -#include <errno.h> - -#include "dirstream.h" - -#ifndef O_DIRECTORY -#define O_DIRECTORY 0200000 /* must be a directory */ -#endif - -/* - * opendir just makes an open() call - it return NULL if it fails - * (open sets errno), otherwise it returns a DIR * pointer. - */ -#undef opendir -DIR * -opendir(const char * name) -{ - int fd; - struct stat statbuf; - struct dirent *buf; - DIR *ptr; - - /* - if (stat(name,&statbuf)) return NULL; - if (!S_ISDIR(statbuf.st_mode)) { - errno = ENOTDIR; - return NULL; - } - */ - if ((fd = open(name,O_RDONLY|O_DIRECTORY)) < 0) - return NULL; - /* According to POSIX, directory streams should be closed when - * exec. From "Anna Pluzhnikov" <besp@midway.uchicago.edu>. - */ - if (fcntl(fd, F_SETFD, FD_CLOEXEC) < 0) - return NULL; - if (!(ptr=malloc(sizeof(*ptr)))) { - close(fd); - errno = ENOMEM; - return NULL; - } - - ptr->dd_max = statbuf.st_blksize; - if (ptr->dd_max < 512) - ptr->dd_max = 512; - - if (!(buf=malloc(ptr->dd_max))) { - close(fd); - free(ptr); - errno = ENOMEM; - return NULL; - } - ptr->dd_fd = fd; - ptr->dd_nextoff = ptr->dd_nextloc = ptr->dd_size = 0; - ptr->dd_buf = buf; - ptr->dd_getdents = unknown; - return ptr; -} diff --git a/mdk-stage1/dietlibc/lib/perror.c b/mdk-stage1/dietlibc/lib/perror.c deleted file mode 100644 index 5476d76a1..000000000 --- a/mdk-stage1/dietlibc/lib/perror.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <unistd.h> -#include <string.h> - -extern char *sys_errlist[]; -extern int sys_nerr; -extern int errno; - -void perror(const char *s) { - register char *message="[unknown error]"; - write(2,s,strlen(s)); - write(2,": ",2); - if (errno>=0 && errno<sys_nerr) - message=sys_errlist[errno]; - write(2,message,strlen(message)); - write(2,"\n",1); -} diff --git a/mdk-stage1/dietlibc/lib/pread.c b/mdk-stage1/dietlibc/lib/pread.c deleted file mode 100644 index b922aa93e..000000000 --- a/mdk-stage1/dietlibc/lib/pread.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <endian.h> -#include <sys/types.h> - -extern size_t __pread(int fd, void *buf, size_t count, off_t a,off_t b); - -size_t __libc_pread(int fd, void *buf, size_t count, off_t offset) { - return __pread(fd,buf,count,offset,0); -} - -int pread(int fd, void *buf, size_t count, off_t offset) __attribute__((weak,alias("__libc_pread"))); diff --git a/mdk-stage1/dietlibc/lib/pread64.c b/mdk-stage1/dietlibc/lib/pread64.c deleted file mode 100644 index e6ba4d103..000000000 --- a/mdk-stage1/dietlibc/lib/pread64.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <endian.h> -#include <sys/types.h> -#include <sys/stat.h> - -#ifndef __NO_STAT64 -extern size_t __pread(int fd, void *buf, size_t count, off_t a,off_t b); - -size_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset) { - return __pread(fd,buf,count,__LONG_LONG_PAIR (offset&0xffffffff,offset>>32)); -} - -int pread64(int fd, void *buf, size_t count, off_t offset) __attribute__((weak,alias("__libc_pread64"))); -#endif diff --git a/mdk-stage1/dietlibc/lib/putenv.c b/mdk-stage1/dietlibc/lib/putenv.c deleted file mode 100644 index 274b16b0e..000000000 --- a/mdk-stage1/dietlibc/lib/putenv.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <stdlib.h> -#include <string.h> - -int putenv(const char *string) { - int len; - int envc; - char *tmp; - const char **ep; - char **newenv; - static char **origenv=0; - if (!origenv) origenv=environ; - if (!(tmp=strchr(string,'='))) - len=strlen(string); - else - len=tmp-string+1; - for (envc=0, ep=(const char**)environ; *ep; ++ep) { - if (!memcmp(string,*ep,len)) { /* found */ - if (!tmp) { - for (; ep[1]; ++ep) ep[0]=ep[1]; - ep[0]=0; - return 0; - } - *ep=string; - return 0; - } - ++envc; - } - if (tmp) { - newenv=(char**)malloc((envc+2)*sizeof(char*)); - if (!newenv) return -1; - newenv[0]=(char*)string; - memcpy(newenv+1,environ,(envc+1)*sizeof(char*)); - if (environ!=origenv) free(environ); - environ=newenv; - } - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/puts.c b/mdk-stage1/dietlibc/lib/puts.c deleted file mode 100644 index 01f6e50c4..000000000 --- a/mdk-stage1/dietlibc/lib/puts.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <unistd.h> -#include <string.h> - -int puts(const char *s) { - return write(1,s,strlen(s)) && write(1,"\n",1); -} diff --git a/mdk-stage1/dietlibc/lib/raise.c b/mdk-stage1/dietlibc/lib/raise.c deleted file mode 100644 index 606546034..000000000 --- a/mdk-stage1/dietlibc/lib/raise.c +++ /dev/null @@ -1,8 +0,0 @@ -#include <linux/types.h> -#include <unistd.h> -#include <signal.h> -#include "syscalls.h" - -int raise(int sig) { - return kill(getpid(),sig); -} diff --git a/mdk-stage1/dietlibc/lib/readdir.c b/mdk-stage1/dietlibc/lib/readdir.c deleted file mode 100644 index 5accd32a1..000000000 --- a/mdk-stage1/dietlibc/lib/readdir.c +++ /dev/null @@ -1,83 +0,0 @@ -#if 0 - -Sorry, currently broken - -#include <dirent.h> -#include <errno.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> - -#include "dirstream.h" - -#ifdef __ELF__ -#pragma weak readdir = __libc_readdir -#endif - -struct dirent * -__libc_readdir(DIR * dir) -{ - int result; - struct dirent *de; - - if (!dir) { - errno = EBADF; - return NULL; - } - - /* Are we running an old kernel? */ - if (dir->dd_getdents == no_getdents) - { - abort(); - } - - if (dir->dd_size <= dir->dd_nextloc) - { - /* read dir->dd_max bytes of directory entries. */ - result=getdents(dir->dd_fd,dir->dd_buf,dir->dd_max); - - /* We assume we have getdents (). */ - dir->dd_getdents = have_getdents; - if (result <= 0) - { - result = -result; - if (result > 0) - { - /* Are we right? */ - if (result == ENOSYS) - { - dir->dd_getdents = no_getdents; - abort(); - } - errno = result; - } - - return NULL; - } - - dir->dd_size = result; - dir->dd_nextloc = 0; - } - - de = (struct dirent *) (((char *)dir->dd_buf) + dir->dd_nextloc); - - /* Am I right? H.J. */ - dir->dd_nextloc += de->d_reclen; - - /* We have to save the next offset here. */ - dir->dd_nextoff = de->d_off; - - /* convert */ - dir->convbuf.d_ino=de->d_ino; - dir->convbuf.d_off=de->d_off; - dir->convbuf.d_reclen=de->d_reclen; - dir->convbuf.d_type=0; - if (strlen((char*)&de->d_type)>10) - de->d_name[10]=0; - strcpy(dir->convbuf.d_name,(char*)&de->d_type); - errno=0; - - return &dir->convbuf; -} - -#endif diff --git a/mdk-stage1/dietlibc/lib/recv.c b/mdk-stage1/dietlibc/lib/recv.c deleted file mode 100644 index cc778712c..000000000 --- a/mdk-stage1/dietlibc/lib/recv.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int recv(int a, const void * b, size_t c, int flags) { -#ifdef __i386__ - return socketcall(SYS_RECV,(long*)&a); -#else - unsigned long args[] = { a, (long) b, c, flags }; - return socketcall(SYS_RECV, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/recvfrom.c b/mdk-stage1/dietlibc/lib/recvfrom.c deleted file mode 100644 index a07afe7ad..000000000 --- a/mdk-stage1/dietlibc/lib/recvfrom.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen) { -#ifdef __i386__ - return socketcall(SYS_RECVFROM, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c, flags, (long) to, (long) tolen }; - return socketcall(SYS_RECVFROM, args); -#endif -} diff --git a/mdk-stage1/dietlibc/lib/rewind.c b/mdk-stage1/dietlibc/lib/rewind.c deleted file mode 100644 index 48434a316..000000000 --- a/mdk-stage1/dietlibc/lib/rewind.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <dietstdio.h> -#include <unistd.h> - -void rewind( FILE *stream) { - fseek(stream, 0L, SEEK_SET); -} diff --git a/mdk-stage1/dietlibc/lib/rewinddir.c b/mdk-stage1/dietlibc/lib/rewinddir.c deleted file mode 100644 index 138936527..000000000 --- a/mdk-stage1/dietlibc/lib/rewinddir.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <unistd.h> -#include <errno.h> - -#include "dirstream.h" - -/* - * rewinddir() just does an lseek(fd,0,0) - see close for comments - */ -void rewinddir(DIR * dir) -{ - if (!dir) { - errno = EBADF; - return; - } - lseek(dir->dd_fd,0,SEEK_SET); - dir->dd_nextoff = dir->dd_nextloc = dir->dd_size = 0; -} diff --git a/mdk-stage1/dietlibc/lib/sbrk.c b/mdk-stage1/dietlibc/lib/sbrk.c deleted file mode 100644 index 945ad5a16..000000000 --- a/mdk-stage1/dietlibc/lib/sbrk.c +++ /dev/null @@ -1,20 +0,0 @@ -#include <unistd.h> - -extern int __brk(void *end_data_segment); - -extern void* __curbrk; - -void* __sbrk(ptrdiff_t increment) { - void* oldbrk; - if (__curbrk==0) - if (__brk(0) < 0) - return (void*)-1; - if (increment==0) - return __curbrk; - oldbrk=__curbrk; - if (__brk(oldbrk+increment)<0) - return (void*)-1; - return oldbrk; -} - -void* sbrk (ptrdiff_t increment) __attribute__((weak,alias("__sbrk"))); diff --git a/mdk-stage1/dietlibc/lib/seekdir.c b/mdk-stage1/dietlibc/lib/seekdir.c deleted file mode 100644 index f83052250..000000000 --- a/mdk-stage1/dietlibc/lib/seekdir.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <unistd.h> -#include <errno.h> - -#include "dirstream.h" - -#undef seekdir -void seekdir(DIR * dir, off_t offset) -{ - if (!dir) { - errno = EBADF; - return; - } - dir->dd_nextoff = lseek(dir->dd_fd, offset, SEEK_SET); - dir->dd_size = dir->dd_nextloc = 0; -} diff --git a/mdk-stage1/dietlibc/lib/send.c b/mdk-stage1/dietlibc/lib/send.c deleted file mode 100644 index be43b4e63..000000000 --- a/mdk-stage1/dietlibc/lib/send.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int send(int a, const void * b, size_t c, int flags) { -#ifdef __i386__ - return socketcall(SYS_SEND, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c, flags }; - return socketcall(SYS_SEND, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/sendto.c b/mdk-stage1/dietlibc/lib/sendto.c deleted file mode 100644 index e6c2560f3..000000000 --- a/mdk-stage1/dietlibc/lib/sendto.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int sendto(int a, const void * b, size_t c, int flags, void *to, int tolen) { -#ifdef __i386__ - return socketcall(SYS_SENDTO, (long*)&a); -#else - unsigned long args[] = { a, (long) b, c, flags, (long) to, tolen }; - return socketcall(SYS_SENDTO, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/set_errno.c b/mdk-stage1/dietlibc/lib/set_errno.c deleted file mode 100644 index 6553bc496..000000000 --- a/mdk-stage1/dietlibc/lib/set_errno.c +++ /dev/null @@ -1,9 +0,0 @@ -extern int errno; - -void __set_errno(int error) __attribute__ ((weak)); - -void __set_errno(int error) -{ - errno=error; -} - diff --git a/mdk-stage1/dietlibc/lib/setsockopt.c b/mdk-stage1/dietlibc/lib/setsockopt.c deleted file mode 100644 index 781e9c31c..000000000 --- a/mdk-stage1/dietlibc/lib/setsockopt.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int setsockopt(int a, int b, int c, void *d, void *e) { -#ifdef __i386__ - return socketcall(SYS_SETSOCKOPT, (long*)&a); -#else - unsigned long args[] = { a, b, c, (long)d, (long) e }; - return socketcall(SYS_SETSOCKOPT, args); -#endif -} - diff --git a/mdk-stage1/dietlibc/lib/sigaddset.c b/mdk-stage1/dietlibc/lib/sigaddset.c deleted file mode 100644 index 0c9d95c28..000000000 --- a/mdk-stage1/dietlibc/lib/sigaddset.c +++ /dev/null @@ -1,21 +0,0 @@ -#define __USE_EXTERN_INLINES 1 -#include <signal.h> - -# define __sigmask(sig) \ - (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int)))) - -# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int))) - -# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) -typedef struct - { - unsigned long int __val[_SIGSET_NWORDS]; - } __sigset_t; - -int __sigaddset(__sigset_t *set, int signo) { - unsigned long int __mask = __sigmask (signo); - unsigned long int __word = __sigword (signo); - return ((set->__val[__word] |= __mask), 0); -} - -int sigaddset (sigset_t *env, int signo) __attribute__((weak,alias("__sigaddset"))); diff --git a/mdk-stage1/dietlibc/lib/sigemptyset.c b/mdk-stage1/dietlibc/lib/sigemptyset.c deleted file mode 100644 index f4532f96e..000000000 --- a/mdk-stage1/dietlibc/lib/sigemptyset.c +++ /dev/null @@ -1,14 +0,0 @@ -#define __USE_EXTERN_INLINES 1 -#include <signal.h> -#include <errno.h> -#include <string.h> - -int sigemptyset(sigset_t *set) { - if (set==NULL) { - __set_errno(EINVAL); - return -1; - } - memset(set,0,sizeof(*set)); - return 0; -} - diff --git a/mdk-stage1/dietlibc/lib/sigjmp.c b/mdk-stage1/dietlibc/lib/sigjmp.c deleted file mode 100644 index d7db58fd2..000000000 --- a/mdk-stage1/dietlibc/lib/sigjmp.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 1992, 1994, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include <stddef.h> -#include <setjmp.h> -#include <signal.h> -#include <string.h> - -/* This function is called by the `sigsetjmp' macro - before doing a `__setjmp' on ENV[0].__jmpbuf. - Always return zero. */ - -int -__sigjmp_save (sigjmp_buf env, int savemask) -{ - env[0].__mask_was_saved = (savemask && - sigprocmask (SIG_BLOCK, (sigset_t *) NULL, - (sigset_t*)&env[0].__saved_mask) == 0); - - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/sleep.c b/mdk-stage1/dietlibc/lib/sleep.c deleted file mode 100644 index ec5b99533..000000000 --- a/mdk-stage1/dietlibc/lib/sleep.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <linux/time.h> -#include <time.h> - -unsigned int sleep(unsigned int secs) { - struct timespec t; - t.tv_sec=secs; - t.tv_nsec=0; - nanosleep(&t,&t); - return secs-t.tv_sec; -} - diff --git a/mdk-stage1/dietlibc/lib/snprintf.c b/mdk-stage1/dietlibc/lib/snprintf.c deleted file mode 100644 index 096c06115..000000000 --- a/mdk-stage1/dietlibc/lib/snprintf.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <stdarg.h> -#include <sys/types.h> - -int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr); - -int snprintf(char *str,size_t size,const char *format,...) -{ - int n; - va_list arg_ptr; - va_start(arg_ptr, format); - n=vsnprintf(str,size,format,arg_ptr); - va_end (arg_ptr); - return n; -} diff --git a/mdk-stage1/dietlibc/lib/socket.c b/mdk-stage1/dietlibc/lib/socket.c deleted file mode 100644 index 1684a6a2b..000000000 --- a/mdk-stage1/dietlibc/lib/socket.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <linux/net.h> - -extern int socketcall(int callno,long* args); - -int socket(int a, int b, int c) { -#ifdef __i386__ - return socketcall(SYS_SOCKET, (long*)&a); -#else - unsigned long args[] = { a, b, c }; - return socketcall(SYS_SOCKET, args); -#endif -} diff --git a/mdk-stage1/dietlibc/lib/sprintf.c b/mdk-stage1/dietlibc/lib/sprintf.c deleted file mode 100644 index f1b554ce2..000000000 --- a/mdk-stage1/dietlibc/lib/sprintf.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <stdarg.h> -#include <linux/types.h> -#include <stdlib.h> - -int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr); - -int sprintf(char *dest,const char *format,...) -{ - int n; - va_list arg_ptr; - va_start(arg_ptr, format); - n=vsnprintf(dest,1000000,format,arg_ptr); - va_end (arg_ptr); - return n; -} diff --git a/mdk-stage1/dietlibc/lib/sscanf.c b/mdk-stage1/dietlibc/lib/sscanf.c deleted file mode 100644 index 341e74bba..000000000 --- a/mdk-stage1/dietlibc/lib/sscanf.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <stdarg.h> - -int vsscanf(const char *str, const char *format, va_list arg_ptr); - -int sscanf(const char *str, const char *format, ...) -{ - int n; - va_list arg_ptr; - va_start(arg_ptr, format); - n=vsscanf(str,format,arg_ptr); - va_end (arg_ptr); - return n; -} diff --git a/mdk-stage1/dietlibc/lib/strcat.c b/mdk-stage1/dietlibc/lib/strcat.c deleted file mode 100644 index 8a755afea..000000000 --- a/mdk-stage1/dietlibc/lib/strcat.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "dietfeatures.h" -#include <string.h> - -char* strcat(register char* s,register const char* t) -{ - char *dest=s; - s+=strlen(s); - for (;;) { - if (!(*s = *t)) break; ++s; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - if (!(*s = *t)) break; ++s; ++t; - if (!(*s = *t)) break; ++s; ++t; - if (!(*s = *t)) break; ++s; ++t; -#endif - } - return dest; -} - diff --git a/mdk-stage1/dietlibc/lib/strchr.c b/mdk-stage1/dietlibc/lib/strchr.c deleted file mode 100644 index b908853f8..000000000 --- a/mdk-stage1/dietlibc/lib/strchr.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "dietfeatures.h" - -char *strchr(register const char *t, int c) { - register char ch; - - ch = c; - for (;;) { - if (*t == ch) break; if (!*t) return 0; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - if (*t == ch) break; if (!*t) return 0; ++t; - if (*t == ch) break; if (!*t) return 0; ++t; - if (*t == ch) break; if (!*t) return 0; ++t; -#endif - } - return (char*)t; -} diff --git a/mdk-stage1/dietlibc/lib/strcmp.c b/mdk-stage1/dietlibc/lib/strcmp.c deleted file mode 100644 index 0db324e66..000000000 --- a/mdk-stage1/dietlibc/lib/strcmp.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "dietfeatures.h" - -int strcmp(register const char *s,register const char *t) { - register char x; - - for (;;) { - x = *s; if (x != *t) break; if (!x) break; ++s; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - x = *s; if (x != *t) break; if (!x) break; ++s; ++t; - x = *s; if (x != *t) break; if (!x) break; ++s; ++t; - x = *s; if (x != *t) break; if (!x) break; ++s; ++t; -#endif - } - return ((int)(unsigned int)(unsigned char) x) - - ((int)(unsigned int)(unsigned char) *t); -} diff --git a/mdk-stage1/dietlibc/lib/strcpy.c b/mdk-stage1/dietlibc/lib/strcpy.c deleted file mode 100644 index 49693c30d..000000000 --- a/mdk-stage1/dietlibc/lib/strcpy.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dietfeatures.h" - -char* strcpy(register char* s,register const char* t) -{ - char *dest=s; - for (;;) { - if (!(*s = *t)) return dest; ++s; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - if (!(*s = *t)) return dest; ++s; ++t; - if (!(*s = *t)) return dest; ++s; ++t; - if (!(*s = *t)) return dest; ++s; ++t; -#endif - } -} - diff --git a/mdk-stage1/dietlibc/lib/strcspn.c b/mdk-stage1/dietlibc/lib/strcspn.c deleted file mode 100644 index 37053c72c..000000000 --- a/mdk-stage1/dietlibc/lib/strcspn.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <sys/types.h> -#include <string.h> - -size_t strcspn(const char *s, const char *reject) -{ - size_t l=0; - int a=1,i,al=strlen(reject); - - while((a)&&(*s)) - { - for(i=0;(a)&&(i<al);i++) - if (*s==reject[i]) a=0; - if (a) l++; - s++; - } - return l; -} diff --git a/mdk-stage1/dietlibc/lib/strdup.c b/mdk-stage1/dietlibc/lib/strdup.c deleted file mode 100644 index 6a2ea5f95..000000000 --- a/mdk-stage1/dietlibc/lib/strdup.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <string.h> -#include <stdlib.h> - -char *strdup(const char *s) { - char *tmp=(char *)malloc(strlen(s)+1); - if (!tmp) return 0; - strcpy(tmp,s); - return tmp; -} diff --git a/mdk-stage1/dietlibc/lib/strerror.c b/mdk-stage1/dietlibc/lib/strerror.c deleted file mode 100644 index f15b86aae..000000000 --- a/mdk-stage1/dietlibc/lib/strerror.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <string.h> - -extern char *sys_errlist[]; -extern int sys_nerr; - -char *strerror(int errnum) { - if (errnum>=0 && errnum<sys_nerr) - return sys_errlist[errnum]; - return "[unknown error]"; -} diff --git a/mdk-stage1/dietlibc/lib/strlcat.c b/mdk-stage1/dietlibc/lib/strlcat.c deleted file mode 100644 index fd35ec8af..000000000 --- a/mdk-stage1/dietlibc/lib/strlcat.c +++ /dev/null @@ -1,72 +0,0 @@ -/* $OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $ */ - -/* - * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> - * 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 ``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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include <sys/types.h> -#include <string.h> - -/* - * Appends src to string dst of size siz (unlike strncat, siz is the - * full size of dst, not space left). At most siz-1 characters - * will be copied. Always NUL terminates (unless siz == 0). - * Returns strlen(initial dst) + strlen(src); if retval >= siz, - * truncation occurred. - */ -size_t strlcat(dst, src, siz) - char *dst; - const char *src; - size_t siz; -{ - register char *d = dst; - register const char *s = src; - register size_t n = siz; - size_t dlen; - - /* Find the end of dst and adjust bytes left but don't go past end */ - while (*d != '\0' && n-- != 0) - d++; - dlen = d - dst; - n = siz - dlen; - - if (n == 0) - return(dlen + strlen(s)); - while (*s != '\0') { - if (n != 1) { - *d++ = *s; - n--; - } - s++; - } - *d = '\0'; - - return(dlen + (s - src)); /* count does not include NUL */ -} diff --git a/mdk-stage1/dietlibc/lib/strlcpy.c b/mdk-stage1/dietlibc/lib/strlcpy.c deleted file mode 100644 index b935b9527..000000000 --- a/mdk-stage1/dietlibc/lib/strlcpy.c +++ /dev/null @@ -1,68 +0,0 @@ -/* $OpenBSD: strlcpy.c,v 1.3 1999/04/24 01:17:37 millert Exp $ */ - -/* - * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> - * 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 ``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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strlcpy.c,v 1.3 1999/04/24 01:17:37 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include <sys/types.h> -#include <string.h> - -/* - * Copy src to string dst of size siz. At most siz-1 characters - * will be copied. Always NUL terminates (unless siz == 0). - * Returns strlen(src); if retval >= siz, truncation occurred. - */ -size_t strlcpy(dst, src, siz) - char *dst; - const char *src; - size_t siz; -{ - register char *d = dst; - register const char *s = src; - register size_t n = siz; - - /* Copy as many bytes as will fit */ - if (n != 0 && --n != 0) { - do { - if ((*d++ = *s++) == 0) - break; - } while (--n != 0); - } - - /* Not enough room in dst, add NUL and traverse rest of src */ - if (n == 0) { - if (siz != 0) - *d = '\0'; /* NUL-terminate dst */ - while (*s++) - ; - } - - return(s - src - 1); /* count does not include NUL */ -} diff --git a/mdk-stage1/dietlibc/lib/strlen.c b/mdk-stage1/dietlibc/lib/strlen.c deleted file mode 100644 index 56c085dac..000000000 --- a/mdk-stage1/dietlibc/lib/strlen.c +++ /dev/null @@ -1,47 +0,0 @@ -#include <endian.h> -#include "dietfeatures.h" -#include <string.h> - -#ifdef WANT_SMALL_STRING_ROUTINES -size_t strlen(const char *s) { - register int i; - if (!s) return 0; - for (i=0; *s; ++s) ++i; - return i; -} -#else -static const unsigned long magic = 0x01010101; - -size_t strlen(const char *s) -{ - const char *t = s; - unsigned long word; - - if (!s) return 0; - - /* Byte compare up until word boundary */ - for (; ((unsigned long) t & 3); t++) - if (!*t) return t - s; - - /* Word compare */ - do { - word = *((unsigned long *) t); t += 4; - word = (word - magic) &~ word; - word &= (magic << 7); - } while (word == 0); - -#if BYTE_ORDER == LITTLE_ENDIAN - /* word & 0x80808080 == word */ - word = (word - 1) & (magic << 10); - word += (word << 8) + (word << 16); - t += word >> 26; -#else - if ((word & 0x80800000) == 0) { - word <<= 16; - t += 2; - } - if ((word & 0x80000000) == 0) t += 1; -#endif - return ((const char *) t) - 4 - s; -} -#endif diff --git a/mdk-stage1/dietlibc/lib/strncat.c b/mdk-stage1/dietlibc/lib/strncat.c deleted file mode 100644 index 1d3b94ca5..000000000 --- a/mdk-stage1/dietlibc/lib/strncat.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "dietfeatures.h" -#include <string.h> - -char *strncat(char *s, const char *t, size_t n) { - char *dest=s; - register char *max=s+n-1; - s+=strlen(s); - for (;;) { - if (!(*s = *t)) break; if (++s==max) break; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - if (!(*s = *t)) break; if (++s==max) break; ++t; - if (!(*s = *t)) break; if (++s==max) break; ++t; - if (!(*s = *t)) break; if (++s==max) break; ++t; -#endif - } - *s=0; - return dest; -} - diff --git a/mdk-stage1/dietlibc/lib/strncmp.c b/mdk-stage1/dietlibc/lib/strncmp.c deleted file mode 100644 index 7c08c0fa7..000000000 --- a/mdk-stage1/dietlibc/lib/strncmp.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <sys/types.h> -#include <string.h> - -int strncmp(const char *s1, const char *s2, size_t n) { - return memccmp(s1,s2,0,n); -} diff --git a/mdk-stage1/dietlibc/lib/strncpy.c b/mdk-stage1/dietlibc/lib/strncpy.c deleted file mode 100644 index 531387b7f..000000000 --- a/mdk-stage1/dietlibc/lib/strncpy.c +++ /dev/null @@ -1,10 +0,0 @@ -#define _POSIX_SOURCE -#define _XOPEN_SOURCE -#include <sys/types.h> -#include <string.h> - -char *strncpy(char *dest, const char *src, size_t n) -{ - memccpy(dest,src,0,n); - return dest; -} diff --git a/mdk-stage1/dietlibc/lib/strpbrk.c b/mdk-stage1/dietlibc/lib/strpbrk.c deleted file mode 100644 index e18fd2a2d..000000000 --- a/mdk-stage1/dietlibc/lib/strpbrk.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <sys/types.h> -#include <string.h> - -char *strpbrk(const char *s, const char *accept) { - register int i,l=strlen(accept); - for (; *s; s++) - for (i=0; i<l; i++) - if (*s == accept[i]) - return (char*)s; - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/strrchr.c b/mdk-stage1/dietlibc/lib/strrchr.c deleted file mode 100644 index 3c91e9bc8..000000000 --- a/mdk-stage1/dietlibc/lib/strrchr.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <string.h> -#include "dietfeatures.h" - -char *strrchr(const char *t, int c) { - register char ch; - register const char *l=0; - - ch = c; - for (;;) { - if (*t == ch) l=t; if (!*t) return (char*)l; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - if (*t == ch) l=t; if (!*t) return (char*)l; ++t; - if (*t == ch) l=t; if (!*t) return (char*)l; ++t; - if (*t == ch) l=t; if (!*t) return (char*)l; ++t; -#endif - } - return (char*)l; -} diff --git a/mdk-stage1/dietlibc/lib/strspn.c b/mdk-stage1/dietlibc/lib/strspn.c deleted file mode 100644 index 2b3a4c116..000000000 --- a/mdk-stage1/dietlibc/lib/strspn.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <sys/types.h> -#include <string.h> - -size_t strspn(const char *s, const char *accept) -{ - size_t l=0; - int a=1,i,al=strlen(accept); - - while((a)&&(*s)) - { - for(a=i=0;(!a)&&(i<al);i++) - if (*s==accept[i]) a=1; - if (a) l++; - s++; - } - return l; -} diff --git a/mdk-stage1/dietlibc/lib/strstr.c b/mdk-stage1/dietlibc/lib/strstr.c deleted file mode 100644 index 641d9d7ac..000000000 --- a/mdk-stage1/dietlibc/lib/strstr.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <sys/types.h> -#include <string.h> - -char *strstr(const char *haystack, const char *needle) { - int nl=strlen(needle); - int hl=strlen(haystack); - int i; - if (nl>hl) return 0; - for (i=hl-nl+1; i; --i) { - if (!memcmp(haystack,needle,nl)) - return (char*)haystack; - ++haystack; - } - return 0; -} diff --git a/mdk-stage1/dietlibc/lib/strtod.c b/mdk-stage1/dietlibc/lib/strtod.c deleted file mode 100644 index 767be679f..000000000 --- a/mdk-stage1/dietlibc/lib/strtod.c +++ /dev/null @@ -1,52 +0,0 @@ -#include <string.h> - -extern char isspace(char c); - -#ifdef __GNUC__ -static inline char isdigit(char c) { return (c>='0' && c<='9'); } -#endif - -double strtod(const char *nptr, char **endptr) { - double d=0; - register const char *c=nptr; - char neg=0; - while (*c && isspace(*c)) ++c; - switch (*c) { - case '-': neg=1; - case '+': c++; break; - default: break; - } - while (isdigit(*c)) { - d=d*10+(*c-'0'); - ++c; - } - if (*c=='.') { - double factor=.1; - while (isdigit(*++c)) { - d=d+(factor*(*c-'0')); - factor/=10; - } - } - if ((*c|32)=='e') { - int exp=0; - char neg=0; - if (c[1]<'0') { - switch (*c) { - case '-': neg=1; - case '+': c++; break; - default: - d=0; - c=nptr; - goto done; - } - } - while (isdigit(*++c)) - exp=exp*10+(*c-'0'); - while (exp) { /* XXX: this introduces rounding errors */ - d*=10; --exp; - } - } -done: - if (endptr) *endptr=(char*)c; - return d; -} diff --git a/mdk-stage1/dietlibc/lib/strtok.c b/mdk-stage1/dietlibc/lib/strtok.c deleted file mode 100644 index 525665e59..000000000 --- a/mdk-stage1/dietlibc/lib/strtok.c +++ /dev/null @@ -1,6 +0,0 @@ -char *strtok_r(char *s, const char *delim, char **ptrptr); -static char *strtok_pos; -char *strtok(char *s, const char *delim) -{ - return strtok_r(s,delim,&strtok_pos); -} diff --git a/mdk-stage1/dietlibc/lib/strtok_r.c b/mdk-stage1/dietlibc/lib/strtok_r.c deleted file mode 100644 index 93f9401de..000000000 --- a/mdk-stage1/dietlibc/lib/strtok_r.c +++ /dev/null @@ -1,21 +0,0 @@ -#include <string.h> - -char *strtok_r(char *s, const char *delim, char **ptrptr) -{ - int i; - char *tmp=0; - - if (s) (*ptrptr)=s; - - if (**ptrptr) - { - while(!(i=strcspn(*ptrptr,delim))) (*ptrptr)++; - if (**ptrptr) - { - tmp=(*ptrptr); - (*ptrptr)+=i; - if (**ptrptr) *(*ptrptr)++=0; - } - } - return tmp; -} diff --git a/mdk-stage1/dietlibc/lib/strtol.c b/mdk-stage1/dietlibc/lib/strtol.c deleted file mode 100644 index ead89f408..000000000 --- a/mdk-stage1/dietlibc/lib/strtol.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <ctype.h> - -extern unsigned long int strtoul(const char *nptr, char **endptr, int base); - -long int strtol(const char *nptr, char **endptr, int base) -{ - int neg=0; - unsigned long int v; - - while(isspace(*nptr)) nptr++; - - if (*nptr == '-' && isdigit(nptr[1])) { neg=-1; nptr++; } - v=strtoul(nptr,endptr,base); - return (neg?-v:v); -} diff --git a/mdk-stage1/dietlibc/lib/strtoll.c b/mdk-stage1/dietlibc/lib/strtoll.c deleted file mode 100644 index 7b8e28a1d..000000000 --- a/mdk-stage1/dietlibc/lib/strtoll.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <ctype.h> - -extern unsigned long int strtoull(const char *nptr, char **endptr, int base); - -long int strtoll(const char *nptr, char **endptr, int base) -{ - int neg=0; - unsigned long long int v; - - while(isspace(*nptr)) nptr++; - - if (*nptr == '-' && isdigit(nptr[1])) { neg=-1; nptr++; } - v=strtoull(nptr,endptr,base); - return (neg?-v:v); -} diff --git a/mdk-stage1/dietlibc/lib/strtoul.c b/mdk-stage1/dietlibc/lib/strtoul.c deleted file mode 100644 index bee849685..000000000 --- a/mdk-stage1/dietlibc/lib/strtoul.c +++ /dev/null @@ -1,39 +0,0 @@ -#include <ctype.h> - -static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; - -unsigned long int strtoul(const char *nptr, char **endptr, int base) -{ - long int v=0; - int a=1,i; - - while(isspace(*nptr)) nptr++; - - if (*nptr == '+') { nptr++; } - if (!base) - { - if (*nptr=='0') - { - base=8; - if ((*(nptr+1)=='x')||(*(nptr+1)=='X')) base=16; - } - else - base=10; - } - while((a)&&(*nptr)) - { - a=0; - for (i=0;(!a)&&(i<base);i++) - { - if ((*nptr == num[i]) || (*nptr == (num[i]-' '))) - { - a=1; - v=(v*base)+(&num[i]-num); - } - } - if ((!a)&&(base==16)&&((*nptr=='x')||(*nptr=='X'))) a=1; - if (a) nptr++; - } - if (endptr) *endptr=(char *)nptr; - return v; -} diff --git a/mdk-stage1/dietlibc/lib/strtoull.c b/mdk-stage1/dietlibc/lib/strtoull.c deleted file mode 100644 index 64f095f60..000000000 --- a/mdk-stage1/dietlibc/lib/strtoull.c +++ /dev/null @@ -1,39 +0,0 @@ -#include <ctype.h> - -static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; - -unsigned long long int strtoull(const char *nptr, char **endptr, int base) -{ - long long int v=0; - int a=1,i; - - while(isspace(*nptr)) nptr++; - - if (*nptr == '+') { nptr++; } - if (!base) - { - if (*nptr=='0') - { - base=8; - if ((*(nptr+1)=='x')||(*(nptr+1)=='X')) base=16; - } - else - base=10; - } - while((a)&&(*nptr)) - { - a=0; - for (i=0;(!a)&&(i<base);i++) - { - if ((*nptr == num[i]) || (*nptr == (num[i]-' '))) - { - a=1; - v=(v*base)+(&num[i]-num); - } - } - if ((!a)&&(base==16)&&((*nptr=='x')||(*nptr=='X'))) a=1; - if (a) nptr++; - } - if (endptr) *endptr=(char *)nptr; - return v; -} diff --git a/mdk-stage1/dietlibc/lib/sys_siglist.c b/mdk-stage1/dietlibc/lib/sys_siglist.c deleted file mode 100644 index 80d7b3fb0..000000000 --- a/mdk-stage1/dietlibc/lib/sys_siglist.c +++ /dev/null @@ -1,37 +0,0 @@ -const char *const sys_siglist[] = - { - "Signal 0", - "Hangup", - "Interrupt", - "Quit", - "Illegal instruction", - "Trace/breakpoint trap", - "IOT trap", - "EMT trap", - "Floating point exception", - "Killed", - "Bus error", - "Segmentation fault", - "Bad system call", - "Broken pipe", - "Alarm clock", - "Terminated", - "Urgent I/O condition", - "Stopped (signal)", - "Stopped", - "Continued", - "Child exited", - "Stopped (tty input)", - "Stopped (tty output)", - "I/O possible", - "CPU time limit exceeded", - "File size limit exceeded", - "Virtual timer expired", - "Profiling timer expired", - "Window changed", - "Resource lost", - "User defined signal 1", - "User defined signal 2", - 0 - }; - diff --git a/mdk-stage1/dietlibc/lib/tcgetattr.c b/mdk-stage1/dietlibc/lib/tcgetattr.c deleted file mode 100644 index f35d39442..000000000 --- a/mdk-stage1/dietlibc/lib/tcgetattr.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <termios.h> -#include <sys/ioctl.h> - -int tcgetattr(int fildes, struct termios *termios_p) -{ - return ioctl(fildes, TCGETS, termios_p); -} diff --git a/mdk-stage1/dietlibc/lib/tcsetattr.c b/mdk-stage1/dietlibc/lib/tcsetattr.c deleted file mode 100644 index 642588d47..000000000 --- a/mdk-stage1/dietlibc/lib/tcsetattr.c +++ /dev/null @@ -1,23 +0,0 @@ -#define tcsetattr libc_tcsetattr -#include <termios.h> -#include <sys/ioctl.h> -#undef tcsetattr - -#include <asm/errno.h> - -extern int errno; - -int tcsetattr(int fildes, int optional_actions, struct termios *termios_p) -{ - switch (optional_actions) { - case TCSANOW: - return ioctl(fildes, TCSETS, termios_p); - case TCSADRAIN: - return ioctl(fildes, TCSETSW, termios_p); - case TCSAFLUSH: - return ioctl(fildes, TCSETSF, termios_p); - default: - errno = EINVAL; - return -1; - } -} diff --git a/mdk-stage1/dietlibc/lib/telldir.c b/mdk-stage1/dietlibc/lib/telldir.c deleted file mode 100644 index eca175381..000000000 --- a/mdk-stage1/dietlibc/lib/telldir.c +++ /dev/null @@ -1,38 +0,0 @@ -#include <unistd.h> -#include <errno.h> - -#include "dirstream.h" - -#undef telldir -off_t -telldir(DIR * dir) -{ - off_t offset; - - if (!dir) { - errno = EBADF; - return -1; - } - - switch (dir->dd_getdents) - { - case no_getdents: - /* We are running the old kernel. This is the starting offset - of the next readdir(). */ - offset = lseek(dir->dd_fd, 0, SEEK_CUR); - break; - - case unknown: - /* readdir () is not called yet. but seekdir () may be called. */ - case have_getdents: - /* The next entry. */ - offset = dir->dd_nextoff; - break; - - default: - errno = EBADF; - offset = -1; - } - - return offset; -} diff --git a/mdk-stage1/dietlibc/lib/ttyname.c b/mdk-stage1/dietlibc/lib/ttyname.c deleted file mode 100644 index 81a0cbc66..000000000 --- a/mdk-stage1/dietlibc/lib/ttyname.c +++ /dev/null @@ -1,60 +0,0 @@ -#include "dietfeatures.h" -#include <unistd.h> -#include <sys/stat.h> -#include <string.h> - -#ifdef __linux__ - -extern int __ltostr(char *s, int size, unsigned long i, int base, char UpCase); - -char *ttyname(int fd) { -#ifdef SLASH_PROC_OK - char ibuf[20]; - static char obuf[20]; - strcpy(ibuf,"/proc/self/fd/"); - ibuf[__ltostr(ibuf+14,6,fd,10,0)+14]=0; - if (readlink(ibuf,obuf,sizeof(obuf)-1)<0) return 0; - return obuf; -#else - static char buf[20]="/dev/tty"; - struct stat s; - char *c=buf+8; - int n; - if (fstat(fd,&s)) return 0; - if (S_ISCHR(s.st_mode)) { - n=minor(s.st_rdev); - switch (major(s.st_rdev)) { - case 4: - buf[5]='t'; buf[7]='y'; - if (n>63) { - n-=64; - *c='S'; - ++c; - } -num: - c[__ltostr(c,6,n,10,0)]=0; - break; - case 2: - buf[5]='p'; buf[7]='y'; - buf[8]='p'-(n>>4); - buf[9]=n%4+'0'; - if (buf[9]>'9') *c+='a'-'0'; - buf[10]=0; - case 136: - case 137: - case 138: - case 139: - buf[5]='p'; buf[7]='s'; - n+=(major(s.st_rdev)-136)<<8; - *c='/'; ++c; - goto num; - default: - return 0; - } - return buf; - } - return 0; -#endif -} - -#endif diff --git a/mdk-stage1/dietlibc/lib/vfork.c b/mdk-stage1/dietlibc/lib/vfork.c deleted file mode 100644 index 795cddb05..000000000 --- a/mdk-stage1/dietlibc/lib/vfork.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <linux/types.h> -#include <unistd.h> - -pid_t vfork(void) { - return fork(); -} diff --git a/mdk-stage1/dietlibc/lib/vfprintf.c b/mdk-stage1/dietlibc/lib/vfprintf.c deleted file mode 100644 index 03dfe87a9..000000000 --- a/mdk-stage1/dietlibc/lib/vfprintf.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> - -int vfprintf(FILE *fstream, const char *format, va_list ap) -{ - char tmp[1000000]; - size_t n = vsnprintf(tmp, sizeof(tmp), format, ap); - fwrite(tmp, n, 1, fstream); - return n; -} diff --git a/mdk-stage1/dietlibc/lib/vprintf.c b/mdk-stage1/dietlibc/lib/vprintf.c deleted file mode 100644 index 46ecc47a4..000000000 --- a/mdk-stage1/dietlibc/lib/vprintf.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <stdarg.h> -#include <linux/types.h> -#include <unistd.h> -#include <stdlib.h> - -int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr); - -int vprintf(const char *format, va_list ap) -{ - char tmp[1000000]; - size_t n = vsnprintf(tmp, sizeof(tmp), format, ap); - write(1, tmp, n); - return n; -} diff --git a/mdk-stage1/dietlibc/lib/vsnprintf.c b/mdk-stage1/dietlibc/lib/vsnprintf.c deleted file mode 100644 index 5bbc51620..000000000 --- a/mdk-stage1/dietlibc/lib/vsnprintf.c +++ /dev/null @@ -1,239 +0,0 @@ -#include "dietfeatures.h" -#include <stdarg.h> -#include <sys/types.h> -#include <stdlib.h> -#include <string.h> - -extern int __ltostr(char *s, int size, unsigned long i, int base, char UpCase); -extern int __dtostr(double d,char *buf,int maxlen,int prec); - -#include <unistd.h> -void print_int(int fd, int i) -{ - char buf[10]; - char * chptr = buf + 9; - int j = 0; - - if (i < 0) - { - write(1, "-", 1); - i = -1 * i; - } - - while (i) - { - *chptr-- = '0' + (i % 10); - j++; - i = i / 10; - } - - write(fd, chptr + 1, j); -} - -int vsnprintf (char *str, size_t size, const char *format, va_list arg_ptr) -{ - size_t apos,i; - char ch,buf[1024]; - char *pb; - char flag_in_sign; - char flag_hash,flag_zero,flag_left,flag_space,flag_sign,flag_dot,flag_long; - long number,width,preci,buf_len,pad; - char padwith; - - size--; - - apos=0; - while (apos<size) - { - ch=*format++; - switch (ch) - { - case '%': - flag_hash=0; - flag_zero=0; - flag_left=0; - flag_space=0; - flag_sign=0; - flag_dot=0; - flag_in_sign=0; - flag_long=0; - - width=0; - padwith=' '; - -inn_vsnprintf: - if (apos>=size) continue; /* ARGL !!! */ - - ch=*format++; - switch (ch) - { -/* Format end ?!? */ - case 0: - return -1; - break; - -/* Format flag chars */ - case '#': - flag_hash=1; - goto inn_vsnprintf; - - case 'l': - flag_long=1; - goto inn_vsnprintf; - - case '0': - padwith='0'; - goto inn_vsnprintf; - - case '-': - flag_left=1; - goto inn_vsnprintf; - - case ' ': - flag_space=1; - goto inn_vsnprintf; - - case '+': - flag_sign=1; - goto inn_vsnprintf; - - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if(flag_dot) return -1; - width=strtol(--format,&pb,10); - format=pb; - goto inn_vsnprintf; - - case '.': - flag_dot=1; - preci=strtol(format,&pb,10); - format=pb; - goto inn_vsnprintf; - -/* Format conversion chars */ - case 'c': - ch=(char)va_arg(arg_ptr,int); - case '%': - if (str) str[apos]=ch; ++apos; - break; - - case 's': - pb=va_arg(arg_ptr,char *); -#ifdef WANT_NULL_PRINTF - if (!pb) pb="(null)"; -#endif - buf_len=strlen(pb); - -print_out: - if (str) { - if (width && (!flag_left)) - { - for (pad=width-buf_len; pad>0; --pad) str[apos++]=padwith; - } - for(i=0;(pb[i])&&(apos<size);i++) { str[apos++]=pb[i]; } /* strncpy */ - if (width && (flag_left)) - { - for (pad=width-buf_len; pad>0; --pad) str[apos++]=padwith; - } - } else { - if (width) - apos+=width; - else { - int a=strlen(pb); - if (a>size) apos+=size; else apos+=a; - } - } - - break; - - /* Numbers */ - case 'b': - i=2; - goto num_vsnprintf; - case 'p': - flag_hash=1; - width=sizeof(void *)<<1; - padwith='0'; - ch='x'; - case 'X': - case 'x': - i=16; - if (flag_hash) - { - if (str) { - str[apos++]='0'; - str[apos++]=ch; - } else - apos+=2; - } - goto num_vsnprintf; - case 'd': - case 'i': - flag_in_sign=1; - case 'u': - i=10; - goto num_vsnprintf; - case 'o': - i=8; - if (flag_hash) { if (str) str[apos]='0'; ++apos; } - -num_vsnprintf: - if (apos>=size) continue; /* ARGL !!! */ - - if (flag_long) - number=va_arg(arg_ptr,long); - else - number=va_arg(arg_ptr,int); - - if (flag_in_sign && (number<0)) - { - number*=-1; - flag_in_sign=2; - } - - buf_len=__ltostr(buf+1,sizeof(buf)-1,(unsigned long) number,i,0); - pb=buf+1; - - if (flag_in_sign==2) - { - *(--pb)='-'; - buf_len++; - } - else if ((flag_in_sign)&&(flag_sign || flag_space)) - { - *(--pb)=(flag_sign)?'+':' '; - buf_len++; - } - goto print_out; - -#ifdef WANT_FLOATING_POINT_IN_PRINTF - case 'g': - { - double d=va_arg(arg_ptr,double); - buf_len=__dtostr(d,buf,sizeof(buf),6); - pb=buf; - goto print_out; - } -#endif - default: - break; - } - break; - case 0: - if (str) str[apos]=0; - return apos; - default: - if (str) str[apos]=ch; apos++; - break; - } - } - if (str) str[apos]=0; - return apos; -} diff --git a/mdk-stage1/dietlibc/lib/vsprintf.c b/mdk-stage1/dietlibc/lib/vsprintf.c deleted file mode 100644 index af4eea852..000000000 --- a/mdk-stage1/dietlibc/lib/vsprintf.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdarg.h> -#include <linux/types.h> -#include <unistd.h> -#include <stdlib.h> - -int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr); - -int vsprintf(char *str, const char *format, va_list ap) -{ - return vsnprintf(str, 1000000, format, ap); -} diff --git a/mdk-stage1/dietlibc/lib/vsscanf.c b/mdk-stage1/dietlibc/lib/vsscanf.c deleted file mode 100644 index a646ad92d..000000000 --- a/mdk-stage1/dietlibc/lib/vsscanf.c +++ /dev/null @@ -1,243 +0,0 @@ -#include "dietfeatures.h" -#include <stdarg.h> -#include <sys/types.h> -#include <ctype.h> -#include <stdlib.h> - -const char *skip_ws(const char *str) -{ - while ((*str)&&(isspace(*str))) str++; - return str; -} - -extern double strtod(const char *s,char **f); - -int vsscanf(const char *str, const char *format, va_list arg_ptr) -{ - int n=0,div; - char ch; - - char flag_discard, flag_malloc, flag_half, flag_long, flag_longlong; - char flag_width; - - unsigned long width; - -#ifdef WANT_FLOATING_POINT_IN_SCANF - /* arg_ptr tmps */ - double d,*pd; - float *pf; -#endif - - long l=0,*pl; - short *ph; - int *pi; - char *s; - - while ((*str)&&(*format)) - { - const char *prevfmt=format; - format=skip_ws(format); - ch=*format++; - if (!ch) continue; - - switch (ch) - { - case '%': - div=0; - flag_discard=0; - flag_malloc=0; - flag_half=0; - flag_long=0; - flag_longlong=0; - - flag_width=0; - width=-1; - -inn_vsscanf: - ch=*format++; - - switch (ch) - { - case 0: - return 0; - - case '%': - if (*(str++)!=ch) return n; - break; - - /* flags */ - case '*': - flag_discard=1; - goto inn_vsscanf; - - case 'a': - flag_malloc=1; - goto inn_vsscanf; - - case 'h': - flag_half=1; - goto inn_vsscanf; - - case 'l': - if (flag_long) flag_longlong=1; - flag_long=1; - goto inn_vsscanf; - - /* longlong ? NOT YET ! */ - case 'q': - case 'L': - flag_longlong=1; - goto inn_vsscanf; - - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - width=strtol(format-1,&s,10); - format=s; - flag_width=1; - goto inn_vsscanf; - - /* conversion */ - - case 'n': - while (width && *str) - { - *(s++)=*(str++); - --width; - l++; - } - if (!flag_discard) - { - pl=(long *)va_arg(arg_ptr,long*); - *pl=l; - ++n; - } - break; - - case 'p': - case 'X': - case 'x': - div+=6; - case 'd': - div+=2; - case 'o': - div+=8; - case 'u': - case 'i': - if (*(str=skip_ws(str))) - { - l=strtol(str,&s,div); - if (str!=s) - { - if (!flag_discard) - { - if (flag_long) - { - pl=(long *)va_arg(arg_ptr,long*); - *pl=l; - } - else if (flag_half) - { - ph=(short *)va_arg(arg_ptr,short*); - *ph=l; - } - else - { - pi=(int *)va_arg(arg_ptr,int*); - *pi=l; - } - ++n; - } - str=s; - } - else - return n; - } - break; - -#ifdef WANT_FLOATING_POINT_IN_SCANF - case 'e': - case 'E': - case 'f': - case 'g': - if (*(str=skip_ws(str))) - { - d=strtod(str,&s); - if (str!=s) - { - if (!flag_discard) - { - if (flag_long) - { - pd=(double *)va_arg(arg_ptr,double*); - *pd=d; - } - else - { - pf=(float *)va_arg(arg_ptr,float*); - *pf=d; - } - ++n; - } - str=s; - } - else - return n; - } - break; -#endif - - case 'c': - if (!flag_discard) - { - s=(char *)va_arg(arg_ptr,char*); - ++n; - } - if (!flag_width) width=1; - while (width && *str) - { - if (!flag_discard) *(s++)=*(str); - ++str; - --width; - } - break; - - case 's': - if (!flag_discard) - { - s=(char *)va_arg(arg_ptr,char*); - ++n; - } - if (*(str=skip_ws(str))) - { - while (width && *str && (!isspace(*str))) - { - if (!flag_discard) *(s++)=*(str); - ++str; - --width; - } - *s = '\0'; - } - break; - } - break; - - default: - if (prevfmt<format) { - while (prevfmt<format) { - if (*str!=*prevfmt) return n; - ++str; ++prevfmt; - } - } else - if (*(str++)!=ch) return n; - break; - } - } - return n; -} diff --git a/mdk-stage1/dietlibc/lib/wait.c b/mdk-stage1/dietlibc/lib/wait.c deleted file mode 100644 index 8459af18c..000000000 --- a/mdk-stage1/dietlibc/lib/wait.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <sys/types.h> -#include <sys/wait.h> - -pid_t wait(int *status) { - return waitpid(-1,status,0); -} diff --git a/mdk-stage1/dietlibc/lib/wait3.c b/mdk-stage1/dietlibc/lib/wait3.c deleted file mode 100644 index 19e90740c..000000000 --- a/mdk-stage1/dietlibc/lib/wait3.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <sys/wait.h> - -int wait3(int* status,int opts,struct rusage* rusage) { - return wait4(-1,status,opts,rusage); -} diff --git a/mdk-stage1/dietlibc/ppc/Makefile.add b/mdk-stage1/dietlibc/ppc/Makefile.add deleted file mode 100644 index b71031e05..000000000 --- a/mdk-stage1/dietlibc/ppc/Makefile.add +++ /dev/null @@ -1,3 +0,0 @@ - -CFLAGS+=-mpowerpc-gpopt -mpowerpc-gfxopt -Os -override VPATH=ppc:syscalls.s:lib diff --git a/mdk-stage1/dietlibc/ppc/__longjmp.S b/mdk-stage1/dietlibc/ppc/__longjmp.S deleted file mode 100644 index deada115e..000000000 --- a/mdk-stage1/dietlibc/ppc/__longjmp.S +++ /dev/null @@ -1,61 +0,0 @@ -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> - - -#ifdef PIC -#define JUMPTARGET(name) name##@plt -#else -#define JUMPTARGET(name) name -#endif - -.global __longjmp -.type __longjmp,@function -.align 2 -__longjmp: - lwz 1,(JB_GPR1*4)(3) - lwz 2,(JB_GPR2*4)(3) - lwz 0,(JB_LR*4)(3) - lwz 14,((JB_GPRS+0)*4)(3) - lfd 14,((JB_FPRS+0*2)*4)(3) - lwz 15,((JB_GPRS+1)*4)(3) - lfd 15,((JB_FPRS+1*2)*4)(3) - lwz 16,((JB_GPRS+2)*4)(3) - lfd 16,((JB_FPRS+2*2)*4)(3) - lwz 17,((JB_GPRS+3)*4)(3) - lfd 17,((JB_FPRS+3*2)*4)(3) - lwz 18,((JB_GPRS+4)*4)(3) - lfd 18,((JB_FPRS+4*2)*4)(3) - lwz 19,((JB_GPRS+5)*4)(3) - lfd 19,((JB_FPRS+5*2)*4)(3) - lwz 20,((JB_GPRS+6)*4)(3) - lfd 20,((JB_FPRS+6*2)*4)(3) - mtlr 0 - lwz 21,((JB_GPRS+7)*4)(3) - lfd 21,((JB_FPRS+7*2)*4)(3) - lwz 22,((JB_GPRS+8)*4)(3) - lfd 22,((JB_FPRS+8*2)*4)(3) - lwz 0,(JB_CR*4)(3) - lwz 23,((JB_GPRS+9)*4)(3) - lfd 23,((JB_FPRS+9*2)*4)(3) - lwz 24,((JB_GPRS+10)*4)(3) - lfd 24,((JB_FPRS+10*2)*4)(3) - lwz 25,((JB_GPRS+11)*4)(3) - lfd 25,((JB_FPRS+11*2)*4)(3) - mtcrf 0xFF,0 - lwz 26,((JB_GPRS+12)*4)(3) - lfd 26,((JB_FPRS+12*2)*4)(3) - lwz 27,((JB_GPRS+13)*4)(3) - lfd 27,((JB_FPRS+13*2)*4)(3) - lwz 28,((JB_GPRS+14)*4)(3) - lfd 28,((JB_FPRS+14*2)*4)(3) - lwz 29,((JB_GPRS+15)*4)(3) - lfd 29,((JB_FPRS+15*2)*4)(3) - lwz 30,((JB_GPRS+16)*4)(3) - lfd 30,((JB_FPRS+16*2)*4)(3) - lwz 31,((JB_GPRS+17)*4)(3) - lfd 31,((JB_FPRS+17*2)*4)(3) - mr 3,4 - blr -.size __longjmp,.-__longjmp - diff --git a/mdk-stage1/dietlibc/ppc/mmap.c b/mdk-stage1/dietlibc/ppc/mmap.c deleted file mode 100644 index 25d2926b2..000000000 --- a/mdk-stage1/dietlibc/ppc/mmap.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <linux/types.h> -#include <linux/unistd.h> - -int mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset) { - unsigned long __sc_ret, __sc_err; - { - register unsigned long __sc_0 __asm__ ("r0"); - register unsigned long __sc_3 __asm__ ("r3"); - register unsigned long __sc_4 __asm__ ("r4"); - register unsigned long __sc_5 __asm__ ("r5"); - register unsigned long __sc_6 __asm__ ("r6"); - register unsigned long __sc_7 __asm__ ("r7"); - register unsigned long __sc_8 __asm__ ("r8"); - - __sc_3 = (unsigned long) (start); - __sc_4 = (unsigned long) (length); - __sc_5 = (unsigned long) (prot); - __sc_6 = (unsigned long) (flags); - __sc_7 = (unsigned long) (fd); - __sc_8 = (unsigned long) (offset); - __sc_0 = __NR_mmap; - __asm__ __volatile__ - ("sc \n\t" - "mfcr %1 " - : "=&r" (__sc_3), "=&r" (__sc_0) - : "0" (__sc_3), "1" (__sc_0), - "r" (__sc_4), - "r" (__sc_5), - "r" (__sc_6), - "r" (__sc_7), - "r" (__sc_8) - : __syscall_clobbers); - __sc_ret = __sc_3; - __sc_err = __sc_0; - } - __syscall_return (int); -} diff --git a/mdk-stage1/dietlibc/ppc/setjmp.S b/mdk-stage1/dietlibc/ppc/setjmp.S deleted file mode 100644 index 50fa2bdd4..000000000 --- a/mdk-stage1/dietlibc/ppc/setjmp.S +++ /dev/null @@ -1,56 +0,0 @@ -#include <setjmp.h> - -#ifdef PIC -#define JUMPTARGET(name) name##@plt -#else -#define JUMPTARGET(name) name -#endif - -.global __sigsetjmp -.type __sigsetjmp,@function -.align 2 -__sigsetjmp: - stw 1,(JB_GPR1*4)(3) - mflr 0 - stw 2,(JB_GPR2*4)(3) - stw 14,((JB_GPRS+0)*4)(3) - stfd 14,((JB_FPRS+0*2)*4)(3) - stw 0,(JB_LR*4)(3) - stw 15,((JB_GPRS+1)*4)(3) - stfd 15,((JB_FPRS+1*2)*4)(3) - mfcr 0 - stw 16,((JB_GPRS+2)*4)(3) - stfd 16,((JB_FPRS+2*2)*4)(3) - stw 0,(JB_CR*4)(3) - stw 17,((JB_GPRS+3)*4)(3) - stfd 17,((JB_FPRS+3*2)*4)(3) - stw 18,((JB_GPRS+4)*4)(3) - stfd 18,((JB_FPRS+4*2)*4)(3) - stw 19,((JB_GPRS+5)*4)(3) - stfd 19,((JB_FPRS+5*2)*4)(3) - stw 20,((JB_GPRS+6)*4)(3) - stfd 20,((JB_FPRS+6*2)*4)(3) - stw 21,((JB_GPRS+7)*4)(3) - stfd 21,((JB_FPRS+7*2)*4)(3) - stw 22,((JB_GPRS+8)*4)(3) - stfd 22,((JB_FPRS+8*2)*4)(3) - stw 23,((JB_GPRS+9)*4)(3) - stfd 23,((JB_FPRS+9*2)*4)(3) - stw 24,((JB_GPRS+10)*4)(3) - stfd 24,((JB_FPRS+10*2)*4)(3) - stw 25,((JB_GPRS+11)*4)(3) - stfd 25,((JB_FPRS+11*2)*4)(3) - stw 26,((JB_GPRS+12)*4)(3) - stfd 26,((JB_FPRS+12*2)*4)(3) - stw 27,((JB_GPRS+13)*4)(3) - stfd 27,((JB_FPRS+13*2)*4)(3) - stw 28,((JB_GPRS+14)*4)(3) - stfd 28,((JB_FPRS+14*2)*4)(3) - stw 29,((JB_GPRS+15)*4)(3) - stfd 29,((JB_FPRS+15*2)*4)(3) - stw 30,((JB_GPRS+16)*4)(3) - stfd 30,((JB_FPRS+16*2)*4)(3) - stw 31,((JB_GPRS+17)*4)(3) - stfd 31,((JB_FPRS+17*2)*4)(3) - b JUMPTARGET (__sigjmp_save) -.size __sigsetjmp,.-__sigsetjmp diff --git a/mdk-stage1/dietlibc/ppc/start.S b/mdk-stage1/dietlibc/ppc/start.S deleted file mode 100644 index c7afeecd2..000000000 --- a/mdk-stage1/dietlibc/ppc/start.S +++ /dev/null @@ -1,44 +0,0 @@ -#include "start.h" - -#ifdef __powerpc__ - -.text -.global _start -.type _start,@function -_start: - /* Save the stack pointer, in case we're statically linked under Linux. */ - mr 9,1 - /* Set up an initial stack frame, and clear the LR. */ - clrrwi 1,1,4 - li 0,0 - stwu 1,-16(1) - mtlr 0 - stw 0,0(1) - - /* r9 enthält den initialen Stackpointer. - argc = (r9) - argv = (r9+4) - envp = argv+(argc+1)*4 */ - - lwzu 3,0(9) /* argc */ - addi 4,9,4 /* argv */ - add 5,0,3 /* argc... */ - addi 5,5,1 /* argc+1...*/ - slwi 5,5,2 /* (argc+1)*4 */ - add 5,5,4 /* argv+(argc+1)*4 */ - - lis 6,environ@ha - stw 5,environ@l(6) - - bl main - b exit -.size _start,.-_start - - -/* Define a symbol for the first piece of initialized data. */ - .section ".data" -__data_start: - - -#endif - diff --git a/mdk-stage1/dietlibc/ppc/unified.S b/mdk-stage1/dietlibc/ppc/unified.S deleted file mode 100644 index d2b419f0b..000000000 --- a/mdk-stage1/dietlibc/ppc/unified.S +++ /dev/null @@ -1,21 +0,0 @@ -#include <dietfeatures.h> - -.text -.global __unified_syscall -__unified_syscall: - sc - mfcr 0 - andis. 9,0,4096 - mr 0,3 - beq .L1 -#ifdef WANT_THREAD_SAVE - bl __set_errno -#else - lis 9,errno@ha - stw 3,errno@l(9) -#endif - li 0,-1 -.L1: - mr 3,0 - blr - diff --git a/mdk-stage1/dietlibc/sparc/Makefile.add b/mdk-stage1/dietlibc/sparc/Makefile.add deleted file mode 100644 index a12a0446a..000000000 --- a/mdk-stage1/dietlibc/sparc/Makefile.add +++ /dev/null @@ -1,3 +0,0 @@ - -CFLAGS+=-mcpu=supersparc -Os -override VPATH=sparc:syscalls.s:lib diff --git a/mdk-stage1/dietlibc/sparc/__longjmp.S b/mdk-stage1/dietlibc/sparc/__longjmp.S deleted file mode 100644 index 81dd24af2..000000000 --- a/mdk-stage1/dietlibc/sparc/__longjmp.S +++ /dev/null @@ -1,66 +0,0 @@ -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> - - -#define ENV(base,reg) [%base + (reg * 4)] -#define ST_FLUSH_WINDOWS 3 -#define RW_FP [%fp + 0x48] - -.text -.global __longjmp -__longjmp: - /* Store our arguments in global registers so we can still - use them while unwinding frames and their register windows. */ - - ld ENV(o0,JB_FP), %g3 /* Cache target FP in register %g3. */ - mov %o0, %g1 /* ENV in %g1 */ - orcc %o1, %g0, %g2 /* VAL in %g2 */ - be,a 0f /* Branch if zero; else skip delay slot. */ - mov 1, %g2 /* Delay slot only hit if zero: VAL = 1. */ -0: - xor %fp, %g3, %o0 - add %fp, 512, %o1 - andncc %o0, 4095, %o0 - bne .Lthread - cmp %o1, %g3 - bl .Lthread - - /* Now we will loop, unwinding the register windows up the stack - until the restored %fp value matches the target value in %g3. */ - -.Lloop: - cmp %fp, %g3 /* Have we reached the target frame? */ - bl,a .Lloop /* Loop while current fp is below target. */ - restore /* Unwind register window in delay slot. */ - be,a .Lfound /* Better have hit it exactly. */ - ld ENV(g1,JB_SP), %o0 /* Delay slot: extract target SP. */ - -.Lthread: - /* - * Do a "flush register windows trap". The trap handler in the - * kernel writes all the register windows to their stack slots, and - * marks them all as invalid (needing to be sucked up from the - * stack when used). This ensures that all information needed to - * unwind to these callers is in memory, not in the register - * windows. - */ - ta ST_FLUSH_WINDOWS - ld ENV(g1,JB_PC), %o7 /* Set return PC. */ - ld ENV(g1,JB_SP), %fp /* Set saved SP on restore below. */ - sub %fp, 64, %sp /* Allocate a register frame. */ - st %g3, RW_FP /* Set saved FP on restore below. */ - retl - restore %g2, 0, %o0 /* Restore values from above register frame. */ - -.Lfound: - /* We have unwound register windows so %fp matches the target. */ - mov %o0, %sp /* OK, install new SP. */ - -.Lsp_ok: - ld ENV(g1,JB_PC), %o0 /* Extract target return PC. */ - jmp %o0 + 8 /* Return there. */ - mov %g2, %o0 /* Delay slot: set return value. */ - -.size __longjmp, . - __longjmp - diff --git a/mdk-stage1/dietlibc/sparc/fork.S b/mdk-stage1/dietlibc/sparc/fork.S deleted file mode 100644 index 150839971..000000000 --- a/mdk-stage1/dietlibc/sparc/fork.S +++ /dev/null @@ -1,19 +0,0 @@ -#include "syscalls.h" - -.text -.global fork -fork: - mov 2, %g1 - ta 0x10 - bcc,a 1f - nop - - sethi %hi(errno), %o3 - or %o3, %lo(errno), %o3 - st %i0, [%o3] - - retl - mov -1, %o0 -1: dec %o1 - retl - and %o0, %o1, %o0 diff --git a/mdk-stage1/dietlibc/sparc/mmap.c b/mdk-stage1/dietlibc/sparc/mmap.c deleted file mode 100644 index 25ebdc24e..000000000 --- a/mdk-stage1/dietlibc/sparc/mmap.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <linux/types.h> -#include <linux/unistd.h> - -#define __SYSCALL_STRING \ - "ta 0x10;" \ - "bcs 2f;" \ - " nop;" \ - "1:" \ - ".subsection 2;" \ - "2:" \ - "save %%sp, -192, %%sp;" \ - "call __errno_location;" \ - " nop;" \ - "st %%i0,[%%o0];" \ - "ba 1b;" \ - " restore %%g0, -1, %%o0;" \ - ".previous;" - -#define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g7", \ - "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ - "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ - "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ - "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \ - "cc", "memory" - -#define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \ -({ \ - register long __o0 __asm__ ("o0") = (long)(arg1); \ - register long __o1 __asm__ ("o1") = (long)(arg2); \ - register long __o2 __asm__ ("o2") = (long)(arg3); \ - register long __o3 __asm__ ("o3") = (long)(arg4); \ - register long __o4 __asm__ ("o4") = (long)(arg5); \ - register long __o5 __asm__ ("o5") = (long)(arg6); \ - register long __g1 __asm__ ("g1") = __NR_##name; \ - __asm__ (__SYSCALL_STRING : "=r" (__g1), "=r" (__o0) : \ - "0" (__g1), "1" (__o0), "r" (__o1), "r" (__o2), \ - "r" (__o3), "r" (__o4), "r" (__o5) : \ - __SYSCALL_CLOBBERS); \ - __o0; \ -}) -int mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset) { - return inline_syscall6(mmap,start,length,prot,flags,fd,offset); -} diff --git a/mdk-stage1/dietlibc/sparc/pipe.S b/mdk-stage1/dietlibc/sparc/pipe.S deleted file mode 100644 index b8ad1d251..000000000 --- a/mdk-stage1/dietlibc/sparc/pipe.S +++ /dev/null @@ -1,20 +0,0 @@ -#include "syscalls.h" - -.text -.global pipe -pipe: - mov __NR_pipe, %g1 - ta 0x10 - bcc,a .Lnoerror - nop - save %sp, -96, %sp - call __errno_location - nop - st %i0, [ %o0 ] - ret - restore %g0, -1, %o0 -.Lnoerror: - st %o0, [ %o2 ] - st %o1, [ %o2 + 4 ] - retl - mov %g0, %o0 diff --git a/mdk-stage1/dietlibc/sparc/setjmp.S b/mdk-stage1/dietlibc/sparc/setjmp.S deleted file mode 100644 index be77af3c4..000000000 --- a/mdk-stage1/dietlibc/sparc/setjmp.S +++ /dev/null @@ -1,35 +0,0 @@ -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> - -#define ST_FLUSH_WINDOWS 0x03 - -.section .rodata -.text -.globl __setjmp -__setjmp: - b 1f - set 0, %o1 -.size __setjmp,.-__setjmp - -.globl setjmp -setjmp: - set 1, %o1 -.size setjmp,.-setjmp - -.globl __sigsetjmp -__sigsetjmp: -1: - /* Save our PC, SP and FP. Save the signal mask if requested with - a tail-call for simplicity; it always returns zero. */ - ta ST_FLUSH_WINDOWS - - st %o7, [%o0 + (JB_PC * 4)] - st %sp, [%o0 + (JB_SP * 4)] - st %fp, [%o0 + (JB_FP * 4)] - - mov %o7, %g1 - call __sigjmp_save - mov %g1, %o7 -.size __sigsetjmp,.-__sigsetjmp - diff --git a/mdk-stage1/dietlibc/sparc/start.S b/mdk-stage1/dietlibc/sparc/start.S deleted file mode 100644 index e948aaddc..000000000 --- a/mdk-stage1/dietlibc/sparc/start.S +++ /dev/null @@ -1,46 +0,0 @@ -#include "start.h" - -#ifdef __sparc__ - .section ".text" - .align 4 - .global _start - .type _start,@function -_start: - - /* Terminate the stack frame, and reserve space for functions to - drop their arguments. */ - mov %g0, %fp - sub %sp, 6*4, %sp - - /* Extract the arguments and environment as encoded on the stack. The - argument info starts after one register window (16 words) past the SP. */ - ld [%sp+22*4], %o0 - add %sp, 23*4, %o1 - add %o1, %o0, %o2 - add %o2, %o0, %o2 - add %o2, %o0, %o2 - add %o2, %o0, %o2 - add %o2, 4, %o2 - - sethi %hi(environ), %o3 - or %o3, %lo(environ), %o3 - st %o2, [%o3] - - /* When starting a binary via the dynamic linker, %g1 contains the - address of the shared library termination function, which will be - registered with atexit(). If we are statically linked, this will - be NULL. */ - - /* Let libc do the rest of the initialization, and call main. */ - call main - mov %g1, %o5 - - b exit - mov %o0, %i0 - - /* Die very horribly if exit returns. */ - unimp - - .size _start, .-_start -#endif - diff --git a/mdk-stage1/dietlibc/sparc/udiv.S b/mdk-stage1/dietlibc/sparc/udiv.S deleted file mode 100644 index 87479e7bd..000000000 --- a/mdk-stage1/dietlibc/sparc/udiv.S +++ /dev/null @@ -1,363 +0,0 @@ -#ifdef __sparc__ - /* This file is generated from divrem.m4; DO NOT EDIT! */ -/* - * Division and remainder, from Appendix E of the Sparc Version 8 - * Architecture Manual, with fixes from Gordon Irlam. - */ - -/* - * Input: dividend and divisor in %o0 and %o1 respectively. - * - * m4 parameters: - * .udiv name of function to generate - * div div=div => %o0 / %o1; div=rem => %o0 % %o1 - * false false=true => signed; false=false => unsigned - * - * Algorithm parameters: - * N how many bits per iteration we try to get (4) - * WORDSIZE total number of bits (32) - * - * Derived constants: - * TOPBITS number of bits in the top decade of a number - * - * Important variables: - * Q the partial quotient under development (initially 0) - * R the remainder so far, initially the dividend - * ITER number of main division loop iterations required; - * equal to ceil(log2(quotient) / N). Note that this - * is the log base (2^N) of the quotient. - * V the current comparand, initially divisor*2^(ITER*N-1) - * - * Cost: - * Current estimate for non-large dividend is - * ceil(log2(quotient) / N) * (10 + 7N/2) + C - * A large dividend is one greater than 2^(31-TOPBITS) and takes a - * different path, as the upper bits of the quotient must be developed - * one bit at a time. - */ - - - -#define C_LABEL(name) name: - -#define C_SYMBOL_NAME(name) name - -#define ENTRY(name) \ - .global C_SYMBOL_NAME(name); \ - .align 4;\ - C_LABEL(name);\ - .type name,@function; - -#define LOC(name) . ## L ## name - -#define END(name) \ - .size name, . - name - -#define ST_DIV0 0x02 - -ENTRY(.udiv) - - ! Ready to divide. Compute size of quotient; scale comparand. - orcc %o1, %g0, %o5 - bne 1f - mov %o0, %o3 - - ! Divide by zero trap. If it returns, return 0 (about as - ! wrong as possible, but that is what SunOS does...). - ta ST_DIV0 - retl - clr %o0 - -1: - cmp %o3, %o5 ! if %o1 exceeds %o0, done - blu LOC(got_result) ! (and algorithm fails otherwise) - clr %o2 - sethi %hi(1 << (32 - 4 - 1)), %g1 - cmp %o3, %g1 - blu LOC(not_really_big) - clr %o4 - - ! Here the dividend is >= 2**(31-N) or so. We must be careful here, - ! as our usual N-at-a-shot divide step will cause overflow and havoc. - ! The number of bits in the result here is N*ITER+SC, where SC <= N. - ! Compute ITER in an unorthodox manner: know we need to shift V into - ! the top decade: so do not even bother to compare to R. - 1: - cmp %o5, %g1 - bgeu 3f - mov 1, %g2 - sll %o5, 4, %o5 - b 1b - add %o4, 1, %o4 - - ! Now compute %g2. - 2: addcc %o5, %o5, %o5 - bcc LOC(not_too_big) - add %g2, 1, %g2 - - ! We get here if the %o1 overflowed while shifting. - ! This means that %o3 has the high-order bit set. - ! Restore %o5 and subtract from %o3. - sll %g1, 4, %g1 ! high order bit - srl %o5, 1, %o5 ! rest of %o5 - add %o5, %g1, %o5 - b LOC(do_single_div) - sub %g2, 1, %g2 - - LOC(not_too_big): - 3: cmp %o5, %o3 - blu 2b - nop - be LOC(do_single_div) - nop - /* NB: these are commented out in the V8-Sparc manual as well */ - /* (I do not understand this) */ - ! %o5 > %o3: went too far: back up 1 step - ! srl %o5, 1, %o5 - ! dec %g2 - ! do single-bit divide steps - ! - ! We have to be careful here. We know that %o3 >= %o5, so we can do the - ! first divide step without thinking. BUT, the others are conditional, - ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high- - ! order bit set in the first step, just falling into the regular - ! division loop will mess up the first time around. - ! So we unroll slightly... - LOC(do_single_div): - subcc %g2, 1, %g2 - bl LOC(end_regular_divide) - nop - sub %o3, %o5, %o3 - mov 1, %o2 - b LOC(end_single_divloop) - nop - LOC(single_divloop): - sll %o2, 1, %o2 - bl 1f - srl %o5, 1, %o5 - ! %o3 >= 0 - sub %o3, %o5, %o3 - b 2f - add %o2, 1, %o2 - 1: ! %o3 < 0 - add %o3, %o5, %o3 - sub %o2, 1, %o2 - 2: - LOC(end_single_divloop): - subcc %g2, 1, %g2 - bge LOC(single_divloop) - tst %o3 - b,a LOC(end_regular_divide) - -LOC(not_really_big): -1: - sll %o5, 4, %o5 - cmp %o5, %o3 - bleu 1b - addcc %o4, 1, %o4 - be LOC(got_result) - sub %o4, 1, %o4 - - tst %o3 ! set up for initial iteration -LOC(divloop): - sll %o2, 4, %o2 - ! depth 1, accumulated bits 0 - bl LOC(1.16) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 2, accumulated bits 1 - bl LOC(2.17) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 3, accumulated bits 3 - bl LOC(3.19) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits 7 - bl LOC(4.23) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (7*2+1), %o2 - -LOC(4.23): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (7*2-1), %o2 - - -LOC(3.19): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits 5 - bl LOC(4.21) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (5*2+1), %o2 - -LOC(4.21): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (5*2-1), %o2 - - - -LOC(2.17): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 3, accumulated bits 1 - bl LOC(3.17) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits 3 - bl LOC(4.19) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (3*2+1), %o2 - -LOC(4.19): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (3*2-1), %o2 - - -LOC(3.17): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits 1 - bl LOC(4.17) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (1*2+1), %o2 - -LOC(4.17): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (1*2-1), %o2 - - - - -LOC(1.16): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 2, accumulated bits -1 - bl LOC(2.15) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 3, accumulated bits -1 - bl LOC(3.15) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits -1 - bl LOC(4.15) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-1*2+1), %o2 - -LOC(4.15): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-1*2-1), %o2 - - -LOC(3.15): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits -3 - bl LOC(4.13) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-3*2+1), %o2 - -LOC(4.13): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-3*2-1), %o2 - - - -LOC(2.15): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 3, accumulated bits -3 - bl LOC(3.13) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits -5 - bl LOC(4.11) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-5*2+1), %o2 - -LOC(4.11): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-5*2-1), %o2 - - -LOC(3.13): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits -7 - bl LOC(4.9) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-7*2+1), %o2 - -LOC(4.9): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-7*2-1), %o2 - - - - - 9: -LOC(end_regular_divide): - subcc %o4, 1, %o4 - bge LOC(divloop) - tst %o3 - bl,a LOC(got_result) - ! non-restoring fixup here (one instruction only!) - sub %o2, 1, %o2 - - -LOC(got_result): - - retl - mov %o2, %o0 - -END(.udiv) - -#endif diff --git a/mdk-stage1/dietlibc/sparc/umul.S b/mdk-stage1/dietlibc/sparc/umul.S deleted file mode 100644 index 15038ab2a..000000000 --- a/mdk-stage1/dietlibc/sparc/umul.S +++ /dev/null @@ -1,170 +0,0 @@ -#ifdef __sparc__ -/* - * Unsigned multiply. Returns %o0 * %o1 in %o1%o0 (i.e., %o1 holds the - * upper 32 bits of the 64-bit product). - * - * This code optimizes short (less than 13-bit) multiplies. Short - * multiplies require 25 instruction cycles, and long ones require - * 45 instruction cycles. - * - * On return, overflow has occurred (%o1 is not zero) if and only if - * the Z condition code is clear, allowing, e.g., the following: - * - * call .umul - * nop - * bnz overflow (or tnz) - */ - -#define C_LABEL(name) name: - -#define C_SYMBOL_NAME(name) name - -#define ENTRY(name) \ - .global C_SYMBOL_NAME(name); \ - .align 4;\ - C_LABEL(name);\ - .type name,@function; - -#define LOC(name) . ## L ## name - -#define END(name) \ - .size name, . - name - -ENTRY(.umul) - or %o0, %o1, %o4 - mov %o0, %y ! multiplier -> Y - andncc %o4, 0xfff, %g0 ! test bits 12..31 of *both* args - be LOC(mul_shortway) ! if zero, can do it the short way - andcc %g0, %g0, %o4 ! zero the partial product; clear N & V - - /* - * Long multiply. 32 steps, followed by a final shift step. - */ - mulscc %o4, %o1, %o4 ! 1 - mulscc %o4, %o1, %o4 ! 2 - mulscc %o4, %o1, %o4 ! 3 - mulscc %o4, %o1, %o4 ! 4 - mulscc %o4, %o1, %o4 ! 5 - mulscc %o4, %o1, %o4 ! 6 - mulscc %o4, %o1, %o4 ! 7 - mulscc %o4, %o1, %o4 ! 8 - mulscc %o4, %o1, %o4 ! 9 - mulscc %o4, %o1, %o4 ! 10 - mulscc %o4, %o1, %o4 ! 11 - mulscc %o4, %o1, %o4 ! 12 - mulscc %o4, %o1, %o4 ! 13 - mulscc %o4, %o1, %o4 ! 14 - mulscc %o4, %o1, %o4 ! 15 - mulscc %o4, %o1, %o4 ! 16 - mulscc %o4, %o1, %o4 ! 17 - mulscc %o4, %o1, %o4 ! 18 - mulscc %o4, %o1, %o4 ! 19 - mulscc %o4, %o1, %o4 ! 20 - mulscc %o4, %o1, %o4 ! 21 - mulscc %o4, %o1, %o4 ! 22 - mulscc %o4, %o1, %o4 ! 23 - mulscc %o4, %o1, %o4 ! 24 - mulscc %o4, %o1, %o4 ! 25 - mulscc %o4, %o1, %o4 ! 26 - mulscc %o4, %o1, %o4 ! 27 - mulscc %o4, %o1, %o4 ! 28 - mulscc %o4, %o1, %o4 ! 29 - mulscc %o4, %o1, %o4 ! 30 - mulscc %o4, %o1, %o4 ! 31 - mulscc %o4, %o1, %o4 ! 32 - mulscc %o4, %g0, %o4 ! final shift - - /* - * Normally, with the shift-and-add approach, if both numbers are - * positive you get the correct result. With 32-bit two's-complement - * numbers, -x is represented as - * - * x 32 - * ( 2 - ------ ) mod 2 * 2 - * 32 - * 2 - * - * (the `mod 2' subtracts 1 from 1.bbbb). To avoid lots of 2^32s, - * we can treat this as if the radix point were just to the left - * of the sign bit (multiply by 2^32), and get - * - * -x = (2 - x) mod 2 - * - * Then, ignoring the `mod 2's for convenience: - * - * x * y = xy - * -x * y = 2y - xy - * x * -y = 2x - xy - * -x * -y = 4 - 2x - 2y + xy - * - * For signed multiplies, we subtract (x << 32) from the partial - * product to fix this problem for negative multipliers (see mul.s). - * Because of the way the shift into the partial product is calculated - * (N xor V), this term is automatically removed for the multiplicand, - * so we don't have to adjust. - * - * But for unsigned multiplies, the high order bit wasn't a sign bit, - * and the correction is wrong. So for unsigned multiplies where the - * high order bit is one, we end up with xy - (y << 32). To fix it - * we add y << 32. - */ -#if 0 - tst %o1 - bl,a 1f ! if %o1 < 0 (high order bit = 1), - add %o4, %o0, %o4 ! %o4 += %o0 (add y to upper half) -1: rd %y, %o0 ! get lower half of product - retl - addcc %o4, %g0, %o1 ! put upper half in place and set Z for %o1==0 -#else - /* Faster code from tege@sics.se. */ - sra %o1, 31, %o2 ! make mask from sign bit - and %o0, %o2, %o2 ! %o2 = 0 or %o0, depending on sign of %o1 - rd %y, %o0 ! get lower half of product - retl - addcc %o4, %o2, %o1 ! add compensation and put upper half in place -#endif - -LOC(mul_shortway): - /* - * Short multiply. 12 steps, followed by a final shift step. - * The resulting bits are off by 12 and (32-12) = 20 bit positions, - * but there is no problem with %o0 being negative (unlike above), - * and overflow is impossible (the answer is at most 24 bits long). - */ - mulscc %o4, %o1, %o4 ! 1 - mulscc %o4, %o1, %o4 ! 2 - mulscc %o4, %o1, %o4 ! 3 - mulscc %o4, %o1, %o4 ! 4 - mulscc %o4, %o1, %o4 ! 5 - mulscc %o4, %o1, %o4 ! 6 - mulscc %o4, %o1, %o4 ! 7 - mulscc %o4, %o1, %o4 ! 8 - mulscc %o4, %o1, %o4 ! 9 - mulscc %o4, %o1, %o4 ! 10 - mulscc %o4, %o1, %o4 ! 11 - mulscc %o4, %o1, %o4 ! 12 - mulscc %o4, %g0, %o4 ! final shift - - /* - * %o4 has 20 of the bits that should be in the result; %y has - * the bottom 12 (as %y's top 12). That is: - * - * %o4 %y - * +----------------+----------------+ - * | -12- | -20- | -12- | -20- | - * +------(---------+------)---------+ - * -----result----- - * - * The 12 bits of %o4 left of the `result' area are all zero; - * in fact, all top 20 bits of %o4 are zero. - */ - - rd %y, %o5 - sll %o4, 12, %o0 ! shift middle bits left 12 - srl %o5, 20, %o5 ! shift low bits right 20 - or %o5, %o0, %o0 - retl - addcc %g0, %g0, %o1 ! %o1 = zero, and set Z - -END(.umul) -#endif diff --git a/mdk-stage1/dietlibc/sparc/unified.S b/mdk-stage1/dietlibc/sparc/unified.S deleted file mode 100644 index 53b1612a9..000000000 --- a/mdk-stage1/dietlibc/sparc/unified.S +++ /dev/null @@ -1,28 +0,0 @@ -#include <dietfeatures.h> - -.text -.global __unified_syscall -__unified_syscall: - ta 0x10 - - bcc 1f - save %sp, -104, %sp - - neg %i0, %i0 -1: - add %i0, 0xff, %l2 - cmp %l2, 0xfe - bgu 2f - neg %i0, %l3 -#ifdef WANT_THREAD_SAVE - call __errno_location - nop -#else - sethi %hi(errno), %o0 - or %o0, %lo(errno), %o0 -#endif - st %l3, [ %o0 ] - mov -1, %o0 -2: - ret - restore diff --git a/mdk-stage1/dietlibc/sparc/urem.S b/mdk-stage1/dietlibc/sparc/urem.S deleted file mode 100644 index 943cb7873..000000000 --- a/mdk-stage1/dietlibc/sparc/urem.S +++ /dev/null @@ -1,362 +0,0 @@ -#ifdef __sparc__ - /* This file is generated from divrem.m4; DO NOT EDIT! */ -/* - * Division and remainder, from Appendix E of the Sparc Version 8 - * Architecture Manual, with fixes from Gordon Irlam. - */ - -/* - * Input: dividend and divisor in %o0 and %o1 respectively. - * - * m4 parameters: - * .urem name of function to generate - * rem rem=div => %o0 / %o1; rem=rem => %o0 % %o1 - * false false=true => signed; false=false => unsigned - * - * Algorithm parameters: - * N how many bits per iteration we try to get (4) - * WORDSIZE total number of bits (32) - * - * Derived constants: - * TOPBITS number of bits in the top decade of a number - * - * Important variables: - * Q the partial quotient under development (initially 0) - * R the remainder so far, initially the dividend - * ITER number of main division loop iterations required; - * equal to ceil(log2(quotient) / N). Note that this - * is the log base (2^N) of the quotient. - * V the current comparand, initially divisor*2^(ITER*N-1) - * - * Cost: - * Current estimate for non-large dividend is - * ceil(log2(quotient) / N) * (10 + 7N/2) + C - * A large dividend is one greater than 2^(31-TOPBITS) and takes a - * different path, as the upper bits of the quotient must be developed - * one bit at a time. - */ - - - -#define C_LABEL(name) name: - -#define C_SYMBOL_NAME(name) name - -#define ENTRY(name) \ - .global C_SYMBOL_NAME(name); \ - .align 4;\ - C_LABEL(name);\ - .type name,@function; - -#define LOC(name) . ## L ## name - -#define END(name) \ - .size name, . - name - -#define ST_DIV0 0x02 - -ENTRY(.urem) - - ! Ready to divide. Compute size of quotient; scale comparand. - orcc %o1, %g0, %o5 - bne 1f - mov %o0, %o3 - - ! Divide by zero trap. If it returns, return 0 (about as - ! wrong as possible, but that is what SunOS does...). - ta ST_DIV0 - retl - clr %o0 - -1: - cmp %o3, %o5 ! if %o1 exceeds %o0, done - blu LOC(got_result) ! (and algorithm fails otherwise) - clr %o2 - sethi %hi(1 << (32 - 4 - 1)), %g1 - cmp %o3, %g1 - blu LOC(not_really_big) - clr %o4 - - ! Here the dividend is >= 2**(31-N) or so. We must be careful here, - ! as our usual N-at-a-shot divide step will cause overflow and havoc. - ! The number of bits in the result here is N*ITER+SC, where SC <= N. - ! Compute ITER in an unorthodox manner: know we need to shift V into - ! the top decade: so do not even bother to compare to R. - 1: - cmp %o5, %g1 - bgeu 3f - mov 1, %g2 - sll %o5, 4, %o5 - b 1b - add %o4, 1, %o4 - - ! Now compute %g2. - 2: addcc %o5, %o5, %o5 - bcc LOC(not_too_big) - add %g2, 1, %g2 - - ! We get here if the %o1 overflowed while shifting. - ! This means that %o3 has the high-order bit set. - ! Restore %o5 and subtract from %o3. - sll %g1, 4, %g1 ! high order bit - srl %o5, 1, %o5 ! rest of %o5 - add %o5, %g1, %o5 - b LOC(do_single_div) - sub %g2, 1, %g2 - - LOC(not_too_big): - 3: cmp %o5, %o3 - blu 2b - nop - be LOC(do_single_div) - nop - /* NB: these are commented out in the V8-Sparc manual as well */ - /* (I do not understand this) */ - ! %o5 > %o3: went too far: back up 1 step - ! srl %o5, 1, %o5 - ! dec %g2 - ! do single-bit divide steps - ! - ! We have to be careful here. We know that %o3 >= %o5, so we can do the - ! first divide step without thinking. BUT, the others are conditional, - ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high- - ! order bit set in the first step, just falling into the regular - ! division loop will mess up the first time around. - ! So we unroll slightly... - LOC(do_single_div): - subcc %g2, 1, %g2 - bl LOC(end_regular_divide) - nop - sub %o3, %o5, %o3 - mov 1, %o2 - b LOC(end_single_divloop) - nop - LOC(single_divloop): - sll %o2, 1, %o2 - bl 1f - srl %o5, 1, %o5 - ! %o3 >= 0 - sub %o3, %o5, %o3 - b 2f - add %o2, 1, %o2 - 1: ! %o3 < 0 - add %o3, %o5, %o3 - sub %o2, 1, %o2 - 2: - LOC(end_single_divloop): - subcc %g2, 1, %g2 - bge LOC(single_divloop) - tst %o3 - b,a LOC(end_regular_divide) - -LOC(not_really_big): -1: - sll %o5, 4, %o5 - cmp %o5, %o3 - bleu 1b - addcc %o4, 1, %o4 - be LOC(got_result) - sub %o4, 1, %o4 - - tst %o3 ! set up for initial iteration -LOC(divloop): - sll %o2, 4, %o2 - ! depth 1, accumulated bits 0 - bl LOC(1.16) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 2, accumulated bits 1 - bl LOC(2.17) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 3, accumulated bits 3 - bl LOC(3.19) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits 7 - bl LOC(4.23) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (7*2+1), %o2 - -LOC(4.23): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (7*2-1), %o2 - - -LOC(3.19): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits 5 - bl LOC(4.21) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (5*2+1), %o2 - -LOC(4.21): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (5*2-1), %o2 - - - -LOC(2.17): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 3, accumulated bits 1 - bl LOC(3.17) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits 3 - bl LOC(4.19) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (3*2+1), %o2 - -LOC(4.19): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (3*2-1), %o2 - - -LOC(3.17): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits 1 - bl LOC(4.17) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (1*2+1), %o2 - -LOC(4.17): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (1*2-1), %o2 - - - - -LOC(1.16): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 2, accumulated bits -1 - bl LOC(2.15) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 3, accumulated bits -1 - bl LOC(3.15) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits -1 - bl LOC(4.15) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-1*2+1), %o2 - -LOC(4.15): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-1*2-1), %o2 - - -LOC(3.15): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits -3 - bl LOC(4.13) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-3*2+1), %o2 - -LOC(4.13): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-3*2-1), %o2 - - - -LOC(2.15): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 3, accumulated bits -3 - bl LOC(3.13) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - ! depth 4, accumulated bits -5 - bl LOC(4.11) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-5*2+1), %o2 - -LOC(4.11): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-5*2-1), %o2 - - -LOC(3.13): - ! remainder is negative - addcc %o3,%o5,%o3 - ! depth 4, accumulated bits -7 - bl LOC(4.9) - srl %o5,1,%o5 - ! remainder is positive - subcc %o3,%o5,%o3 - b 9f - add %o2, (-7*2+1), %o2 - -LOC(4.9): - ! remainder is negative - addcc %o3,%o5,%o3 - b 9f - add %o2, (-7*2-1), %o2 - - - - - 9: -LOC(end_regular_divide): - subcc %o4, 1, %o4 - bge LOC(divloop) - tst %o3 - bl,a LOC(got_result) - ! non-restoring fixup here (one instruction only!) - add %o3, %o1, %o3 - - -LOC(got_result): - - retl - mov %o3, %o0 - -END(.urem) -#endif diff --git a/mdk-stage1/dietlibc/start.h b/mdk-stage1/dietlibc/start.h deleted file mode 100644 index 5983b0462..000000000 --- a/mdk-stage1/dietlibc/start.h +++ /dev/null @@ -1,10 +0,0 @@ -.section ".bss" - .align 8 - - .weak errno -errno: - .long 0 - - .weak environ -environ: - .long 0 diff --git a/mdk-stage1/dietlibc/syscalls.h b/mdk-stage1/dietlibc/syscalls.h deleted file mode 100644 index 5e9782ee9..000000000 --- a/mdk-stage1/dietlibc/syscalls.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifdef __ASSEMBLER__ - -#include <asm/unistd.h> - -#else - -#include <linux/unistd.h> - -#endif - -#ifdef __i386__ - -#define syscall(name,sym) \ -.text; \ -.global sym; \ -sym: \ - movb $__NR_##name,%al; \ - jmp __unified_syscall - -#endif - -#ifdef __sparc__ - -#define syscall(name,sym) \ -.text; \ -.global sym; \ -sym: \ - b __unified_syscall; \ - mov __NR_##name, %g1 - -#endif - -#ifdef __powerpc__ - -#define syscall(name,sym) \ -.text; \ -.global sym; \ -sym: \ - li 0,__NR_##name; \ - b __unified_syscall - -#endif - - -#ifdef __mips__ - -#define syscall(name,sym) \ -.text; \ -.global sym; \ -.ent sym; \ -sym: \ - li $2,__NR_##name; \ - la $25,__unified_syscall; \ - jr $25; \ -.end sym - -#endif - -#ifdef __arm__ - -#define syscall(name,sym) \ -.text; \ -.global sym; \ -sym: \ - swi __NR_##name; \ - b __unified_syscall - -#endif - - -#ifdef __alpha__ - -#define syscall(name,sym) \ -.text ; \ -.align 2 ; \ -.global sym ; \ -.type sym,@function ; \ -sym: ; \ - lda $0, __NR_##name($31) ; \ - br __unified_syscall - -#endif diff --git a/mdk-stage1/dietlibc/syscalls.s/__pread.S b/mdk-stage1/dietlibc/syscalls.s/__pread.S deleted file mode 100644 index 4603a1009..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/__pread.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.weak __libc_pread -syscall(pread,__pread) diff --git a/mdk-stage1/dietlibc/syscalls.s/_llseek.S b/mdk-stage1/dietlibc/syscalls.s/_llseek.S deleted file mode 100644 index 3e240d822..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/_llseek.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(_llseek,_llseek) diff --git a/mdk-stage1/dietlibc/syscalls.s/access.S b/mdk-stage1/dietlibc/syscalls.s/access.S deleted file mode 100644 index d1edafd8c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/access.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(access,access) diff --git a/mdk-stage1/dietlibc/syscalls.s/brk.S b/mdk-stage1/dietlibc/syscalls.s/brk.S deleted file mode 100644 index 6e21810bd..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/brk.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(brk,__diet_brk) diff --git a/mdk-stage1/dietlibc/syscalls.s/chdir.S b/mdk-stage1/dietlibc/syscalls.s/chdir.S deleted file mode 100644 index 204f3dd6c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/chdir.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(chdir,chdir) diff --git a/mdk-stage1/dietlibc/syscalls.s/chmod.S b/mdk-stage1/dietlibc/syscalls.s/chmod.S deleted file mode 100644 index c1b85f5a4..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/chmod.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(chmod,chmod) diff --git a/mdk-stage1/dietlibc/syscalls.s/chown.S b/mdk-stage1/dietlibc/syscalls.s/chown.S deleted file mode 100644 index daac3bf13..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/chown.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(chown,chown) diff --git a/mdk-stage1/dietlibc/syscalls.s/chroot.S b/mdk-stage1/dietlibc/syscalls.s/chroot.S deleted file mode 100644 index 65de1e473..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/chroot.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(chroot,chroot) diff --git a/mdk-stage1/dietlibc/syscalls.s/close.S b/mdk-stage1/dietlibc/syscalls.s/close.S deleted file mode 100644 index 0f72ca1ae..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/close.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -.weak __libc_close -__libc_close: -syscall(close,close) diff --git a/mdk-stage1/dietlibc/syscalls.s/dup.S b/mdk-stage1/dietlibc/syscalls.s/dup.S deleted file mode 100644 index b2977fd43..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/dup.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(dup,dup) diff --git a/mdk-stage1/dietlibc/syscalls.s/dup2.S b/mdk-stage1/dietlibc/syscalls.s/dup2.S deleted file mode 100644 index 774bfbfe7..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/dup2.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(dup2,dup2) diff --git a/mdk-stage1/dietlibc/syscalls.s/execve.S b/mdk-stage1/dietlibc/syscalls.s/execve.S deleted file mode 100644 index ff952ae7d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/execve.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(execve,execve) diff --git a/mdk-stage1/dietlibc/syscalls.s/exit.S b/mdk-stage1/dietlibc/syscalls.s/exit.S deleted file mode 100644 index 89d3145e9..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/exit.S +++ /dev/null @@ -1,6 +0,0 @@ -#include "syscalls.h" - -.text -.weak exit -exit: -syscall(exit,_exit) diff --git a/mdk-stage1/dietlibc/syscalls.s/fchdir.S b/mdk-stage1/dietlibc/syscalls.s/fchdir.S deleted file mode 100644 index 0aeaf610b..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fchdir.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(fchdir,fchdir) diff --git a/mdk-stage1/dietlibc/syscalls.s/fchmod.S b/mdk-stage1/dietlibc/syscalls.s/fchmod.S deleted file mode 100644 index 30bc2e210..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fchmod.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(fchmod,fchmod) diff --git a/mdk-stage1/dietlibc/syscalls.s/fchown.S b/mdk-stage1/dietlibc/syscalls.s/fchown.S deleted file mode 100644 index bc2a296ea..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fchown.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(fchown,fchown) diff --git a/mdk-stage1/dietlibc/syscalls.s/fcntl.S b/mdk-stage1/dietlibc/syscalls.s/fcntl.S deleted file mode 100644 index 8516bc232..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fcntl.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -.weak __libc_fcntl -__libc_fcntl: -syscall(fcntl,fcntl) diff --git a/mdk-stage1/dietlibc/syscalls.s/flock.S b/mdk-stage1/dietlibc/syscalls.s/flock.S deleted file mode 100644 index 7b4daeff7..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/flock.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(flock,flock) diff --git a/mdk-stage1/dietlibc/syscalls.s/fork.S b/mdk-stage1/dietlibc/syscalls.s/fork.S deleted file mode 100644 index 66732d27e..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fork.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -.weak __libc_fork -__libc_fork: -syscall(fork,fork) diff --git a/mdk-stage1/dietlibc/syscalls.s/fstatfs.S b/mdk-stage1/dietlibc/syscalls.s/fstatfs.S deleted file mode 100644 index a23c8770c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fstatfs.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(fstatfs,fstatfs) diff --git a/mdk-stage1/dietlibc/syscalls.s/fsync.S b/mdk-stage1/dietlibc/syscalls.s/fsync.S deleted file mode 100644 index 624cbaf97..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/fsync.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(fsync,fsync) diff --git a/mdk-stage1/dietlibc/syscalls.s/ftruncate.S b/mdk-stage1/dietlibc/syscalls.s/ftruncate.S deleted file mode 100644 index dde57a615..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/ftruncate.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(ftruncate,ftruncate) diff --git a/mdk-stage1/dietlibc/syscalls.s/getcwd.S b/mdk-stage1/dietlibc/syscalls.s/getcwd.S deleted file mode 100644 index 8ff0a026e..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getcwd.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getcwd,getcwd) diff --git a/mdk-stage1/dietlibc/syscalls.s/getdents.S b/mdk-stage1/dietlibc/syscalls.s/getdents.S deleted file mode 100644 index f476e939d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getdents.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getdents,getdents) diff --git a/mdk-stage1/dietlibc/syscalls.s/getdents64.S b/mdk-stage1/dietlibc/syscalls.s/getdents64.S deleted file mode 100644 index 16859addf..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getdents64.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -#ifdef __NR_getdents64 -syscall(getdents64,getdents64) -#endif diff --git a/mdk-stage1/dietlibc/syscalls.s/getegid.S b/mdk-stage1/dietlibc/syscalls.s/getegid.S deleted file mode 100644 index 64843ee35..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getegid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getegid,getegid) diff --git a/mdk-stage1/dietlibc/syscalls.s/geteuid.S b/mdk-stage1/dietlibc/syscalls.s/geteuid.S deleted file mode 100644 index 55dc00981..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/geteuid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(geteuid,geteuid) diff --git a/mdk-stage1/dietlibc/syscalls.s/getgid.S b/mdk-stage1/dietlibc/syscalls.s/getgid.S deleted file mode 100644 index 39f092685..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getgid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getgid,getgid) diff --git a/mdk-stage1/dietlibc/syscalls.s/getgroups.S b/mdk-stage1/dietlibc/syscalls.s/getgroups.S deleted file mode 100644 index b4c57689c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getgroups.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getgroups,getgroups) diff --git a/mdk-stage1/dietlibc/syscalls.s/getpgid.S b/mdk-stage1/dietlibc/syscalls.s/getpgid.S deleted file mode 100644 index e568f060f..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getpgid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getpgid,getpgid) diff --git a/mdk-stage1/dietlibc/syscalls.s/getpid.S b/mdk-stage1/dietlibc/syscalls.s/getpid.S deleted file mode 100644 index 093884785..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getpid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getpid,getpid) diff --git a/mdk-stage1/dietlibc/syscalls.s/getppid.S b/mdk-stage1/dietlibc/syscalls.s/getppid.S deleted file mode 100644 index b05e64ae3..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getppid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getppid,getppid) diff --git a/mdk-stage1/dietlibc/syscalls.s/getresgid.S b/mdk-stage1/dietlibc/syscalls.s/getresgid.S deleted file mode 100644 index a1d873c15..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getresgid.S +++ /dev/null @@ -1,7 +0,0 @@ -#include "syscalls.h" - -#ifdef __NR_getresgid - -syscall(getresgid,getresgid) - -#endif diff --git a/mdk-stage1/dietlibc/syscalls.s/getresuid.S b/mdk-stage1/dietlibc/syscalls.s/getresuid.S deleted file mode 100644 index 62f6d764f..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getresuid.S +++ /dev/null @@ -1,7 +0,0 @@ -#include "syscalls.h" - -#ifdef __getresuid - -syscall(getresuid) - -#endif diff --git a/mdk-stage1/dietlibc/syscalls.s/getrlimit.S b/mdk-stage1/dietlibc/syscalls.s/getrlimit.S deleted file mode 100644 index 1c63c0196..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getrlimit.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getrlimit,getrlimit) diff --git a/mdk-stage1/dietlibc/syscalls.s/getrusage.S b/mdk-stage1/dietlibc/syscalls.s/getrusage.S deleted file mode 100644 index 2972c4938..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getrusage.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getrusage,getrusage) diff --git a/mdk-stage1/dietlibc/syscalls.s/getsid.S b/mdk-stage1/dietlibc/syscalls.s/getsid.S deleted file mode 100644 index cf5cce9d5..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getsid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getsid,getsid) diff --git a/mdk-stage1/dietlibc/syscalls.s/gettimeofday.S b/mdk-stage1/dietlibc/syscalls.s/gettimeofday.S deleted file mode 100644 index f364b787a..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/gettimeofday.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(gettimeofday,gettimeofday) diff --git a/mdk-stage1/dietlibc/syscalls.s/getuid.S b/mdk-stage1/dietlibc/syscalls.s/getuid.S deleted file mode 100644 index c53c25a7a..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/getuid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(getuid,getuid) diff --git a/mdk-stage1/dietlibc/syscalls.s/ioctl.S b/mdk-stage1/dietlibc/syscalls.s/ioctl.S deleted file mode 100644 index 463d319dc..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/ioctl.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(ioctl,ioctl) diff --git a/mdk-stage1/dietlibc/syscalls.s/kill.S b/mdk-stage1/dietlibc/syscalls.s/kill.S deleted file mode 100644 index eb466dd33..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/kill.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(kill,kill) diff --git a/mdk-stage1/dietlibc/syscalls.s/lchown.S b/mdk-stage1/dietlibc/syscalls.s/lchown.S deleted file mode 100644 index 19dfefaef..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/lchown.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(lchown,lchown) diff --git a/mdk-stage1/dietlibc/syscalls.s/link.S b/mdk-stage1/dietlibc/syscalls.s/link.S deleted file mode 100644 index 8015d11c8..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/link.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(link,link) diff --git a/mdk-stage1/dietlibc/syscalls.s/lseek.S b/mdk-stage1/dietlibc/syscalls.s/lseek.S deleted file mode 100644 index 454827483..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/lseek.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(lseek,lseek) diff --git a/mdk-stage1/dietlibc/syscalls.s/mkdir.S b/mdk-stage1/dietlibc/syscalls.s/mkdir.S deleted file mode 100644 index d6214ee46..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/mkdir.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(mkdir,mkdir) diff --git a/mdk-stage1/dietlibc/syscalls.s/mknod.S b/mdk-stage1/dietlibc/syscalls.s/mknod.S deleted file mode 100644 index c1b2af12d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/mknod.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(mknod,mknod) diff --git a/mdk-stage1/dietlibc/syscalls.s/mount.S b/mdk-stage1/dietlibc/syscalls.s/mount.S deleted file mode 100644 index 2fd845561..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/mount.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(mount,mount) diff --git a/mdk-stage1/dietlibc/syscalls.s/mprotect.S b/mdk-stage1/dietlibc/syscalls.s/mprotect.S deleted file mode 100644 index 73e9a8e17..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/mprotect.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(mprotect,mprotect) diff --git a/mdk-stage1/dietlibc/syscalls.s/mremap.S b/mdk-stage1/dietlibc/syscalls.s/mremap.S deleted file mode 100644 index 259ccec99..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/mremap.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(mremap,mremap) diff --git a/mdk-stage1/dietlibc/syscalls.s/munmap.S b/mdk-stage1/dietlibc/syscalls.s/munmap.S deleted file mode 100644 index b43a7b22d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/munmap.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(munmap,munmap) diff --git a/mdk-stage1/dietlibc/syscalls.s/nanosleep.S b/mdk-stage1/dietlibc/syscalls.s/nanosleep.S deleted file mode 100644 index 7dce9956d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/nanosleep.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(nanosleep,nanosleep) diff --git a/mdk-stage1/dietlibc/syscalls.s/open.S b/mdk-stage1/dietlibc/syscalls.s/open.S deleted file mode 100644 index 11cfecd4a..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/open.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(open,open) diff --git a/mdk-stage1/dietlibc/syscalls.s/pipe.S b/mdk-stage1/dietlibc/syscalls.s/pipe.S deleted file mode 100644 index 03994d055..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/pipe.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(pipe,pipe) diff --git a/mdk-stage1/dietlibc/syscalls.s/poll.S b/mdk-stage1/dietlibc/syscalls.s/poll.S deleted file mode 100644 index 359f55ddd..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/poll.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(poll,poll) diff --git a/mdk-stage1/dietlibc/syscalls.s/pwrite.S b/mdk-stage1/dietlibc/syscalls.s/pwrite.S deleted file mode 100644 index f52ead7b2..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/pwrite.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(pwrite,__pwrite) diff --git a/mdk-stage1/dietlibc/syscalls.s/read.S b/mdk-stage1/dietlibc/syscalls.s/read.S deleted file mode 100644 index 98ad98c17..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/read.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -.weak __libc_read -__libc_read: -syscall(read,read) diff --git a/mdk-stage1/dietlibc/syscalls.s/readlink.S b/mdk-stage1/dietlibc/syscalls.s/readlink.S deleted file mode 100644 index 850e77c4e..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/readlink.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(readlink,readlink) diff --git a/mdk-stage1/dietlibc/syscalls.s/rename.S b/mdk-stage1/dietlibc/syscalls.s/rename.S deleted file mode 100644 index f92f1dc5d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/rename.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(rename,rename) diff --git a/mdk-stage1/dietlibc/syscalls.s/rmdir.S b/mdk-stage1/dietlibc/syscalls.s/rmdir.S deleted file mode 100644 index 341216e8c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/rmdir.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(rmdir,rmdir) diff --git a/mdk-stage1/dietlibc/syscalls.s/select.S b/mdk-stage1/dietlibc/syscalls.s/select.S deleted file mode 100644 index 3353848ff..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/select.S +++ /dev/null @@ -1,4 +0,0 @@ -#include "syscalls.h" - -.text -syscall(select,select) diff --git a/mdk-stage1/dietlibc/syscalls.s/sendfile.S b/mdk-stage1/dietlibc/syscalls.s/sendfile.S deleted file mode 100644 index d56219dc6..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sendfile.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -.weak __libc_sendfile -__libc_sendfile: -syscall(sendfile,sendfile) diff --git a/mdk-stage1/dietlibc/syscalls.s/setdomainname.S b/mdk-stage1/dietlibc/syscalls.s/setdomainname.S deleted file mode 100644 index eaade25da..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setdomainname.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setdomainname,setdomainname) diff --git a/mdk-stage1/dietlibc/syscalls.s/setgid.S b/mdk-stage1/dietlibc/syscalls.s/setgid.S deleted file mode 100644 index 69b18a9c9..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setgid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setgid,setgid) diff --git a/mdk-stage1/dietlibc/syscalls.s/setgroups.S b/mdk-stage1/dietlibc/syscalls.s/setgroups.S deleted file mode 100644 index ce8e800a6..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setgroups.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setgroups,setgroups) diff --git a/mdk-stage1/dietlibc/syscalls.s/sethostname.S b/mdk-stage1/dietlibc/syscalls.s/sethostname.S deleted file mode 100644 index 7616d4848..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sethostname.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(sethostname,sethostname) diff --git a/mdk-stage1/dietlibc/syscalls.s/setitimer.S b/mdk-stage1/dietlibc/syscalls.s/setitimer.S deleted file mode 100644 index bcb0623ba..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setitimer.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setitimer,setitimer) diff --git a/mdk-stage1/dietlibc/syscalls.s/setpgid.S b/mdk-stage1/dietlibc/syscalls.s/setpgid.S deleted file mode 100644 index e93db31dc..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setpgid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setpgid,setpgid) diff --git a/mdk-stage1/dietlibc/syscalls.s/setregid.S b/mdk-stage1/dietlibc/syscalls.s/setregid.S deleted file mode 100644 index 3a7abbc28..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setregid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setregid,setregid) diff --git a/mdk-stage1/dietlibc/syscalls.s/setresgid.S b/mdk-stage1/dietlibc/syscalls.s/setresgid.S deleted file mode 100644 index 64cbac94e..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setresgid.S +++ /dev/null @@ -1,7 +0,0 @@ -#include "syscalls.h" - -#ifdef __setresgid - -syscall(setresgid) - -#endif diff --git a/mdk-stage1/dietlibc/syscalls.s/setresuid.S b/mdk-stage1/dietlibc/syscalls.s/setresuid.S deleted file mode 100644 index 20b6abee9..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setresuid.S +++ /dev/null @@ -1,7 +0,0 @@ -#include "syscalls.h" - -#ifdef __setresuid - -syscall(setresuid) - -#endif diff --git a/mdk-stage1/dietlibc/syscalls.s/setreuid.S b/mdk-stage1/dietlibc/syscalls.s/setreuid.S deleted file mode 100644 index 33ca8deed..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setreuid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setreuid,setreuid) diff --git a/mdk-stage1/dietlibc/syscalls.s/setrlimit.S b/mdk-stage1/dietlibc/syscalls.s/setrlimit.S deleted file mode 100644 index 605105658..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setrlimit.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setrlimit,setrlimit) diff --git a/mdk-stage1/dietlibc/syscalls.s/setsid.S b/mdk-stage1/dietlibc/syscalls.s/setsid.S deleted file mode 100644 index d1ef1c58e..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setsid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setsid,setsid) diff --git a/mdk-stage1/dietlibc/syscalls.s/setuid.S b/mdk-stage1/dietlibc/syscalls.s/setuid.S deleted file mode 100644 index d20571cbf..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/setuid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(setuid,setuid) diff --git a/mdk-stage1/dietlibc/syscalls.s/sigaction.S b/mdk-stage1/dietlibc/syscalls.s/sigaction.S deleted file mode 100644 index 32382870c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sigaction.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(sigaction,sigaction) diff --git a/mdk-stage1/dietlibc/syscalls.s/signal.S b/mdk-stage1/dietlibc/syscalls.s/signal.S deleted file mode 100644 index 86c4d5db0..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/signal.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(signal,signal) diff --git a/mdk-stage1/dietlibc/syscalls.s/sigpending.S b/mdk-stage1/dietlibc/syscalls.s/sigpending.S deleted file mode 100644 index 08715bef5..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sigpending.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(sigpending,sigpending) diff --git a/mdk-stage1/dietlibc/syscalls.s/sigprocmask.S b/mdk-stage1/dietlibc/syscalls.s/sigprocmask.S deleted file mode 100644 index 8d6563b8f..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sigprocmask.S +++ /dev/null @@ -1,6 +0,0 @@ -#include "syscalls.h" - -.text -.weak sigprocmask -sigprocmask: -syscall(sigprocmask,__sigprocmask) diff --git a/mdk-stage1/dietlibc/syscalls.s/sigsuspend.S b/mdk-stage1/dietlibc/syscalls.s/sigsuspend.S deleted file mode 100644 index c832c2b5d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sigsuspend.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(sigsuspend,sigsuspend) diff --git a/mdk-stage1/dietlibc/syscalls.s/socketcall.S b/mdk-stage1/dietlibc/syscalls.s/socketcall.S deleted file mode 100644 index 5837c049a..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/socketcall.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(socketcall,socketcall) diff --git a/mdk-stage1/dietlibc/syscalls.s/statfs.S b/mdk-stage1/dietlibc/syscalls.s/statfs.S deleted file mode 100644 index 7560f569d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/statfs.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(statfs,statfs) diff --git a/mdk-stage1/dietlibc/syscalls.s/swapoff.S b/mdk-stage1/dietlibc/syscalls.s/swapoff.S deleted file mode 100644 index f75ec94e0..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/swapoff.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(swapoff,swapoff) diff --git a/mdk-stage1/dietlibc/syscalls.s/swapon.S b/mdk-stage1/dietlibc/syscalls.s/swapon.S deleted file mode 100644 index d10594168..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/swapon.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(swapon,swapon) diff --git a/mdk-stage1/dietlibc/syscalls.s/symlink.S b/mdk-stage1/dietlibc/syscalls.s/symlink.S deleted file mode 100644 index 07a6a7fdc..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/symlink.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(symlink,symlink) diff --git a/mdk-stage1/dietlibc/syscalls.s/sync.S b/mdk-stage1/dietlibc/syscalls.s/sync.S deleted file mode 100644 index 1ee021693..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/sync.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(sync,sync) diff --git a/mdk-stage1/dietlibc/syscalls.s/syslog.S b/mdk-stage1/dietlibc/syscalls.s/syslog.S deleted file mode 100644 index 55df87d53..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/syslog.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(syslog,syslog) diff --git a/mdk-stage1/dietlibc/syscalls.s/time.S b/mdk-stage1/dietlibc/syscalls.s/time.S deleted file mode 100644 index 26c79091c..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/time.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(time,time) diff --git a/mdk-stage1/dietlibc/syscalls.s/truncate.S b/mdk-stage1/dietlibc/syscalls.s/truncate.S deleted file mode 100644 index 7052bdcee..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/truncate.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(truncate,truncate) diff --git a/mdk-stage1/dietlibc/syscalls.s/umask.S b/mdk-stage1/dietlibc/syscalls.s/umask.S deleted file mode 100644 index 9f8ffeda6..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/umask.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(umask,umask) diff --git a/mdk-stage1/dietlibc/syscalls.s/umount.S b/mdk-stage1/dietlibc/syscalls.s/umount.S deleted file mode 100644 index 4a423d964..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/umount.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(umount,umount) diff --git a/mdk-stage1/dietlibc/syscalls.s/uname.S b/mdk-stage1/dietlibc/syscalls.s/uname.S deleted file mode 100644 index a460d2aa6..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/uname.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(uname,uname) diff --git a/mdk-stage1/dietlibc/syscalls.s/unlink.S b/mdk-stage1/dietlibc/syscalls.s/unlink.S deleted file mode 100644 index bd6713061..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/unlink.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(unlink,unlink) diff --git a/mdk-stage1/dietlibc/syscalls.s/utime.S b/mdk-stage1/dietlibc/syscalls.s/utime.S deleted file mode 100644 index 08cd22158..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/utime.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(utime,utime) diff --git a/mdk-stage1/dietlibc/syscalls.s/vhangup.S b/mdk-stage1/dietlibc/syscalls.s/vhangup.S deleted file mode 100644 index 6e2d1d343..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/vhangup.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(vhangup,vhangup) diff --git a/mdk-stage1/dietlibc/syscalls.s/wait4.S b/mdk-stage1/dietlibc/syscalls.s/wait4.S deleted file mode 100644 index ca6773569..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/wait4.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(wait4,wait4) diff --git a/mdk-stage1/dietlibc/syscalls.s/waitpid.S b/mdk-stage1/dietlibc/syscalls.s/waitpid.S deleted file mode 100644 index 569d8f68d..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/waitpid.S +++ /dev/null @@ -1,3 +0,0 @@ -#include "syscalls.h" - -syscall(waitpid,waitpid) diff --git a/mdk-stage1/dietlibc/syscalls.s/write.S b/mdk-stage1/dietlibc/syscalls.s/write.S deleted file mode 100644 index 409575be0..000000000 --- a/mdk-stage1/dietlibc/syscalls.s/write.S +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscalls.h" - -.weak __libc_write -__libc_write: -syscall(write,write) |
