Pārlūkot izejas kodu

Added entry points for ANSI C

ceriel 34 gadi atpakaļ
vecāks
revīzija
1fdf2d2e19

+ 29 - 1
mach/mantra/libsys/LIST

@@ -1,6 +1,5 @@
 libmon_s.a
 exit.s
-_exit.s
 access.s
 acct.s
 alarm.s
@@ -62,3 +61,32 @@ syscall.s
 call.s
 cleanup.s
 errno.s
+_alarm.s
+_brk.s
+_close.s
+_creat.s
+_dup.s
+_dup2.s
+_execl.s
+_execve.s
+_exit.s
+_fcntl.s
+_fork.s
+_fstat.s
+_ftime.s
+_getpid.s
+_gtty.s
+_ioctl.s
+_kill.s
+_link.s
+_lseek.s
+_open.s
+_pause.s
+_pipe.s
+_read.s
+_stty.s
+_time.s
+_times.s
+_unlink.s
+_wait.s
+_write.s

+ 12 - 0
mach/mantra/libsys/_alarm.s

@@ -0,0 +1,12 @@
+.define __alarm
+.extern __alarm
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__alarm:
+		move.l 4(sp),a0
+		move.l #0x1B,d0
+		trap #0
+		rts

+ 25 - 0
mach/mantra/libsys/_brk.s

@@ -0,0 +1,25 @@
+.define __brk
+.define __sbrk
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__sbrk:		move.l .limhp,a0
+		add.l  4(sp),a0
+		move.l #0x11,d0
+		trap #0
+		bcs Icerror
+		move.l .limhp,d0
+		move.l d0,a0
+		add.l  4(sp),a0
+		move.l a0,.limhp
+		rts
+Icerror:	jmp cerror
+__brk:		move.l #0x11,d0
+		move.l 4(sp),a0
+		trap #0
+		bcs Icerror
+		move.l 4(sp),.limhp
+		clr.l d0
+		rts

+ 10 - 0
mach/mantra/libsys/_close.s

@@ -0,0 +1,10 @@
+.define __close
+.extern __close
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__close:		move.l #0x6,d0
+		move.l 4(sp),a0
+		jmp callc

+ 11 - 0
mach/mantra/libsys/_creat.s

@@ -0,0 +1,11 @@
+.define __creat
+.extern __creat
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__creat:		move.l #0x8,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		jmp call

+ 10 - 0
mach/mantra/libsys/_dup.s

@@ -0,0 +1,10 @@
+.define __dup
+.extern __dup
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__dup:		move.l #0x29,d0
+		move.l 4(sp),a0
+		jmp call

+ 17 - 0
mach/mantra/libsys/_dup2.s

@@ -0,0 +1,17 @@
+.define __dup2
+.extern __dup2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__dup2:
+tst.b -40(sp)
+link	a6,#-0
+move.l 12(a6),-(sp)
+move.l #0,-(sp)
+move.l 8(a6),-(sp)
+jsr __fcntl
+add.l #12,sp
+unlk a6
+rts

+ 16 - 0
mach/mantra/libsys/_execl.s

@@ -0,0 +1,16 @@
+.define __execl
+.extern __execl
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__execl:		link a6,#0
+		tst.b -132(sp)
+		move.l _environ,-(sp)
+		pea 12(a6)
+		move.l 8(a6),-(sp)
+		jsr __execve
+		add.l #0xC,sp
+		unlk a6
+		rts

+ 12 - 0
mach/mantra/libsys/_execve.s

@@ -0,0 +1,12 @@
+.define __execve
+.extern __execve
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__execve:	move.l #0x3B,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		move.l 12(sp),a1
+		jmp calle

+ 12 - 0
mach/mantra/libsys/_fcntl.s

@@ -0,0 +1,12 @@
+.define __fcntl
+.extern __fcntl
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__fcntl:		move.l #0x3E,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		move.l 12(sp),a1
+		jmp callc

+ 17 - 0
mach/mantra/libsys/_fork.s

@@ -0,0 +1,17 @@
+.define __fork
+.extern __fork
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__fork:		move.l #0x2,d0
+		trap #0
+		bra 1f
+		bcc 2f
+		jmp cerror
+1:
+		!move.l d0,p_uid
+		clr.l d0
+2:
+		rts

+ 11 - 0
mach/mantra/libsys/_fstat.s

@@ -0,0 +1,11 @@
+.define __fstat
+.extern __fstat
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__fstat:		move.l	#0x1C,d0
+		move.l	4(sp),a0
+		move.l	8(sp),d1
+		jmp callc

+ 16 - 0
mach/mantra/libsys/_ftime.s

@@ -0,0 +1,16 @@
+.define __ftime
+.extern __ftime
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__ftime:		clr.l -(sp)
+		jsr __time
+		lea 4(sp),sp
+		move.l 4(sp),a0
+		move.l d0,(a0)
+		clr.l 4(a0)
+		clr.w 8(a0)
+		clr.l d0
+		rts

+ 10 - 0
mach/mantra/libsys/_getpid.s

@@ -0,0 +1,10 @@
+.define __getpid
+.extern __getpid
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__getpid:	move.l #0x14,d0
+		trap #0
+		rts

+ 17 - 0
mach/mantra/libsys/_gtty.s

