 307c825515
			
		
	
	
		307c825515
		
	
	
	
	
		
			
			The call works. Permission check, restriction of outstanding notifications to be added. Low level code to make it work from within interrupt handlers will be added as well.
		
			
				
	
	
		
			397 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
| # Makefile for lib/syscall.
 | |
| 
 | |
| CC1	= $(CC) -c
 | |
| 
 | |
| LIBRARY	= ../libc.a
 | |
| all:	$(LIBRARY)
 | |
| 
 | |
| OBJECTS	= \
 | |
| 	$(LIBRARY)(_exit.o) \
 | |
| 	$(LIBRARY)(access.o) \
 | |
| 	$(LIBRARY)(alarm.o) \
 | |
| 	$(LIBRARY)(brk.o) \
 | |
| 	$(LIBRARY)(cfgetispeed.o) \
 | |
| 	$(LIBRARY)(cfgetospeed.o) \
 | |
| 	$(LIBRARY)(cfsetispeed.o) \
 | |
| 	$(LIBRARY)(cfsetospeed.o) \
 | |
| 	$(LIBRARY)(chdir.o) \
 | |
| 	$(LIBRARY)(chmod.o) \
 | |
| 	$(LIBRARY)(chown.o) \
 | |
| 	$(LIBRARY)(chroot.o) \
 | |
| 	$(LIBRARY)(close.o) \
 | |
| 	$(LIBRARY)(closedir.o) \
 | |
| 	$(LIBRARY)(creat.o) \
 | |
| 	$(LIBRARY)(dup.o) \
 | |
| 	$(LIBRARY)(dup2.o) \
 | |
| 	$(LIBRARY)(execl.o) \
 | |
| 	$(LIBRARY)(execle.o) \
 | |
| 	$(LIBRARY)(execlp.o) \
 | |
| 	$(LIBRARY)(execv.o) \
 | |
| 	$(LIBRARY)(execve.o) \
 | |
| 	$(LIBRARY)(execvp.o) \
 | |
| 	$(LIBRARY)(fcntl.o) \
 | |
| 	$(LIBRARY)(fork.o) \
 | |
| 	$(LIBRARY)(fpathconf.o) \
 | |
| 	$(LIBRARY)(fstat.o) \
 | |
| 	$(LIBRARY)(fstatfs.o) \
 | |
| 	$(LIBRARY)(getcwd.o) \
 | |
| 	$(LIBRARY)(getegid.o) \
 | |
| 	$(LIBRARY)(geteuid.o) \
 | |
| 	$(LIBRARY)(getgid.o) \
 | |
| 	$(LIBRARY)(getgroups.o) \
 | |
| 	$(LIBRARY)(getpgrp.o) \
 | |
| 	$(LIBRARY)(getpid.o) \
 | |
| 	$(LIBRARY)(getppid.o) \
 | |
| 	$(LIBRARY)(getuid.o) \
 | |
| 	$(LIBRARY)(getprocnr.o) \
 | |
| 	$(LIBRARY)(ioctl.o) \
 | |
| 	$(LIBRARY)(isatty.o) \
 | |
| 	$(LIBRARY)(kill.o) \
 | |
| 	$(LIBRARY)(link.o) \
 | |
| 	$(LIBRARY)(lseek.o) \
 | |
| 	$(LIBRARY)(mkdir.o) \
 | |
| 	$(LIBRARY)(mkfifo.o) \
 | |
| 	$(LIBRARY)(mknod.o) \
 | |
| 	$(LIBRARY)(mktemp.o) \
 | |
| 	$(LIBRARY)(mount.o) \
 | |
| 	$(LIBRARY)(open.o) \
 | |
| 	$(LIBRARY)(opendir.o) \
 | |
| 	$(LIBRARY)(pathconf.o) \
 | |
| 	$(LIBRARY)(pause.o) \
 | |
| 	$(LIBRARY)(pipe.o) \
 | |
| 	$(LIBRARY)(ptrace.o) \
 | |
| 	$(LIBRARY)(read.o) \
 | |
