Removed old syscalls
This commit is contained in:
@ -3,6 +3,10 @@ const {
|
||||
pid 1
|
||||
}
|
||||
|
||||
sig {
|
||||
chld 17
|
||||
}
|
||||
|
||||
state {
|
||||
exited 0x4
|
||||
}
|
||||
|
@ -8,14 +8,14 @@ main() {
|
||||
|
||||
loop {
|
||||
io.write("λ ")
|
||||
n := io.in(command)
|
||||
n := io.read(command)
|
||||
|
||||
if n <= 0 {
|
||||
return
|
||||
}
|
||||
|
||||
command[n-1] = 0
|
||||
pid := sys.fork()
|
||||
pid := sys.clone(sig.chld, 0, 0, 0, 0)
|
||||
|
||||
if pid == 0 {
|
||||
sys.execve(command, 0, 0)
|
||||
|
@ -1,6 +1,6 @@
|
||||
sockaddr_in {
|
||||
sin_family int16
|
||||
sin_port int16
|
||||
sin_port uint16
|
||||
sin_addr int64
|
||||
sin_zero int64
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
sockaddr_in_bsd {
|
||||
sin_len int8
|
||||
sin_family int8
|
||||
sin_port int16
|
||||
sin_port uint16
|
||||
sin_addr int64
|
||||
sin_zero int64
|
||||
}
|
87
lib/sys/sys_linux.q
Normal file
87
lib/sys/sys_linux.q
Normal file
@ -0,0 +1,87 @@
|
||||
read(fd int, buffer *byte, length int) -> int {
|
||||
return syscall(n.read, fd, buffer, length)
|
||||
}
|
||||
|
||||
write(fd int, buffer *byte, length int) -> int {
|
||||
return syscall(n.write, fd, buffer, length)
|
||||
}
|
||||
|
||||
mmap(address int, length uint, protection int, flags int) -> *any {
|
||||
return syscall(n.mmap, address, length, protection, flags)
|
||||
}
|
||||
|
||||
munmap(address *any, length uint) -> int {
|
||||
return syscall(n.munmap, address, length)
|
||||
}
|
||||
|
||||
open(path *any, flags int, mode int) -> int {
|
||||
return syscall(n.openat, -100, path, flags, mode)
|
||||
}
|
||||
|
||||
close(fd int) -> int {
|
||||
return syscall(n.close, fd)
|
||||
}
|
||||
|
||||
clone(flags uint, stack *any, parent *int, child *int, tls uint) -> int {
|
||||
return syscall(n.clone, flags, stack, parent, child, tls)
|
||||
}
|
||||
|
||||
execve(path *any, argv *any, envp *any) -> int {
|
||||
return syscall(n.execve, path, argv, envp)
|
||||
}
|
||||
|
||||
exit(status int) {
|
||||
syscall(n.exit, status)
|
||||
}
|
||||
|
||||
waitid(type int, id int, info *any, options int) -> int {
|
||||
return syscall(n.waitid, type, id, info, options)
|
||||
}
|
||||
|
||||
socket(family int, type int, protocol int) -> int {
|
||||
return syscall(n.socket, family, type, protocol)
|
||||
}
|
||||
|
||||
accept(fd int, address *any, length int) -> int {
|
||||
return syscall(n.accept, fd, address, length)
|
||||
}
|
||||
|
||||
bind(fd int, address *sockaddr_in, length int) -> int {
|
||||
return syscall(n.bind, fd, address, length)
|
||||
}
|
||||
|
||||
listen(fd int, backlog int) -> int {
|
||||
return syscall(n.listen, fd, backlog)
|
||||
}
|
||||
|
||||
setsockopt(fd int, level int, optname int, optval *any, optlen int) -> int {
|
||||
return syscall(n.setsockopt, fd, level, optname, optval, optlen)
|
||||
}
|
||||
|
||||
getcwd(buffer *any, length int) -> int {
|
||||
return syscall(n.getcwd, buffer, length)
|
||||
}
|
||||
|
||||
chdir(path *any) -> int {
|
||||
return syscall(n.chdir, path)
|
||||
}
|
||||
|
||||
rename(old *any, new *any) -> int {
|
||||
return syscall(n.renameat, -100, old, -100, new)
|
||||
}
|
||||
|
||||
mkdir(path *any, mode int) -> int {
|
||||
return syscall(n.mkdirat, -100, path, mode)
|
||||
}
|
||||
|
||||
rmdir(path *any) -> int {
|
||||
return syscall(n.unlinkat, -100, path, 0x200)
|
||||
}
|
||||
|
||||
unlink(file *any) -> int {
|
||||
return syscall(n.unlinkat, -100, file, 0)
|
||||
}
|
||||
|
||||
nanosleep(duration *timespec) -> int {
|
||||
return syscall(n.nanosleep, duration, 0)
|
||||
}
|
@ -1,15 +1,25 @@
|
||||
read(fd int, buffer *byte, length int) -> int {
|
||||
return syscall(63, fd, buffer, length)
|
||||
}
|
||||
|
||||
write(fd int, buffer *byte, length int) -> int {
|
||||
return syscall(64, fd, buffer, length)
|
||||
}
|
||||
|
||||
mmap(address int, length uint, protection int, flags int) -> *any {
|
||||
return syscall(222, address, length, protection, flags)
|
||||
}
|
||||
|
||||
munmap(address *any, length uint) -> int {
|
||||
return syscall(215, address, length)
|
||||
const {
|
||||
n {
|
||||
read 63
|
||||
write 64
|
||||
mmap 222
|
||||
munmap 215
|
||||
openat 56
|
||||
close 57
|
||||
clone 220
|
||||
execve 221
|
||||
exit 93
|
||||
waitid 95
|
||||
socket 198
|
||||
accept 202
|
||||
bind 200
|
||||
listen 201
|
||||
setsockopt 208
|
||||
getcwd 17
|
||||
chdir 49
|
||||
mkdirat 34
|
||||
unlinkat 35
|
||||
renameat 38
|
||||
nanosleep 101
|
||||
}
|
||||
}
|
@ -1,91 +1,26 @@
|
||||
read(fd int, buffer *byte, length int) -> int {
|
||||
return syscall(0, fd, buffer, length)
|
||||
const {
|
||||
n {
|
||||
read 0
|
||||
write 1
|
||||
mmap 9
|
||||
munmap 11
|
||||
openat 257
|
||||
close 3
|
||||
clone 56
|
||||
execve 59
|
||||
exit 60
|
||||
waitid 247
|
||||
socket 41
|
||||
accept 43
|
||||
bind 49
|
||||
listen 50
|
||||
setsockopt 54
|
||||
getcwd 79
|
||||
chdir 80
|
||||
mkdirat 258
|
||||
unlinkat 263
|
||||
renameat 264
|
||||
nanosleep 35
|
||||
}
|
||||
}
|
||||
|
||||
write(fd int, buffer *byte, length int) -> int {
|
||||
return syscall(1, fd, buffer, length)
|
||||
}
|
||||
|
||||
open(path *any, flags int, mode int) -> int {
|
||||
return syscall(2, path, flags, mode)
|
||||
}
|
||||
|
||||
close(fd int) -> int {
|
||||
return syscall(3, fd)
|
||||
}
|
||||
|
||||
mmap(address int, length uint, protection int, flags int) -> *any {
|
||||
return syscall(9, address, length, protection, flags)
|
||||
}
|
||||
|
||||
munmap(address *any, length uint) -> int {
|
||||
return syscall(11, address, length)
|
||||
}
|
||||
|
||||
clone(flags uint, stack *any, parent *int, child *int, tls uint) -> int {
|
||||
return syscall(56, flags, stack, parent, child, tls)
|
||||
}
|
||||
|
||||
fork() -> int {
|
||||
return syscall(57)
|
||||
}
|
||||
|
||||
execve(path *any, argv *any, envp *any) -> int {
|
||||
return syscall(59, path, argv, envp)
|
||||
}
|
||||
|
||||
exit(status int) {
|
||||
syscall(60, status)
|
||||
}
|
||||
|
||||
waitid(type int, id int, info *any, options int) -> int {
|
||||
return syscall(247, type, id, info, options)
|
||||
}
|
||||
|
||||
socket(family int, type int, protocol int) -> int {
|
||||
return syscall(41, family, type, protocol)
|
||||
}
|
||||
|
||||
accept(fd int, address *any, length int) -> int {
|
||||
return syscall(43, fd, address, length)
|
||||
}
|
||||
|
||||
bind(fd int, address *sockaddr_in, length int) -> int {
|
||||
return syscall(49, fd, address, length)
|
||||
}
|
||||
|
||||
listen(fd int, backlog int) -> int {
|
||||
return syscall(50, fd, backlog)
|
||||
}
|
||||
|
||||
setsockopt(fd int, level int, optname int, optval *any, optlen int) -> int {
|
||||
return syscall(54, fd, level, optname, optval, optlen)
|
||||
}
|
||||
|
||||
getcwd(buffer *any, length int) -> int {
|
||||
return syscall(79, buffer, length)
|
||||
}
|
||||
|
||||
chdir(path *any) -> int {
|
||||
return syscall(80, path)
|
||||
}
|
||||
|
||||
rename(old *any, new *any) -> int {
|
||||
return syscall(82, old, new)
|
||||
}
|
||||
|
||||
mkdir(path *any, mode int) -> int {
|
||||
return syscall(83, path, mode)
|
||||
}
|
||||
|
||||
rmdir(path *any) -> int {
|
||||
return syscall(84, path)
|
||||
}
|
||||
|
||||
unlink(file *any) -> int {
|
||||
return syscall(87, file)
|
||||
}
|
||||
|
||||
nanosleep(duration *timespec) -> int {
|
||||
return syscall(35, duration, 0)
|
||||
}
|
Reference in New Issue
Block a user