diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libc/9syscall |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libc/9syscall')
-rwxr-xr-x | sys/src/libc/9syscall/mkfile | 145 | ||||
-rwxr-xr-x | sys/src/libc/9syscall/sys.h | 50 |
2 files changed, 195 insertions, 0 deletions
diff --git a/sys/src/libc/9syscall/mkfile b/sys/src/libc/9syscall/mkfile new file mode 100755 index 000000000..081310e34 --- /dev/null +++ b/sys/src/libc/9syscall/mkfile @@ -0,0 +1,145 @@ +NPROC=1 +</$objtype/mkfile + +install:V: + SYS=`{sed '/^#define._X[123]/d; s/#define.([A-Z0-9_]*).*/\1/' sys.h} + for(I in $SYS) { + i=`{echo $I|tr A-Z a-z} + n=`{sed -n '/[ ]'$I'[ ]/s/.* //p' sys.h} + if(~ $i exits) i=_exits + {switch($objtype){ + case 68000 68020 + echo TEXT $i'(SB)', 1, '$0' + echo MOVL '$'$n, R0 + echo TRAP '$0' + echo RTS + case mips + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R1, '0(FP)' + echo MOVW '$'$n, R1 + echo SYSCALL + if(~ $i seek) { + echo 'MOVW $-1,R5 + BNE R1,R5,4(PC) + MOVW a+0(FP),R5 + MOVW R1,0(R5) + MOVW R1,4(R5)' + } + echo RET + case mips2 + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R1, '0(FP)' + echo MOVW '$'$n, R1 + echo ADD '$4',R29 + echo SYSCALL + echo ADD '$-4',R29 + echo RET + case spim + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R1, '0(FP)' + echo MOVW '$'$n, R1 + echo ADD '$4',R29 + echo SYSCALL + echo ADD '$-4',R29 + if(~ $i seek) { # untested so far - geoff + echo 'MOVW $-1,R5 + BNE R1,R5,4(PC) + MOVW a+0(FP),R5 + MOVW R1,0(R5) + MOVW R1,4(R5)' + } + echo RET + case 386 + echo TEXT $i'(SB)', 1, '$0' + echo MOVL '$'$n, AX + echo INT '$'64 + if(~ $i seek) { + echo 'CMPL AX,$-1 + JNE 4(PC) + MOVL a+0(FP),CX + MOVL AX,0(CX) + MOVL AX,4(CX)' + } + echo RET + case amd64 + if(~ $i seek) + echo TEXT _seek'(SB)', 1, '$0' + if not + echo TEXT $i'(SB)', 1, '$0' + echo MOVQ RARG, 'a0+0(FP)' + echo MOVQ '$'$n, RARG + echo SYSCALL + echo RET + case sparc sparc64 + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R7, '0(FP)' + echo MOVW '$'$n, R7 + echo TA R0 + if(~ $i seek) { + echo 'CMP R7,$-1 + BNE 4(PC) + MOVW a+0(FP),R8 + MOVW R7,0(R8) + MOVW R7,4(R8)' + } + echo RETURN + case 3210 + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R3, '0(FP)' + echo MOVW '$'$n, R3 + echo WORD '$0x06000000' + echo RETURN + case 29000 + echo TEXT $i'(SB)', 1, '$0' + echo MOVL R69, '0(FP)' + echo MOVL '$'$n, R69 + echo EMULATE 0 + echo RET + case arm + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R0, '0(FP)' + echo MOVW '$'$n, R0 + echo SWI 0 + if(~ $i seek) { + echo 'CMP $-1,R0 + BNE 4(PC) + MOVW a+0(FP),R1 + MOVW R0,0(R1) + MOVW R0,4(R1)' + } + echo RET + case power + echo TEXT $i'(SB)', 1, '$0' + echo MOVW R3, '0(FP)' + echo MOVW '$'$n, R3 + echo SYSCALL + if(~ $i seek) { + echo 'CMP R3,$-1 + BNE 4(PC) + MOVW a+0(FP),R8 + MOVW R3,0(R8) + MOVW R3,4(R8)' + } + echo RETURN + case alpha + j=$i + if(~ $i seek) j=_seek + echo TEXT $j'(SB)', 1, '$0' + echo MOVL R0, '0(FP)' + echo MOVQ '$'$n, R0 + echo CALL_PAL '$'0x83 + echo RET + }} > $i.s + $AS $i.s + } + ar vu /$objtype/lib/libc.a *.$O + rm -f *.$O *.s + +nuke clean:V: + rm -f *.[$OS] + +installall:V: + for(objtype in $CPUS) mk install + +update:V: + update $UPDATEFLAGS mkfile sys.h diff --git a/sys/src/libc/9syscall/sys.h b/sys/src/libc/9syscall/sys.h new file mode 100755 index 000000000..105baf89c --- /dev/null +++ b/sys/src/libc/9syscall/sys.h @@ -0,0 +1,50 @@ +#define SYSR1 0 +#define _ERRSTR 1 +#define BIND 2 +#define CHDIR 3 +#define CLOSE 4 +#define DUP 5 +#define ALARM 6 +#define EXEC 7 +#define EXITS 8 +#define _FSESSION 9 +#define FAUTH 10 +#define _FSTAT 11 +#define SEGBRK 12 +#define _MOUNT 13 +#define OPEN 14 +#define _READ 15 +#define OSEEK 16 +#define SLEEP 17 +#define _STAT 18 +#define RFORK 19 +#define _WRITE 20 +#define PIPE 21 +#define CREATE 22 +#define FD2PATH 23 +#define BRK_ 24 +#define REMOVE 25 +#define _WSTAT 26 +#define _FWSTAT 27 +#define NOTIFY 28 +#define NOTED 29 +#define SEGATTACH 30 +#define SEGDETACH 31 +#define SEGFREE 32 +#define SEGFLUSH 33 +#define RENDEZVOUS 34 +#define UNMOUNT 35 +#define _WAIT 36 +#define SEMACQUIRE 37 +#define SEMRELEASE 38 +#define SEEK 39 +#define FVERSION 40 +#define ERRSTR 41 +#define STAT 42 +#define FSTAT 43 +#define WSTAT 44 +#define FWSTAT 45 +#define MOUNT 46 +#define AWAIT 47 +#define PREAD 50 +#define PWRITE 51 |