| 	$(LIBRARY)(readdir.o) \
 | |
| 	$(LIBRARY)(reboot.o) \
 | |
| 	$(LIBRARY)(rename.o) \
 | |
| 	$(LIBRARY)(rewinddir.o) \
 | |
| 	$(LIBRARY)(rmdir.o) \
 | |
| 	$(LIBRARY)(sbrk.o) \
 | |
| 	$(LIBRARY)(seekdir.o) \
 | |
| 	$(LIBRARY)(setgid.o) \
 | |
| 	$(LIBRARY)(setsid.o) \
 | |
| 	$(LIBRARY)(setuid.o) \
 | |
| 	$(LIBRARY)(sigaction.o) \
 | |
| 	$(LIBRARY)(sigaddset.o) \
 | |
| 	$(LIBRARY)(sigdelset.o) \
 | |
| 	$(LIBRARY)(sigemptyset.o) \
 | |
| 	$(LIBRARY)(sigfillset.o) \
 | |
| 	$(LIBRARY)(sigismember.o) \
 | |
| 	$(LIBRARY)(sigpending.o) \
 | |
| 	$(LIBRARY)(sigprocmask.o) \
 | |
| 	$(LIBRARY)(sigreturn.o) \
 | |
| 	$(LIBRARY)(sigsuspend.o) \
 | |
| 	$(LIBRARY)(sleep.o) \
 | |
| 	$(LIBRARY)(stat.o) \
 | |
| 	$(LIBRARY)(stime.o) \
 | |
| 	$(LIBRARY)(sync.o) \
 | |
| 	$(LIBRARY)(svrctl.o) \
 | |
| 	$(LIBRARY)(tcdrain.o) \
 | |
| 	$(LIBRARY)(tcflow.o) \
 | |
| 	$(LIBRARY)(tcflush.o) \
 | |
| 	$(LIBRARY)(tcgetattr.o) \
 | |
| 	$(LIBRARY)(tcsendbreak.o) \
 | |
| 	$(LIBRARY)(tcsetattr.o) \
 | |
| 	$(LIBRARY)(time.o) \
 | |
| 	$(LIBRARY)(times.o) \
 | |
| 	$(LIBRARY)(umask.o) \
 | |
| 	$(LIBRARY)(umount.o) \
 | |
| 	$(LIBRARY)(uname.o) \
 | |
| 	$(LIBRARY)(unlink.o) \
 | |
| 	$(LIBRARY)(utime.o) \
 | |
| 	$(LIBRARY)(wait.o) \
 | |
| 	$(LIBRARY)(waitpid.o) \
 | |
| 	$(LIBRARY)(write.o) \
 | |
| 
 | |
| $(LIBRARY):	$(OBJECTS)
 | |
| 	aal cr $@ *.o
 | |
| 	rm *.o
 | |
| 
 | |
| $(LIBRARY)(_exit.o):	_exit.s
 | |
| 	$(CC1) _exit.s
 | |
| 
 | |
| $(LIBRARY)(access.o):	access.s
 | |
| 	$(CC1) access.s
 | |
| 
 | |
| $(LIBRARY)(alarm.o):	alarm.s
 | |
| 	$(CC1) alarm.s
 | |
| 
 | |
| $(LIBRARY)(brk.o):	brk.s
 | |
| 	$(CC1) brk.s
 | |
| 
 | |
| $(LIBRARY)(cfgetispeed.o):	cfgetispeed.s
 | |
| 	$(CC1) cfgetispeed.s
 | |
| 
 | |
| $(LIBRARY)(cfgetospeed.o):	cfgetospeed.s
 | |
| 	$(CC1) cfgetospeed.s
 | |
| 
 | |
| $(LIBRARY)(cfsetispeed.o):	cfsetispeed.s
 | |
| 	$(CC1) cfsetispeed.s
 | |
| 
 | |
| $(LIBRARY)(cfsetospeed.o):	cfsetospeed.s
 | |
| 	$(CC1) cfsetospeed.s
 | |
| 
 | |
