[Wisp-cvs] wisp/src/native death.s,NONE,1.1 death.wth,NONE,1.1 sys.s,NONE,1.1 sys.wth,NONE,1.1 .cvsi
Status: Alpha
Brought to you by:
digg
Update of /cvsroot/wisp/wisp/src/native
In directory usw-pr-cvs1:/tmp/cvs-serv28473/src/native
Modified Files:
.cvsignore Makefile.am boxes.s cons.s sys_raw.nasm
Added Files:
death.s death.wth sys.s sys.wth
Removed Files:
sys.nasm
Log Message:
Converted sys.nasm to sys.wth and death.c to death.wth .
--- NEW FILE: death.s ---
.section .text
.align 16
die:
.byte 88,232
.long strlen - (.+4)
.byte 186,13,0,0,0,185
.long _G0_
.byte 187,1,0,0,0,137,199,184,4,0,0,0,205,128,88,137,250,137,193,187,1,0
.byte 0,0,184,4,0,0,0,205,128,186,1,0,0,0,185
.long _G1_
.byte 187,1,0,0,0,184,4,0,0,0,205,128,187,1,0,0,0,184,1,0,0,0,205,128
.global die
.section .text
.align 16
_G1_:
.byte 10
.global _G1_
.section .text
.align 16
_G0_:
.byte 119,105,115,112,32,101,110,103,105,110,101,58,32
.global _G0_
--- NEW FILE: death.wth ---
;;;; death.wth - fatal error reporting
;;
;; Copyleft © 2002 by Andres Soolo (di...@us...)
;; This file is licensed under the GNU GPL v2. If you
;; don't know what that means, please do read the GPL.
;;
;;;; @(#) $Id: death.wth,v 1.1 2002/09/04 14:26:57 digg Exp $
(include linux)
(extern strlen)
(defun die ; one argument: a null-terminated string
drop ; we aren't going to return
(flush) strlen (believe %eax)
1 "wisp engine: " sys.write drop
1 -rot sys.write drop
1 "\n" sys.write drop
1 sys.exit)
; vim: ft=worth
--- NEW FILE: sys.s ---
.section .text
.align 16
N_sys_ns_kill:
.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_kill.L1
.byte 83,233
.long decsi$1 - (.+4)
.byte 91,80,104
.long N_sys_ns_kill.L2
.byte 83,233
.long decui$1 - (.+4)
.byte 137,193,88,137,195,184,37,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_kill,NN_sys_ns_kill,N_sys_ns_kill.L1,N_sys_ns_kill.L2
.equiv NN_sys_ns_kill, N_sys_ns_kill + 1
.equiv N_sys_ns_kill.L1, N_sys_ns_kill + 34
.equiv N_sys_ns_kill.L2, N_sys_ns_kill + 47
.section .text
.align 16
N_sys_ns_listen:
.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_listen.L1
.byte 83,233
.long decui$1 - (.+4)
.byte 91,80,104
.long N_sys_ns_listen.L2
.byte 83,233
.long decui$1 - (.+4)
.byte 91,80,83,187,4,0,0,0,137,225,184,102,0,0,0,205,128,91,91,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_listen,NN_sys_ns_listen,N_sys_ns_listen.L1,N_sys_ns_listen.L2
.equiv NN_sys_ns_listen, N_sys_ns_listen + 1
.equiv N_sys_ns_listen.L1, N_sys_ns_listen + 34
.equiv N_sys_ns_listen.L2, N_sys_ns_listen + 47
.section .text
.align 16
N_sys_ns_dup2:
.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_dup2.L1
.byte 83,233
.long decui$1 - (.+4)
.byte 91,80,104
.long N_sys_ns_dup2.L2
.byte 83,233
.long decui$1 - (.+4)
.byte 137,193,88,137,195,184,63,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_dup2,NN_sys_ns_dup2,N_sys_ns_dup2.L1,N_sys_ns_dup2.L2
.equiv NN_sys_ns_dup2, N_sys_ns_dup2 + 1
.equiv N_sys_ns_dup2.L1, N_sys_ns_dup2 + 34
.equiv N_sys_ns_dup2.L2, N_sys_ns_dup2 + 47
.section .text
.align 16
N_sys_ns_setpgid:
.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_setpgid.L1
.byte 83,233
.long decsi$1 - (.+4)
.byte 91,80,104
.long N_sys_ns_setpgid.L2
.byte 83,233
.long decsi$1 - (.+4)
.byte 137,193,88,137,195,184,57,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_setpgid,NN_sys_ns_setpgid,N_sys_ns_setpgid.L1,N_sys_ns_setpgid.L2
.equiv NN_sys_ns_setpgid, N_sys_ns_setpgid + 1
.equiv N_sys_ns_setpgid.L1, N_sys_ns_setpgid + 34
.equiv N_sys_ns_setpgid.L2, N_sys_ns_setpgid + 47
.section .text
.align 16
N_sys_ns_getpgid:
.byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,88,104
.long N_sys_ns_getpgid.L1
.byte 80,233
.long decsi$1 - (.+4)
.byte 137,195,184,132,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_getpgid,NN_sys_ns_getpgid,N_sys_ns_getpgid.L1
.equiv NN_sys_ns_getpgid, N_sys_ns_getpgid + 1
.equiv N_sys_ns_getpgid.L1, N_sys_ns_getpgid + 32
.section .text
.align 16
N_sys_ns_dup:
.byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,88,104
.long N_sys_ns_dup.L1
.byte 80,233
.long decui$1 - (.+4)
.byte 137,195,184,41,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_dup,NN_sys_ns_dup,N_sys_ns_dup.L1
.equiv NN_sys_ns_dup, N_sys_ns_dup + 1
.equiv N_sys_ns_dup.L1, N_sys_ns_dup + 32
.section .text
.align 16
N_sys_ns_close:
.byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,88,104
.long N_sys_ns_close.L1
.byte 80,233
.long decui$1 - (.+4)
.byte 137,195,184,6,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_close,NN_sys_ns_close,N_sys_ns_close.L1
.equiv NN_sys_ns_close, N_sys_ns_close + 1
.equiv N_sys_ns_close.L1, N_sys_ns_close + 32
.section .text
.align 16
N_sys_ns_fork:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,2,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_fork,NN_sys_ns_fork
.equiv NN_sys_ns_fork, N_sys_ns_fork + 1
.section .text
.align 16
N_sys_ns_setsid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,66,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_sys_ns_setsid,NN_sys_ns_setsid
.equiv NN_sys_ns_setsid, N_sys_ns_setsid + 1
.section .text
.align 16
N_sys_exit:
.byte 144,81,133,201,15,133,5,0,0,0,88,64,106,7,80,88,80,61,1,0,0,0,15
.byte 132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,88,80,104
.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
.long WB_range
.byte 80,233
.long raise$2 - (.+4)
.byte 88,137,195,184,1,0,0,0,205,128
.global N_sys_exit,NN_sys_exit,N_sys_exit.L2
.equiv NN_sys_exit, N_sys_exit + 1
.equiv N_sys_exit.L2, N_sys_exit + 50
.section .text
.align 16
N_sys_getegid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,50,0,0,0,205,128,80,233
.long encui$1 - (.+4)
.global N_sys_getegid,NN_sys_getegid
.equiv NN_sys_getegid, N_sys_getegid + 1
.section .text
.align 16
N_sys_getgid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,47,0,0,0,205,128,80,233
.long encui$1 - (.+4)
.global N_sys_getgid,NN_sys_getgid
.equiv NN_sys_getgid, N_sys_getgid + 1
.section .text
.align 16
N_sys_geteuid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,49,0,0,0,205,128,80,233
.long encui$1 - (.+4)
.global N_sys_geteuid,NN_sys_geteuid
.equiv NN_sys_geteuid, N_sys_geteuid + 1
.section .text
.align 16
N_sys_getuid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,24,0,0,0,205,128,80,233
.long encui$1 - (.+4)
.global N_sys_getuid,NN_sys_getuid
.equiv NN_sys_getuid, N_sys_getuid + 1
.section .text
.align 16
N_sys_getppid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,64,0,0,0,205,128,80,233
.long encui$1 - (.+4)
.global N_sys_getppid,NN_sys_getppid
.equiv NN_sys_getppid, N_sys_getppid + 1
.section .text
.align 16
N_sys_getpid:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,184,20,0,0,0,205,128,80,233
.long encui$1 - (.+4)
.global N_sys_getpid,NN_sys_getpid
.equiv NN_sys_getpid, N_sys_getpid + 1
.section .text
.align 16
N_unix_time:
.byte 144,81,133,201,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
.byte 88,187,0,0,0,0,184,13,0,0,0,205,128,80,233
.long encsi$1 - (.+4)
.global N_unix_time,NN_unix_time
.equiv NN_unix_time, N_unix_time + 1
--- NEW FILE: sys.wth ---
;;;; sys.wth - the syscall wrappers
;;
;; Copyleft © 2002 by Andres Soolo (di...@us...)
;; This file is licensed under the GNU GPL v2. If you
;; don't know what that means, please do read the GPL.
;;
;;;; @(#) $Id: sys.wth,v 1.1 2002/09/04 14:26:57 digg Exp $
(include linux)
(include wisptyp)
(extern WB_range)
(extern decsi$1)
(extern decui$1)
(extern encsi$1)
(extern encui$1)
(macro decsi <: swap (flush) 'decsi$1 jump :>)
(macro decui <: swap (flush) 'decui$1 jump :>)
(native unix_time dup 0 = argc drop
sys.time (flush) 'encsi$1 jump)
(native sys_getpid dup 0 = argc drop
sys.getpid (flush) 'encui$1 jump)
(native sys_getppid dup 0 = argc drop
sys.getppid (flush) 'encui$1 jump)
(native sys_getuid dup 0 = argc drop
sys.getuid (flush) 'encui$1 jump)
(native sys_geteuid dup 0 = argc drop
sys.geteuid (flush) 'encui$1 jump)
(native sys_getgid dup 0 = argc drop
sys.getgid (flush) 'encui$1 jump)
(native sys_getegid dup 0 = argc drop
sys.getegid (flush) 'encui$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)
;; The sys:ns:foo functions differ from sys:foo only in
;; that they do not themselves raise signals on error.
;; They return negative values instead.
(native sys_ns_setsid dup 0 = argc drop
sys.setsid (flush) 'encsi$1 jump)
(native sys_ns_fork dup 0 = argc drop
sys.fork (flush) 'encsi$1 jump)
(native sys_ns_close dup 1 = argc drop
decui sys.close (flush) 'encsi$1 jump)
(native sys_ns_dup dup 1 = argc drop
decui sys.dup (flush) 'encsi$1 jump)
(native sys_ns_getpgid dup 1 = argc drop
decsi sys.getpgid (flush) 'encsi$1 jump)
(native sys_ns_setpgid dup 2 = argc drop
swap decsi swap decsi sys.setpgid (flush) 'encsi$1 jump)
(native sys_ns_dup2 dup 2 = argc drop
swap decui swap decui sys.dup2 (flush) 'encsi$1 jump)
(native sys_ns_listen dup 2 = argc drop
swap decui swap decui sys.listen (flush) 'encsi$1 jump)
(native sys_ns_kill dup 2 = argc drop
swap decsi swap decui sys.kill (flush) 'encsi$1 jump)
; vim: ft=worth
Index: .cvsignore
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/.cvsignore,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- .cvsignore 22 Jul 2002 14:37:08 -0000 1.5
+++ .cvsignore 4 Sep 2002 14:26:56 -0000 1.6
@@ -1,5 +1,6 @@
*.o
*.prn
+*.was
.*.swp
.deps
Makefile
Index: Makefile.am
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/Makefile.am,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -d -r1.150 -r1.151
--- Makefile.am 26 Aug 2002 15:59:43 -0000 1.150
+++ Makefile.am 4 Sep 2002 14:26:57 -0000 1.151
@@ -14,17 +14,17 @@
base.inc linux_syscall.inc sysconst.inc \
apply.nasm bitstr_ref.nasm chars.nasm cxr.nasm integers.nasm \
list.nasm memset.nasm records.nasm ref.nasm resignal.nasm \
- signal.nasm strings.nasm sys.nasm sys_raw.nasm types.nasm \
- valloc.nasm vectors.nasm wrap.nasm \
- boxes.wth cons.wth \
- boxes.s cons.s
+ signal.nasm strings.nasm sys_raw.nasm types.nasm valloc.nasm \
+ vectors.nasm wrap.nasm \
+ boxes.wth cons.wth death.wth sys.wth \
+ boxes.s cons.s death.s sys.s
EXTRA_DIST = .cvsignore
noinst_LIBRARIES = libnative.a
libnative_a_LIBADD = native_call.o branches.o \
- apply.o bitstr_ref.o chars.o cons.o cxr.o integers.o list.o \
+ apply.o bitstr_ref.o chars.o cxr.o integers.o list.o \
memset.o records.o ref.o resignal.o signal.o strings.o sys.o \
sys_raw.o types.o valloc.o vectors.o wrap.o
Index: boxes.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/boxes.s,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- boxes.s 4 Sep 2002 14:25:41 -0000 1.5
+++ boxes.s 4 Sep 2002 14:26:57 -0000 1.6
@@ -12,10 +12,7 @@
.byte 61,35,0,0,0,15,133,7,0,0,0,106,11,233,2,0,0,0,106,19,88,195
.global N_box_empty_huh,NN_box_empty_huh,N_box_empty_huh.L1
.equiv NN_box_empty_huh, N_box_empty_huh + 1
-.equiv .L0, N_box_empty_huh + 19
.equiv N_box_empty_huh.L1, N_box_empty_huh + 47
-.equiv .L2, N_box_empty_huh + 65
-.equiv .L3, N_box_empty_huh + 67
.section .text
.align 16
N_box_empty:
@@ -25,7 +22,6 @@
.long N_box_ref - (.+4)
.global N_box_empty,NN_box_empty
.equiv NN_box_empty, N_box_empty + 1
-.equiv .L0, N_box_empty + 19
.section .text
.align 16
N_box_ref:
@@ -37,7 +33,6 @@
.long slot_accessor_body - (.+4)
.global N_box_ref,NN_box_ref
.equiv NN_box_ref, N_box_ref + 1
-.equiv .L0, N_box_ref + 21
.section .text
.align 16
box_ref.final:
@@ -47,7 +42,6 @@
.long raise$2 - (.+4)
.byte 88,91,195
.global box_ref.final
-.equiv .L0, box_ref.final + 25
.section .text
.align 16
N_make_box:
@@ -57,4 +51,3 @@
.long record_constructor_body - (.+4)
.global N_make_box,NN_make_box
.equiv NN_make_box, N_make_box + 1
-.equiv .L0, N_make_box + 15
Index: cons.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/cons.s,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cons.s 4 Sep 2002 14:25:41 -0000 1.3
+++ cons.s 4 Sep 2002 14:26:57 -0000 1.4
@@ -3,12 +3,10 @@
N_cons_huh:
.byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233
.long N_signal_argcount - (.+4)
-.byte 88,88,53,2,0,0,0,37,7,0,0,0,133,192,15,133,7,0,0,0,106,11,233,2,0,0,0,106,19,88,195
+.byte 88,88,53,2,0,0,0,37,7,0,0,0,133,192,15,133,7,0,0,0,106,11,233,2,0
+.byte 0,0,106,19,88,195
.global N_cons_huh,NN_cons_huh
.equiv NN_cons_huh, N_cons_huh + 1
-.equiv .L0, N_cons_huh + 19
-.equiv .L1, N_cons_huh + 46
-.equiv .L2, N_cons_huh + 48
.section .text
.align 16
N_cons:
@@ -19,5 +17,4 @@
.byte 91,91,137,193,131,193,4,137,25,91,137,24,13,2,0,0,0,195
.global N_cons,NN_cons,cons$2
.equiv NN_cons, N_cons + 1
-.equiv .L0, N_cons + 19
.equiv cons$2, N_cons + 20
Index: sys_raw.nasm
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/sys_raw.nasm,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- sys_raw.nasm 8 Aug 2002 16:46:39 -0000 1.42
+++ sys_raw.nasm 4 Sep 2002 14:26:57 -0000 1.43
@@ -18,18 +18,10 @@
native_syscall chdir, 1
native_syscall chmod, 2
native_syscall close, 1
-native_syscall dup, 1
-native_syscall dup2, 2
native_syscall execve, 3
-native_syscall exit, 1
native_syscall fcntl, 3
native_syscall ftruncate, 2
native_syscall getcwd, 2
-native_syscall getegid, 0
-native_syscall geteuid, 0
-native_syscall getgid, 0
-native_syscall getpgid, 1
-native_syscall getuid, 0
native_syscall ioctl, 3
native_syscall kill, 2
native_syscall link, 2
@@ -39,7 +31,6 @@
native_syscall pipe, 1, untag ebx ; so that a cons can be used
native_syscall read, 3
native_syscall rename, 2
-native_syscall setpgid, 2
native_syscall symlink, 2
native_syscall truncate, 2
native_syscall unlink, 1
@@ -48,4 +39,3 @@
native_syscall nanosleep, 2, {untag ebx, ecx}
native_socketcall accept, 3
-native_socketcall listen, 2
--- sys.nasm DELETED ---
|