[Wisp-cvs] wisp/src/native sys.s,1.6,1.7 sys.wth,1.7,1.8 sys_raw.nasm,1.48,1.49
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2002-09-13 16:35:36
|
Update of /cvsroot/wisp/wisp/src/native In directory usw-pr-cvs1:/tmp/cvs-serv10070/src/native Modified Files: sys.s sys.wth sys_raw.nasm Log Message: Dropped |sys:raw:read|, |sys:raw:write|, |sys:raw:open|, and |sys:raw:waitpid| in favour of the new corresponding low-level non-signalling procedures. Index: sys.s =================================================================== RCS file: /cvsroot/wisp/wisp/src/native/sys.s,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- sys.s 11 Sep 2002 17:36:48 -0000 1.6 +++ sys.s 13 Sep 2002 16:35:33 -0000 1.7 @@ -211,6 +211,146 @@ .equiv struct_stat2list.L25, struct_stat2list + 451 .section .text .align 16 +N_sys_ns_write: +.byte 144,81,131,249,4,15,132,8,0,0,0,88,137,193,233 +.long N_signal_argcount - (.+4) +.byte 88,184,3,0,0,0,139,28,132,104 +.long N_sys_ns_write.L1 +.byte 83,233 +.long decui$1 - (.+4) +.byte 80,184,3,0,0,0,139,28,132,137,216,37,3,0,0,0,83,83,133,192,15,132 +.byte 8,0,0,0,88,106,19,233,22,0,0,0,88,80,133,192,15,133,8,0,0,0,88,106 +.byte 19,233,4,0,0,0,88,139,0,80,88,61,9,0,0,0,15,132,12,0,0,0,88,104 +.long WB_c8string_huh +.byte 80,233 +.long raise$2 - (.+4) +.byte 88,5,4,0,0,0,139,0,80,184,3,0,0,0,139,28,132,104 +.long N_sys_ns_write.L7 +.byte 83,233 +.long decui$1 - (.+4) +.byte 80,184,3,0,0,0,139,28,132,104 +.long N_sys_ns_write.L8 +.byte 83,233 +.long decui$1 - (.+4) +.byte 80,184,2,0,0,0,139,28,132,83,184,2,0,0,0,139,28,132,88,57,216,15 +.byte 131,19,0,0,0,184,5,0,0,0,139,28,132,104 +.long WB_range +.byte 83,233 +.long raise$2 - (.+4) +.byte 184,2,0,0,0,139,28,132,83,184,2,0,0,0,139,28,132,88,41,216,80,184 +.byte 1,0,0,0,139,28,132,88,57,216,15,131,19,0,0,0,184,4,0,0,0,139,28 +.byte 132,104 +.long WB_range +.byte 83,233 +.long raise$2 - (.+4) +.byte 88,187,3,0,0,0,137,4,156,88,187,3,0,0,0,137,4,156,88,88,187,3,0,0 +.byte 0,137,4,156,88,91,89,137,207,131,199,8,139,9,83,80,87,131,249,9,15 +.byte 133,4,0,0,0,88,139,0,80,88,91,89,1,200,137,218,137,193,88,137,195 +.byte 184,4,0,0,0,205,128,80,233 +.long encsi$1 - (.+4) +.global N_sys_ns_write,NN_sys_ns_write,N_sys_ns_write.L1,N_sys_ns_write.L7,N_sys_ns_write.L8 +.equiv NN_sys_ns_write, N_sys_ns_write + 1 +.equiv N_sys_ns_write.L1, N_sys_ns_write + 39 +.equiv N_sys_ns_write.L7, N_sys_ns_write + 147 +.equiv N_sys_ns_write.L8, N_sys_ns_write + 167 +.section .text +.align 16 +N_sys_ns_waitpid: +.byte 144,81,131,249,2,15,132,8,0,0,0,88,137,193,233 +.long N_signal_argcount - (.+4) +.byte 88,88,91,80,104 +.long N_sys_ns_waitpid.L1 +.byte 83,233 +.long decsi$1 - (.+4) +.byte 91,80,104 +.long N_sys_ns_waitpid.L2 +.byte 83,233 +.long decui$1 - (.+4) +.byte 137,194,88,137,195,131,236,4,137,225,184,7,0,0,0,205,128,80,133 +.byte 192,15,143,3,0,0,0,88,91,80,88,80,133,192,15,142,17,1,0,0,88,91 +.byte 137,217,129,225,128,0,0,0,80,83,133,201,15,132,23,0,0,0,104 +.long N_sys_ns_waitpid.L6 +.byte 104 +.long WB_core +.byte 106,0,233 +.long cons$2 - (.+4) +.byte 80,233,2,0,0,0,106,0,88,91,137,217,131,225,127,83,80,133,201,15 +.byte 133,58,0,0,0,88,91,193,235,8,129,227,255,0,0,0,80,104 +.long N_sys_ns_waitpid.L9 +.byte 83,233 +.long encui$1 - (.+4) +.byte 91,104 +.long N_sys_ns_waitpid.L10 +.byte 80,83,233 +.long cons$2 - (.+4) +.byte 104 +.long N_sys_ns_waitpid.L11 +.byte 104 +.long WB_exit +.byte 80,233 +.long cons$2 - (.+4) +.byte 80,233,120,0,0,0,88,91,137,217,129,225,255,0,0,0,83,80,131,249,127 +.byte 15,133,52,0,0,0,88,91,131,227,127,80,104 +.long N_sys_ns_waitpid.L14 +.byte 83,233 +.long encui$1 - (.+4) +.byte 91,104 +.long N_sys_ns_waitpid.L15 +.byte 80,83,233 +.long cons$2 - (.+4) +.byte 104 +.long N_sys_ns_waitpid.L16 +.byte 104 +.long WB_stop +.byte 80,233 +.long cons$2 - (.+4) +.byte 80,233,47,0,0,0,88,91,131,227,127,80,104 +.long N_sys_ns_waitpid.L18 +.byte 83,233 +.long encui$1 - (.+4) +.byte 91,104 +.long N_sys_ns_waitpid.L19 +.byte 80,83,233 +.long cons$2 - (.+4) +.byte 104 +.long N_sys_ns_waitpid.L20 +.byte 104 +.long WB_signal +.byte 80,233 +.long cons$2 - (.+4) +.byte 80,88,91,80,104 +.long N_sys_ns_waitpid.L21 +.byte 83,233 +.long encui$1 - (.+4) +.byte 91,104 +.long N_sys_ns_waitpid.L22 +.byte 80,83,233 +.long cons$2 - (.+4) +.byte 80,233,31,0,0,0,88,80,133,192,15,133,8,0,0,0,88,106,19,233,13,0,0 +.byte 0,88,104 +.long N_sys_ns_waitpid.L26 +.byte 80,233 +.long encsi$1 - (.+4) +.byte 80,88,195 +.global N_sys_ns_waitpid,NN_sys_ns_waitpid,N_sys_ns_waitpid.L1,N_sys_ns_waitpid.L2,N_sys_ns_waitpid.L6,N_sys_ns_waitpid.L9,N_sys_ns_waitpid.L10,N_sys_ns_waitpid.L11,N_sys_ns_waitpid.L14,N_sys_ns_waitpid.L15,N_sys_ns_waitpid.L16,N_sys_ns_waitpid.L18,N_sys_ns_waitpid.L19,N_sys_ns_waitpid.L20,N_sys_ns_waitpid.L21,N_sys_ns_waitpid.L22,N_sys_ns_waitpid.L26 +.equiv NN_sys_ns_waitpid, N_sys_ns_waitpid + 1 +.equiv N_sys_ns_waitpid.L1, N_sys_ns_waitpid + 34 +.equiv N_sys_ns_waitpid.L2, N_sys_ns_waitpid + 47 +.equiv N_sys_ns_waitpid.L6, N_sys_ns_waitpid + 123 +.equiv N_sys_ns_waitpid.L9, N_sys_ns_waitpid + 171 +.equiv N_sys_ns_waitpid.L10, N_sys_ns_waitpid + 184 +.equiv N_sys_ns_waitpid.L11, N_sys_ns_waitpid + 200 +.equiv N_sys_ns_waitpid.L14, N_sys_ns_waitpid + 244 +.equiv N_sys_ns_waitpid.L15, N_sys_ns_waitpid + 257 +.equiv N_sys_ns_waitpid.L16, N_sys_ns_waitpid + 273 +.equiv N_sys_ns_waitpid.L18, N_sys_ns_waitpid + 296 +.equiv N_sys_ns_waitpid.L19, N_sys_ns_waitpid + 309 +.equiv N_sys_ns_waitpid.L20, N_sys_ns_waitpid + 325 +.equiv N_sys_ns_waitpid.L21, N_sys_ns_waitpid + 340 +.equiv N_sys_ns_waitpid.L22, N_sys_ns_waitpid + 353 +.equiv N_sys_ns_waitpid.L26, N_sys_ns_waitpid + 389 +.section .text +.align 16 N_sys_ns_unlink: .byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233 .long N_signal_argcount - (.+4) @@ -292,6 +432,50 @@ .equiv NN_sys_ns_rename, N_sys_ns_rename + 1 .section .text .align 16 +N_sys_ns_read: +.byte 144,81,131,249,4,15,132,8,0,0,0,88,137,193,233 +.long N_signal_argcount - (.+4) +.byte 88,184,3,0,0,0,139,28,132,104 +.long N_sys_ns_read.L1 +.byte 83,233 +.long decui$1 - (.+4) +.byte 80,184,3,0,0,0,139,28,132,137,216,37,3,0,0,0,83,83,133,192,15,132 +.byte 8,0,0,0,88,106,19,233,22,0,0,0,88,80,133,192,15,133,8,0,0,0,88,106 +.byte 19,233,4,0,0,0,88,139,0,80,88,61,9,0,0,0,15,132,12,0,0,0,88,104 +.long WB_c8string_huh +.byte 80,233 +.long raise$2 - (.+4) +.byte 88,5,4,0,0,0,139,0,80,184,3,0,0,0,139,28,132,104 +.long N_sys_ns_read.L7 +.byte 83,233 +.long decui$1 - (.+4) +.byte 80,184,3,0,0,0,139,28,132,104 +.long N_sys_ns_read.L8 +.byte 83,233 +.long decui$1 - (.+4) +.byte 80,184,2,0,0,0,139,28,132,83,184,2,0,0,0,139,28,132,88,57,216,15 +.byte 131,19,0,0,0,184,5,0,0,0,139,28,132,104 +.long WB_range +.byte 83,233 +.long raise$2 - (.+4) +.byte 184,2,0,0,0,139,28,132,83,184,2,0,0,0,139,28,132,88,41,216,80,184 +.byte 1,0,0,0,139,28,132,88,57,216,15,131,19,0,0,0,184,4,0,0,0,139,28 +.byte 132,104 +.long WB_range +.byte 83,233 +.long raise$2 - (.+4) +.byte 88,187,3,0,0,0,137,4,156,88,187,3,0,0,0,137,4,156,88,88,187,3,0,0 +.byte 0,137,4,156,88,91,89,137,207,131,199,8,139,9,83,80,87,131,249,9,15 +.byte 133,4,0,0,0,88,139,0,80,88,91,89,1,200,137,218,137,193,88,137,195 +.byte 184,3,0,0,0,205,128,80,233 +.long encsi$1 - (.+4) +.global N_sys_ns_read,NN_sys_ns_read,N_sys_ns_read.L1,N_sys_ns_read.L7,N_sys_ns_read.L8 +.equiv NN_sys_ns_read, N_sys_ns_read + 1 +.equiv N_sys_ns_read.L1, N_sys_ns_read + 39 +.equiv N_sys_ns_read.L7, N_sys_ns_read + 147 +.equiv N_sys_ns_read.L8, N_sys_ns_read + 167 +.section .text +.align 16 N_sys_ns_pipe: .byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233 .long N_signal_argcount - (.+4) @@ -316,6 +500,27 @@ .equiv N_sys_ns_pipe.L6, N_sys_ns_pipe + 96 .section .text .align 16 +N_sys_ns_open: +.byte 144,81,131,249,3,15,132,8,0,0,0,88,137,193,233 +.long N_signal_argcount - (.+4) +.byte 88,88,91,89,83,80,81,232 +.long ws2zt - (.+4) +.byte 91,91,89,83,80,104 +.long N_sys_ns_open.L1 +.byte 81,233 +.long decui$1 - (.+4) +.byte 91,89,83,80,104 +.long N_sys_ns_open.L2 +.byte 81,233 +.long decui$1 - (.+4) +.byte 137,194,88,137,193,88,137,195,184,5,0,0,0,205,128,80,233 +.long encsi$1 - (.+4) +.global N_sys_ns_open,NN_sys_ns_open,N_sys_ns_open.L1,N_sys_ns_open.L2 +.equiv NN_sys_ns_open, N_sys_ns_open + 1 +.equiv N_sys_ns_open.L1, N_sys_ns_open + 47 +.equiv N_sys_ns_open.L2, N_sys_ns_open + 62 +.section .text +.align 16 N_sys_ns_nanosleep: .byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233 .long N_signal_argcount - (.+4) @@ -631,7 +836,7 @@ .long N_sys_exit.L2 .byte 80,233 .long decui$1 - (.+4) -.byte 80,61,0,1,0,0,15,140,13,0,0,0,88,88,104 +.byte 80,61,0,1,0,0,15,130,13,0,0,0,88,88,104 .long WB_range .byte 80,233 .long raise$2 - (.+4) Index: sys.wth =================================================================== RCS file: /cvsroot/wisp/wisp/src/native/sys.wth,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- sys.wth 11 Sep 2002 17:36:48 -0000 1.7 +++ sys.wth 13 Sep 2002 16:35:33 -0000 1.8 @@ -11,7 +11,11 @@ (extern WB_c8string_huh) (extern WB_cons_huh) +(extern WB_core) +(extern WB_exit) (extern WB_range) +(extern WB_signal) +(extern WB_stop) (extern cons$2) (extern decsi$1) (extern decui$1) @@ -33,7 +37,7 @@ sys.time (flush) 'encsi$1 jump) (native sys_exit dup 0 = if ZERO swap 1+ then dup 1 = argc drop - dup decui dup 256 >= if drop 'WB_range swap go-raise then sys.exit) + dup decui dup 256 u>= if drop 'WB_range swap go-raise then sys.exit) (native sys_getegid dup 0 = argc drop sys.getegid (flush) 'encui$1 jump) @@ -113,6 +117,10 @@ nip nip (flush) 'encsi$1 jump then) +(native sys_ns_open dup 3 = argc drop + rot ws->zt rot decui rot decui + sys.open (flush) 'encsi$1 jump) + (native sys_ns_pipe dup 0 = argc drop sys.pipe dup 0 < if (flush) 'encsi$1 jump @@ -120,6 +128,25 @@ (flush) swap encui swap encui (flush) 'cons$2 jump then) +(native sys_ns_read dup 4 = argc drop ; ( fd buffer delta amount ) + 3 dig decui + 3 dig dup get-type + NC_C8STRING <> if 'WB_c8string_huh swap go-raise then cell+ cell@ + 3 dig decui 3 dig decui + ; ( fd buffer delta amount *fd *length *delta *amount ) + + ; assert *length >= *delta + 2 dig 2 dig u< if 5 dig 'WB_range swap go-raise then + + ; assert (*length - *delta) >= *amount + 2 dig 2 dig - 1 dig u< if 4 dig 'WB_range swap go-raise then + + 3 bury 3 bury drop 3 bury ; ( *fd buffer *delta *amount ) + + ; read + rot string-data rot + swap sys.read + (flush) 'encsi$1 jump) + (native sys_ns_rename dup 2 = argc drop swap ws->zt swap ws->zt sys.rename (flush) 'encsi$1 jump) @@ -137,6 +164,53 @@ (native sys_ns_unlink dup 1 = argc drop ws->zt sys.unlink (flush) 'encsi$1 jump) + +(native sys_ns_waitpid dup 2 = argc drop ; ( pid options ) + swap decsi swap decui + sys.waitpid + dup 0 > if swap ; ( pid status ) + dup WCOREDUMP if + 'WB_core NULL cons + else + NULL + then + ; ( pid status res ) + over WIFEXITED if + swap WEXITSTATUS encui swap cons 'WB_exit swap cons + else + over WIFSTOPPED if + swap WTERMSIG encui swap cons 'WB_stop swap cons + else ; assume WIFSIGNALED + swap WTERMSIG encui swap cons 'WB_signal swap cons + then + then + swap encui swap cons + else + dup 0 = if + drop FALSE + else + encsi + then + then) + +(native sys_ns_write dup 4 = argc drop ; ( fd buffer delta amount ) + 3 dig decui + 3 dig dup get-type + NC_C8STRING <> if 'WB_c8string_huh swap go-raise then cell+ cell@ + 3 dig decui 3 dig decui + ; ( fd buffer delta amount *fd *length *delta *amount ) + + ; assert *length >= *delta + 2 dig 2 dig u< if 5 dig 'WB_range swap go-raise then + + ; assert (*length - *delta) >= *amount + 2 dig 2 dig - 1 dig u< if 4 dig 'WB_range swap go-raise then + + 3 bury 3 bury drop 3 bury ; ( *fd buffer *delta *amount ) + + ; read + rot string-data rot + swap sys.write + (flush) 'encsi$1 jump) ; stat, fstat, lstat need this (defun struct_stat2list swap Index: sys_raw.nasm =================================================================== RCS file: /cvsroot/wisp/wisp/src/native/sys_raw.nasm,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- sys_raw.nasm 11 Sep 2002 17:36:48 -0000 1.48 +++ sys_raw.nasm 13 Sep 2002 16:35:33 -0000 1.49 @@ -8,16 +8,5 @@ ident '@(#) $Id$' -%macro untag 1-* - %rep %0 - and %1.low.low, 0xfc - %rotate 1 - %endrep -%endmacro - native_syscall execve, 3 native_syscall ioctl, 3 -native_syscall open, 3 -native_syscall read, 3 -native_syscall waitpid, 3, untag ecx ; so that a cons can be used -native_syscall write, 3 |