| $(LIBRARY)(chdir.o):	chdir.s
 | |
| 	$(CC1) chdir.s
 | |
| 
 | |
| $(LIBRARY)(chmod.o):	chmod.s
 | |
| 	$(CC1) chmod.s
 | |
| 
 | |
| $(LIBRARY)(chown.o):	chown.s
 | |
| 	$(CC1) chown.s
 | |
| 
 | |
| $(LIBRARY)(chroot.o):	chroot.s
 | |
| 	$(CC1) chroot.s
 | |
| 
 | |
| $(LIBRARY)(close.o):	close.s
 | |
| 	$(CC1) close.s
 | |
| 
 | |
| $(LIBRARY)(closedir.o):	closedir.s
 | |
| 	$(CC1) closedir.s
 | |
| 
 | |
| $(LIBRARY)(creat.o):	creat.s
 | |
| 	$(CC1) creat.s
 | |
| 
 | |
| $(LIBRARY)(dup.o):	dup.s
 | |
| 	$(CC1) dup.s
 | |
| 
 | |
| $(LIBRARY)(dup2.o):	dup2.s
 | |
| 	$(CC1) dup2.s
 | |
| 
 | |
| $(LIBRARY)(execl.o):	execl.s
 | |
| 	$(CC1) execl.s
 | |
| 
 | |
| $(LIBRARY)(execle.o):	execle.s
 | |
| 	$(CC1) execle.s
 | |
| 
 | |
| $(LIBRARY)(execlp.o):	execlp.s
 | |
| 	$(CC1) execlp.s
 | |
| 
 | |
| $(LIBRARY)(execv.o):	execv.s
 | |
| 	$(CC1) execv.s
 | |
| 
 | |
| $(LIBRARY)(execve.o):	execve.s
 | |
| 	$(CC1) execve.s
 | |
| 
 | |
| $(LIBRARY)(execvp.o):	execvp.s
 | |
| 	$(CC1) execvp.s
 | |
| 
 | |
| $(LIBRARY)(fcntl.o):	fcntl.s
 | |
| 	$(CC1) fcntl.s
 | |
| 
 | |
| $(LIBRARY)(fork.o):	fork.s
 | |
| 	$(CC1) fork.s
 | |
| 
 | |
| $(LIBRARY)(fpathconf.o):	fpathconf.s
 | |
| 	$(CC1) fpathconf.s
 | |
| 
 | |
| $(LIBRARY)(fstat.o):	fstat.s
 | |
| 	$(CC1) fstat.s
 | |
| 
 | |
| $(LIBRARY)(fstatfs.o):	fstatfs.s
 | |
| 	$(CC1) fstatfs.s
 | |
| 
 | |
| $(LIBRARY)(getcwd.o):	getcwd.s
 | |
| 	$(CC1) getcwd.s
 | |
| 
 | |
| $(LIBRARY)(getegid.o):	getegid.s
 | |
| 	$(CC1) getegid.s
 | |
| 
 | |
| $(LIBRARY)(geteuid.o):	geteuid.s
 | |
| 	$(CC1) geteuid.s
 | |
| 
 | |
| $(LIBRARY)(getgid.o):	getgid.s
 | |
| 	$(CC1) getgid.s
 | |
| 
 | |
| $(LIBRARY)(getgroups.o):	getgroups.s
 | |
| 	$(CC1) getgroups.s
 | |
| 
 | |
| $(LIBRARY)(getpgrp.o):	getpgrp.s
 | |
| 	$(CC1) getpgrp.s
 | |
| 
 | |
| $(LIBRARY)(getpid.o):	getpid.s
 | |
| 	$(CC1) getpid.s
 | |
| 
 | |
| $(LIBRARY)(getppid.o):	getppid.s
 | |
| 	$(CC1) getppid.s
 | |
| 
 | |
| $(LIBRARY)(getprocnr.o):	getprocnr.s
 | |
| 	$(CC1) getprocnr.s
 | |
| 
 | |
| $(LIBRARY)(getuid.o):	getuid.s
 | |
| 	$(CC1) getuid.s
 | |
