From dc7ad831eca396d6df6e6a7952143e1141f28a7f Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Wed, 26 Aug 2009 18:55:15 +0000 Subject: [PATCH] more syscall files --- WEGA/src/lib/libc/TODO | 11 --- WEGA/src/lib/libc/TODO.done | 11 +++ WEGA/src/lib/libc/c | 1 + WEGA/src/lib/libc/csu/crt0.s | 4 + WEGA/src/lib/libc/s | 6 +- WEGA/src/lib/libc/sys/Makefile | 13 +-- WEGA/src/lib/libc/sys/chroot.s | 18 ++++ WEGA/src/lib/libc/sys/dup2.s | 19 +++++ WEGA/src/lib/libc/sys/execlp.s | 24 ++++++ WEGA/src/lib/libc/sys/ftime.s | 18 ++++ WEGA/src/lib/libc/sys/getpgrp.s | 18 ++++ WEGA/src/lib/libc/sys/lkdata.s | 19 +++++ WEGA/src/lib/libc/sys/lock.s | 18 ++++ WEGA/src/lib/libc/sys/mdmctl.s | 19 +++++ WEGA/src/lib/libc/sys/signal.s | 146 ++++++++++++++++---------------- WEGA/src/lib/libc/sys/sptrace.s | 24 ++++++ WEGA/src/lib/libc/sys/unlk.s | 19 +++++ 17 files changed, 295 insertions(+), 93 deletions(-) create mode 100644 WEGA/src/lib/libc/sys/chroot.s create mode 100644 WEGA/src/lib/libc/sys/dup2.s create mode 100644 WEGA/src/lib/libc/sys/execlp.s create mode 100644 WEGA/src/lib/libc/sys/ftime.s create mode 100644 WEGA/src/lib/libc/sys/getpgrp.s create mode 100644 WEGA/src/lib/libc/sys/lkdata.s create mode 100644 WEGA/src/lib/libc/sys/lock.s create mode 100644 WEGA/src/lib/libc/sys/mdmctl.s create mode 100644 WEGA/src/lib/libc/sys/sptrace.s create mode 100644 WEGA/src/lib/libc/sys/unlk.s diff --git a/WEGA/src/lib/libc/TODO b/WEGA/src/lib/libc/TODO index 28ec4db..935011a 100644 --- a/WEGA/src/lib/libc/TODO +++ b/WEGA/src/lib/libc/TODO @@ -4,10 +4,8 @@ abs.o abs.c C atof.o atof.s ASM atoi.o atoi.c C atol.o atol.c C -brk.o ASM bsearch.o bsearch.c C cerror.o cerror.s ASM -chroot.o chroot.s ASM clrerr.o clrerr.c C cnvt.o cnvt.c C crypt.o crypt.c C @@ -20,11 +18,9 @@ data.o data.c C decimal.o decimal.s ASM doprnt.o doprnt.c C doscan.o doscan.c C -dup2.o dup2.s ASM ecvt.o ecvt.s ASM endopen.o endopen.c C errlst.o errlst.c C -execlp.o execlp.s ASM execvp.o execvp.c C fakcu.o fakcu.s ASM fdopen.o fdopen.c C @@ -41,7 +37,6 @@ fputs.o fputs.c C freopen.o freopen.c C fseek.o fseek.c C ftell.o ftell.c C -ftime.o ftime.s ASM getchar.o getchar.c C getenv.o getenv.c C getgrent.o getgrent.c C @@ -50,7 +45,6 @@ getgrnam.o getgrnam.c C getlogin.o getlogin.c C getopt.o getopt.c C getpass.o getpass.c C -getpgrp.o getpgrp.s ASM getpw.o getpw.c C getpwent.o getpwent.c C getpwnam.o getpwnam.c C @@ -63,12 +57,9 @@ isatty.o isatty.c C l3.o l3.c C l64a.o l64a.c C length.o length.c C -lkdata.o lkdata.s ASM -lock.o lock.s ASM lsearch.o lsearch.c C malloc.o malloc.c C mcount.o mcount.s ASM -mdmctl.o mdmctl.s ASM mktemp.o mktemp.c C mon.o mon.c C mpx.o mpx.c C @@ -91,7 +82,6 @@ scanf.o scanf.c C setbuf.o setbuf.c C setret.o setret.s ASM sleep.o sleep.c C -sptrace.o sptrace.s ASM ssignal.o ssignal.c C stfl.o ??? strcat.o strcat.c C @@ -119,4 +109,3 @@ toupper.o toupper.c C ttyname.o ttyname.c C ttyslot.o ttyslot.c C ungetc.o ungetc.c C -unlk.o unlk.s ASM diff --git a/WEGA/src/lib/libc/TODO.done b/WEGA/src/lib/libc/TODO.done index 457307a..f2690c4 100644 --- a/WEGA/src/lib/libc/TODO.done +++ b/WEGA/src/lib/libc/TODO.done @@ -55,3 +55,14 @@ ustat.o ustat.s ASM utime.o utime.s ASM wait.o wait.s ASM write.o write.s ASM +brk.o ASM +chroot.o chroot.s ASM +dup2.o dup2.s ASM +execlp.o execlp.s ASM +ftime.o ftime.s ASM +getpgrp.o getpgrp.s ASM +lkdata.o lkdata.s ASM +lock.o lock.s ASM +mdmctl.o mdmctl.s ASM +sptrace.o sptrace.s ASM +unlk.o unlk.s ASM diff --git a/WEGA/src/lib/libc/c b/WEGA/src/lib/libc/c index 04da496..0620d76 100644 --- a/WEGA/src/lib/libc/c +++ b/WEGA/src/lib/libc/c @@ -1,6 +1,7 @@ while read line ; do file=$(echo "$line" | awk '{print $2}') + grep -q $file TODO.done && continue comment=$(echo "$line" | awk '{print substr($NF,length($NF))}') found=$(find . -name "$file") diff --git a/WEGA/src/lib/libc/csu/crt0.s b/WEGA/src/lib/libc/csu/crt0.s index cc08b0c..2d0d825 100644 --- a/WEGA/src/lib/libc/csu/crt0.s +++ b/WEGA/src/lib/libc/csu/crt0.s @@ -1,5 +1,9 @@ ! @[$] crt0.s Rev : 3.2 09/12/83 00:05:03 ! +! @[$] crt0.s Rev : 3.2 09/12/83 00:05:03 ! + +! @[$] crt0.s Rev : 3.2 09/12/83 00:05:03 ! + crt0 module internal diff --git a/WEGA/src/lib/libc/s b/WEGA/src/lib/libc/s index f238b7f..57c1a59 100755 --- a/WEGA/src/lib/libc/s +++ b/WEGA/src/lib/libc/s @@ -10,10 +10,10 @@ cat < $func.s $func module external - _cerror + cerror procedure global - $func procedure + _$func procedure entry ld r0,r7 EOF @@ -38,7 +38,7 @@ cat <> $func.s ld r2,r4 ret nc jp cerror - end $func + end _$func end $func EOF diff --git a/WEGA/src/lib/libc/sys/Makefile b/WEGA/src/lib/libc/sys/Makefile index b810735..696f0ff 100644 --- a/WEGA/src/lib/libc/sys/Makefile +++ b/WEGA/src/lib/libc/sys/Makefile @@ -1,12 +1,13 @@ AS= as ASFLAGS= -OBJ= access.o acct.o alarm.o brk.o chdir.o chmod.o chown.o close.o creat.o \ - dup.o execl.o execle.o execv.o execve.o exit.o fcntl.o fork.o fstat.o \ - getegid.o geteuid.o getgid.o getpid.o getppid.o getuid.o ioctl.o \ - kill.o link.o lseek.o mknod.o mount.o nice.o open.o pause.o pipe.o \ - profil.o ptrace.o read.o setgid.o setpgrp.o setuid.o signal.o stat.o \ +OBJ= access.o acct.o alarm.o brk.o chdir.o chmod.o chown.o chroot.o close.o \ + creat.o dup.o dup2.o execl.o execle.o execlp.o execv.o execve.o exit.o \ + fcntl.o fork.o fstat.o ftime.o getegid.o geteuid.o getgid.o getpgrp.o \ + getpid.o getppid.o getuid.o ioctl.o kill.o link.o lkdata.o lock.o \ + lseek.o mdmctl.o mknod.o mount.o nice.o open.o pause.o pipe.o profil.o \ + ptrace.o read.o setgid.o setpgrp.o setuid.o signal.o sptrace.o stat.o \ stime.o sync.o time.o times.o ulimit.o umask.o umount.o uname.o \ - unlink.o ustat.o utime.o wait.o write.o + unlink.o unlk.o ustat.o utime.o wait.o write.o all: $(OBJ) diff --git a/WEGA/src/lib/libc/sys/chroot.s b/WEGA/src/lib/libc/sys/chroot.s new file mode 100644 index 0000000..f0950ec --- /dev/null +++ b/WEGA/src/lib/libc/sys/chroot.s @@ -0,0 +1,18 @@ +! @[$] chroot.s 2.1 09/12/83 11:40:07 - 87wega3.2 ! + +chroot module + + external + cerror procedure + + global + _chroot procedure + entry + ld r0,r7 + xor r4,r4 + sc #61 + ld r2,r4 + ret nc + jp cerror + end _chroot +end chroot diff --git a/WEGA/src/lib/libc/sys/dup2.s b/WEGA/src/lib/libc/sys/dup2.s new file mode 100644 index 0000000..03efde2 --- /dev/null +++ b/WEGA/src/lib/libc/sys/dup2.s @@ -0,0 +1,19 @@ +! @[$] dup2.s 2.1 09/12/83 11:40:25 - 87wega3.2 ! + +dup2 module + + external + cerror procedure + + global + _dup2 procedure + entry + ld r0,r7 + ld r1,r6 + set r0,#6 + sc #41 + ld r2,r4 + ret nc + jp cerror + end _dup2 +end dup2 diff --git a/WEGA/src/lib/libc/sys/execlp.s b/WEGA/src/lib/libc/sys/execlp.s new file mode 100644 index 0000000..7fb9372 --- /dev/null +++ b/WEGA/src/lib/libc/sys/execlp.s @@ -0,0 +1,24 @@ +! @[$] execlp.s 2.2 09/12/83 11:23:49 - 87wega3.2 ! + +execlp module + + external + _execvp procedure + + global + _execlp procedure + entry + ex r2,@r15 + push @r15,r3 + push @r15,r4 + push @r15,r5 + push @r15,r6 + ld r6,r15 + push @r15,r2 + call _execvp + ld r1,@r15 + inc r15,#12 + jp @r1 + end _execlp +end execlp + diff --git a/WEGA/src/lib/libc/sys/ftime.s b/WEGA/src/lib/libc/sys/ftime.s new file mode 100644 index 0000000..3535e96 --- /dev/null +++ b/WEGA/src/lib/libc/sys/ftime.s @@ -0,0 +1,18 @@ +! @[$] ftime.s 2.1 09/12/83 11:41:12 - 87wega3.2 ! + +ftime module + + external + cerror procedure + + global + _ftime procedure + entry + ld r0,r7 + xor r4,r4 + sc #35 + ld r2,r4 + ret nc + jp cerror + end _ftime +end ftime diff --git a/WEGA/src/lib/libc/sys/getpgrp.s b/WEGA/src/lib/libc/sys/getpgrp.s new file mode 100644 index 0000000..fbad114 --- /dev/null +++ b/WEGA/src/lib/libc/sys/getpgrp.s @@ -0,0 +1,18 @@ +! @[$] getpgrp.s 1.1 09/12/83 11:41:27 - 87wega3.2 ! + +getpgrp module + + external + cerror procedure + + global + _getpgrp procedure + entry + xor r0,r0 + xor r4,r4 + sc #39 + ld r2,r4 + ret nc + jp cerror + end _getpgrp +end getpgrp diff --git a/WEGA/src/lib/libc/sys/lkdata.s b/WEGA/src/lib/libc/sys/lkdata.s new file mode 100644 index 0000000..7d6827f --- /dev/null +++ b/WEGA/src/lib/libc/sys/lkdata.s @@ -0,0 +1,19 @@ +! @[$] lkdata.s 2.1 09/12/83 11:41:55 - 87wega3.2! + +lkdata module + + external + cerror procedure + + global + _lkdata procedure + entry + ld r0,r7 + ld r1,r6 + ld r2,r5 + sc #49 + ldl rr2,rr4 + ret nc + jp cerror + end _lkdata +end lkdata diff --git a/WEGA/src/lib/libc/sys/lock.s b/WEGA/src/lib/libc/sys/lock.s new file mode 100644 index 0000000..1bdbcae --- /dev/null +++ b/WEGA/src/lib/libc/sys/lock.s @@ -0,0 +1,18 @@ +! @[$] lock.s 2.1 09/12/83 11:41:58 - 87wega3.2 ! + +lock module + + external + cerror procedure + + global + _lock procedure + entry + ld r0,r7 + xor r4,r4 + sc #53 + ld r2,r4 + ret nc + jp cerror + end _lock +end lock diff --git a/WEGA/src/lib/libc/sys/mdmctl.s b/WEGA/src/lib/libc/sys/mdmctl.s new file mode 100644 index 0000000..bab2516 --- /dev/null +++ b/WEGA/src/lib/libc/sys/mdmctl.s @@ -0,0 +1,19 @@ +! @[$] mdmctl.s 2.2 09/12/83 11:42:19 - 87wega3.2 ! + +mdmctl module + + external + cerror procedure + + global + _mdmctl procedure + entry + ld r0,r7 + ld r1,r6 + ld r2,r5 + sc #62 + jp c,cerror + xor r2,r2 + ret + end _mdmctl +end mdmctl diff --git a/WEGA/src/lib/libc/sys/signal.s b/WEGA/src/lib/libc/sys/signal.s index a902371..34363cf 100644 --- a/WEGA/src/lib/libc/sys/signal.s +++ b/WEGA/src/lib/libc/sys/signal.s @@ -1,75 +1,75 @@ ! @[$] signal.s 2.1 09/12/83 11:43:15 - 87wega3.2 ! -signal module - -$SECTION signal_b - - internal - L1 - ARRAY [20 WORD] - -$SDEFAULT - - external - cerror procedure - - global - _signal procedure - entry - ld r2,#22 - ld r0,r7 - ld r1,r6 - cp r0,#%0014 - jp ge,cerror - ld r3,r0 - sla r3,#1 - ld r2,L1(r3) - ld L1(r3),r1 - rr r1,#1 - rl r1,#1 - jr ule,L2 - lda r1,L5(r3) -L2: - sc #48 - bit r4,#0 - jr z,L4 - ld r2,r4 -L4: - ret nc - jp cerror -L5: - calr L7 -L6: - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 - calr L7 -L7: - - sub r15,#30 - ldm @r15,r0,#15 - ld r7,30(r15) - sub r7,#L6 - ld r2,L1(r7) - srl r7,#1 - call @r2 - ldm r0,@r15,#15 - add r15,#32 - sc #0 - end _signal -end signal +signal module + +$SECTION signal_b + + internal + L1 + ARRAY [20 WORD] + +$SDEFAULT + + external + cerror procedure + + global + _signal procedure + entry + ld r2,#22 + ld r0,r7 + ld r1,r6 + cp r0,#%0014 + jp ge,cerror + ld r3,r0 + sla r3,#1 + ld r2,L1(r3) + ld L1(r3),r1 + rr r1,#1 + rl r1,#1 + jr ule,L2 + lda r1,L5(r3) +L2: + sc #48 + bit r4,#0 + jr z,L4 + ld r2,r4 +L4: + ret nc + jp cerror +L5: + calr L7 +L6: + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 + calr L7 +L7: + + sub r15,#30 + ldm @r15,r0,#15 + ld r7,30(r15) + sub r7,#L6 + ld r2,L1(r7) + srl r7,#1 + call @r2 + ldm r0,@r15,#15 + add r15,#32 + sc #0 + end _signal +end signal diff --git a/WEGA/src/lib/libc/sys/sptrace.s b/WEGA/src/lib/libc/sys/sptrace.s new file mode 100644 index 0000000..a3fbbda --- /dev/null +++ b/WEGA/src/lib/libc/sys/sptrace.s @@ -0,0 +1,24 @@ +! @[$] sptrace.s 2.2 09/12/83 11:43:19 - 87wega3.2 ! + +sptrace module + + external + cerror procedure + _errno word + + global + _sptrace procedure + entry + xor r0,r0 + ld _errno,r0 + ld r0,r7 + ld r1,r6 + ld r6,r3 + ldl rr2,rr4 + ld r4,r6 + sc #58 + ld r2,r4 + ret nc + jp cerror + end _sptrace +end sptrace diff --git a/WEGA/src/lib/libc/sys/unlk.s b/WEGA/src/lib/libc/sys/unlk.s new file mode 100644 index 0000000..4a0315c --- /dev/null +++ b/WEGA/src/lib/libc/sys/unlk.s @@ -0,0 +1,19 @@ +! @[$] unlk.s 2.1 09/12/83 11:44:04 - 87wega3.2 ! + +unlk module + + external + cerror procedure + + global + _unlk procedure + entry + ld r0,r7 + ld r1,r6 + ld r2,r5 + sc #50 + ldl rr2,rr4 + ret nc + jp cerror + end _unlk +end unlk