@@ -0,0 +1,17 @@
+.define __gtty
+.extern __gtty
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__gtty:
+tst.b -40(sp)
+link	a6,#-0
+move.l 12(a6),-(sp)
+move.l #29704,-(sp)
+move.l 8(a6),-(sp)
+jsr __ioctl
+add.l #12,sp
+unlk a6
+rts

+ 12 - 0
mach/mantra/libsys/_ioctl.s

@@ -0,0 +1,12 @@
+.define __ioctl
+.extern __ioctl
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__ioctl:		move.l #0x36,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		move.l 12(sp),a1
+		jmp callc

+ 11 - 0
mach/mantra/libsys/_kill.s

@@ -0,0 +1,11 @@
+.define __kill
+.extern __kill
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__kill:		move.l #0x25,d0
+		move.l 4(sp),a0
+		move.l 6(sp),d1
+		jmp callc

+ 11 - 0
mach/mantra/libsys/_link.s

@@ -0,0 +1,11 @@
+.define __link
+.extern __link
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__link:		move.l #0x9,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		jmp callc

+ 12 - 0
mach/mantra/libsys/_lseek.s

@@ -0,0 +1,12 @@
+.define __lseek
+.extern __lseek
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__lseek:		move.l #0x13,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		move.l 12(sp),a1
+		jmp call

+ 11 - 0
mach/mantra/libsys/_open.s

@@ -0,0 +1,11 @@
+.define __open
+.extern __open
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__open:		move.l #0x5,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		jmp call

+ 10 - 0
mach/mantra/libsys/_pause.s

@@ -0,0 +1,10 @@
+.define __pause
+.extern __pause
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__pause:		move.l #0x1D,d0
+		trap #0
+		rts

+ 18 - 0
mach/mantra/libsys/_pipe.s

@@ -0,0 +1,18 @@
+.define __pipe
+.extern __pipe
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__pipe:		
+		move.l #0x2A,d0
+		trap #0
+		bcc 1f
+		jmp cerror
+1:
+		move.l 4(sp),a0
+		move.l d0,(a0)+
+		move.l d1,(a0)
+		clr.l d0
+		rts

+ 12 - 0
mach/mantra/libsys/_read.s

@@ -0,0 +1,12 @@
+.define __read
+.extern __read
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__read:		move.l #0x3,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		move.l 12(sp),a1
+		jmp call

+ 17 - 0
mach/mantra/libsys/_stty.s

@@ -0,0 +1,17 @@
+.define __stty
+.extern __stty
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__stty:
+tst.b -40(sp)
+link	a6,#-0
+move.l 12(a6),-(sp)
+move.l #29705,-(sp)
+move.l 8(a6),-(sp)
+jsr __ioctl
+add.l #12,sp
+unlk a6
+rts

+ 15 - 0
mach/mantra/libsys/_time.s

@@ -0,0 +1,15 @@
+.define __time
+.extern __time
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__time:		move.l #0xD,d0
+		trap #0
+		tst.l 4(sp)
+		beq 1f
+		move.l 4(sp),a0
+		move.l d0,(a0)
+1:
+		rts

+ 11 - 0
mach/mantra/libsys/_times.s

@@ -0,0 +1,11 @@
+.define __times
+.extern __times
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__times:		move.l #0x2B,d0
+		move.l 4(sp),a0
+		trap #0
+		rts

+ 10 - 0
mach/mantra/libsys/_unlink.s

@@ -0,0 +1,10 @@
+.define __unlink
+.extern __unlink
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__unlink:	move.l #0xA,d0
+		move.l 4(sp),a0
+		jmp callc

+ 17 - 0
mach/mantra/libsys/_wait.s

@@ -0,0 +1,17 @@
+.define __wait
+.extern __wait
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__wait:		move.l	#0x7,d0
+		move.l	4(sp),a0
+		trap #0
+		bcs cerror
+		tst.l 4(sp)
+		beq 1f
+		move.l 4(sp),a0
+		move.l d1,(a0)
+1:
+		rts

+ 12 - 0
mach/mantra/libsys/_write.s

@@ -0,0 +1,12 @@
+.define __write
+.extern __write
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
+.sect .text
+__write:		move.l #0x4,d0
+		move.l 4(sp),a0
+		move.l 8(sp),d1
+		move.l 12(sp),a1
+		jmp call

+ 7 - 13
mach/mantra/libsys/brk.s

@@ -1,31 +1,25 @@
 .define _brk
 .define _sbrk
-.extern _brk
-.extern _sbrk
 .sect .text
 .sect .rom
 .sect .data
 .sect .bss
 .sect .text
-_sbrk:		move.l nd,a0
+_sbrk:		move.l .limhp,a0
 		add.l  4(sp),a0
 		move.l #0x11,d0
 		trap #0
-		bcs lcerror
-		move.l nd,d0
+		bcs Icerror
+		move.l .limhp,d0
 		move.l d0,a0
 		add.l  4(sp),a0
-		move.l a0,nd
+		move.l a0,.limhp
 		rts
-lcerror:	jmp cerror
+Icerror:	jmp cerror
 _brk:		move.l #0x11,d0
 		move.l 4(sp),a0
 		trap #0
-		bcs lcerror
-		move.l 4(sp),nd
+		bcs Icerror
+		move.l 4(sp),.limhp
 		clr.l d0
 		rts
-.sect .data
-nd:
-	.data4	endbss
-.sect .text