| 
 | |
| $(LIBRARY)(ioctl.o):	ioctl.s
 | |
| 	$(CC1) ioctl.s
 | |
| 
 | |
| $(LIBRARY)(isatty.o):	isatty.s
 | |
| 	$(CC1) isatty.s
 | |
| 
 | |
| $(LIBRARY)(kill.o):	kill.s
 | |
| 	$(CC1) kill.s
 | |
| 
 | |
| $(LIBRARY)(link.o):	link.s
 | |
| 	$(CC1) link.s
 | |
| 
 | |
| $(LIBRARY)(lseek.o):	lseek.s
 | |
| 	$(CC1) lseek.s
 | |
| 
 | |
| $(LIBRARY)(mkdir.o):	mkdir.s
 | |
| 	$(CC1) mkdir.s
 | |
| 
 | |
| $(LIBRARY)(mkfifo.o):	mkfifo.s
 | |
| 	$(CC1) mkfifo.s
 | |
| 
 | |
| $(LIBRARY)(mknod.o):	mknod.s
 | |
| 	$(CC1) mknod.s
 | |
| 
 | |
| $(LIBRARY)(mktemp.o):	mktemp.s
 | |
| 	$(CC1) mktemp.s
 | |
| 
 | |
| $(LIBRARY)(mount.o):	mount.s
 | |
| 	$(CC1) mount.s
 | |
| 
 | |
| $(LIBRARY)(open.o):	open.s
 | |
| 	$(CC1) open.s
 | |
| 
 | |
| $(LIBRARY)(opendir.o):	opendir.s
 | |
| 	$(CC1) opendir.s
 | |
| 
 | |
| $(LIBRARY)(pathconf.o):	pathconf.s
 | |
| 	$(CC1) pathconf.s
 | |
| 
 | |
| $(LIBRARY)(pause.o):	pause.s
 | |
| 	$(CC1) pause.s
 | |
| 
 | |
| $(LIBRARY)(pipe.o):	pipe.s
 | |
| 	$(CC1) pipe.s
 | |
| 
 | |
| $(LIBRARY)(ptrace.o):	ptrace.s
 | |
| 	$(CC1) ptrace.s
 | |
| 
 | |
| $(LIBRARY)(read.o):	read.s
 | |
| 	$(CC1) read.s
 | |
| 
 | |
| $(LIBRARY)(readdir.o):	readdir.s
 | |
| 	$(CC1) readdir.s
 | |
| 
 | |
| $(LIBRARY)(reboot.o):	reboot.s
 | |
| 	$(CC1) reboot.s
 | |
| 
 | |
| $(LIBRARY)(rename.o):	rename.s
 | |
| 	$(CC1) rename.s
 | |
| 
 | |
| $(LIBRARY)(rewinddir.o):	rewinddir.s
 | |
| 	$(CC1) rewinddir.s
 | |
| 
 | |
| $(LIBRARY)(rmdir.o):	rmdir.s
 | |
| 	$(CC1) rmdir.s
 | |
| 
 | |
| $(LIBRARY)(sbrk.o):	sbrk.s
 | |
| 	$(CC1) sbrk.s
 | |
| 
 | |
| $(LIBRARY)(seekdir.o):	seekdir.s
 | |
| 	$(CC1) seekdir.s
 | |
| 
 | |
| $(LIBRARY)(setgid.o):	setgid.s
 | |
| 	$(CC1) setgid.s
 | |
| 
 | |
| $(LIBRARY)(setsid.o):	setsid.s
 | |
| 	$(CC1) setsid.s
 | |
| 
 | |
| $(LIBRARY)(setuid.o):	setuid.s
 | |
| 	$(CC1) setuid.s
 | |
| 
 | |
| $(LIBRARY)(sigaction.o):	sigaction.s
 | |
| 	$(CC1) sigaction.s
 | |
| 
 | |
| $(LIBRARY)(sigaddset.o):	sigaddset.s
 | |
| 	$(CC1) sigaddset.s
 | |
| 
 | |
| $(LIBRARY)(sigdelset.o):	sigdelset.s
 | |
| 	$(CC1) sigdelset.s
 | |
| 
 | |
| $(LIBRARY)(sigemptyset.o):	sigemptyset.s
 | |
| 	$(CC1) sigemptyset.s
 | |
| 
 | |
| $(LIBRARY)(sigfillset.o):	sigfillset.s
 | |
| 	$(CC1) sigfillset.s
 | |
| 
 | |
| $(LIBRARY)(sigismember.o):	sigismember.s
 | |
| 	$(CC1) sigismember.s
 | |
| 
 | |
| $(LIBRARY)(sigpending.o):	sigpending.s
 | |
| 	$(CC1) sigpending.s
 | |
| 
 | |
| $(LIBRARY)(sigprocmask.o):	sigprocmask.s
 | |
| 	$(CC1) sigprocmask.s
 | |
| 
 | |
| $(LIBRARY)(sigreturn.o):	sigreturn.s
 | |
| 	$(CC1) sigreturn.s
 | |
| 
 | |
| $(LIBRARY)(sigsuspend.o):	sigsuspend.s
 | |
| 	$(CC1) sigsuspend.s
 | |
| 
 | |
| $(LIBRARY)(sleep.o):	sleep.s
 | |
| 	$(CC1) sleep.s
 | |
| 
 | |
| $(LIBRARY)(stat.o):	stat.s
 | |
| 	$(CC1) stat.s
 | |
| 
 | |
| $(LIBRARY)(stime.o):	stime.s
 | |
| 	$(CC1) stime.s
 | |
| 
 | |
| $(LIBRARY)(sync.o):	sync.s
 | |
| 	$(CC1) sync.s
 | |
| 
 | |
| $(LIBRARY)(svrctl.o):	svrctl.s
 | |
| 	$(CC1) svrctl.s
 | |
| 
 | |
| $(LIBRARY)(tcdrain.o):	tcdrain.s
 | |
| 	$(CC1) tcdrain.s
 | |
| 
 | |
| $(LIBRARY)(tcflow.o):	tcflow.s
 | |
| 	$(CC1) tcflow.s
 | |
| 
 | |
| $(LIBRARY)(tcflush.o):	tcflush.s
 | |
| 	$(CC1) tcflush.s
 | |
| 
 | |
| $(LIBRARY)(tcgetattr.o):	tcgetattr.s
 | |
| 	$(CC1) tcgetattr.s
 | |
| 
 | |
| $(LIBRARY)(tcsendbreak.o):	tcsendbreak.s
 | |
| 	$(CC1) tcsendbreak.s
 | |
| 
 | |
| $(LIBRARY)(tcsetattr.o):	tcsetattr.s
 | |
| 	$(CC1) tcsetattr.s
 | |
| 
 | |
| $(LIBRARY)(time.o):	time.s
 | |
| 	$(CC1) time.s
 | |
| 
 | |
| $(LIBRARY)(times.o):	times.s
 | |
| 	$(CC1) times.s
 | |
| 
 | |
| $(LIBRARY)(umask.o):	umask.s
 | |
| 	$(CC1) umask.s
 | |
| 
 | |
| $(LIBRARY)(umount.o):	umount.s
 | |
| 	$(CC1) umount.s
 | |
| 
 | |
| $(LIBRARY)(uname.o):	uname.s
 | |
| 	$(CC1) uname.s
 | |
| 
 | |
| $(LIBRARY)(unlink.o):	unlink.s
 | |
| 	$(CC1) unlink.s
 | |
| 
 | |
| $(LIBRARY)(utime.o):	utime.s
 | |
| 	$(CC1) utime.s
 | |
| 
 | |
| $(LIBRARY)(wait.o):	wait.s
 | |
| 	$(CC1) wait.s
 | |
| 
 | |
| $(LIBRARY)(waitpid.o):	waitpid.s
 | |
| 	$(CC1) waitpid.s
 | |
| 
 | |
| $(LIBRARY)(write.o):	write.s
 | |
| 	$(CC1) write.s
 |