diff --git a/lib/sys/fs_linux.q b/lib/sys/fs_linux.q new file mode 100644 index 0000000..dc1bd11 --- /dev/null +++ b/lib/sys/fs_linux.q @@ -0,0 +1,23 @@ +getcwd(buffer Pointer, length Int) -> Int { + return syscall(79, buffer, length) +} + +chdir(path Pointer) -> Int { + return syscall(80, path) +} + +rename(old Pointer, new Pointer) -> Int { + return syscall(82, old, new) +} + +mkdir(path Pointer, mode Int) -> Int { + return syscall(83, path, mode) +} + +rmdir(path Pointer) -> Int { + return syscall(84, path) +} + +unlink(file Pointer) -> Int { + return syscall(87, file) +} \ No newline at end of file diff --git a/lib/sys/io_linux.q b/lib/sys/io_linux.q new file mode 100644 index 0000000..0bfae7e --- /dev/null +++ b/lib/sys/io_linux.q @@ -0,0 +1,15 @@ +read(fd Int, address Pointer, length Int) -> Int { + return syscall(0, fd, address, length) +} + +write(fd Int, address Pointer, length Int) -> Int { + return syscall(1, fd, address, length) +} + +open(file Pointer, flags Int, mode Int) -> Int { + return syscall(2, file, flags, mode) +} + +close(fd Int) -> Int { + return syscall(3, fd) +} \ No newline at end of file diff --git a/lib/sys/io_mac.q b/lib/sys/io_mac.q new file mode 100644 index 0000000..17b07aa --- /dev/null +++ b/lib/sys/io_mac.q @@ -0,0 +1,15 @@ +read(fd Int, address Pointer, length Int) -> Int { + return syscall(0x2000003, fd, address, length) +} + +write(fd Int, address Pointer, length Int) -> Int { + return syscall(0x2000004, fd, address, length) +} + +open(file Pointer, flags Int, mode Int) -> Int { + return syscall(0x2000005, file, flags, mode) +} + +close(fd Int) -> Int { + return syscall(0x2000006, fd) +} \ No newline at end of file diff --git a/lib/sys/io_windows.q b/lib/sys/io_windows.q new file mode 100644 index 0000000..0bf7b09 --- /dev/null +++ b/lib/sys/io_windows.q @@ -0,0 +1,3 @@ +write(fd Int, address Pointer, length Int) -> Int { + return kernel32.WriteFile(fd, address, length) +} \ No newline at end of file diff --git a/lib/sys/mem_linux.q b/lib/sys/mem_linux.q new file mode 100644 index 0000000..5d8bb7c --- /dev/null +++ b/lib/sys/mem_linux.q @@ -0,0 +1,7 @@ +mmap(address Int, length Int, protection Int, flags Int) -> Pointer { + return syscall(9, address, length, protection, flags) +} + +munmap(address Pointer, length Int) -> Int { + return syscall(11, address, length) +} \ No newline at end of file diff --git a/lib/sys/mem_mac.q b/lib/sys/mem_mac.q new file mode 100644 index 0000000..cbae713 --- /dev/null +++ b/lib/sys/mem_mac.q @@ -0,0 +1,7 @@ +mmap(address Int, length Int, protection Int, flags Int) -> Pointer { + return syscall(0x20000C5, address, length, protection, flags) +} + +munmap(address Pointer, length Int) -> Int { + return syscall(0x2000049, address, length) +} \ No newline at end of file diff --git a/lib/sys/sys_windows.q b/lib/sys/mem_windows.q similarity index 54% rename from lib/sys/sys_windows.q rename to lib/sys/mem_windows.q index 3c9c82f..c9ada81 100644 --- a/lib/sys/sys_windows.q +++ b/lib/sys/mem_windows.q @@ -1,17 +1,7 @@ -write(fd Int, address Pointer, length Int) -> Int { - // out numberOfBytesWritten - // out overlapped - return kernel32.WriteFile(fd, address, length) -} - mmap(address Int, length Int, protection Int, flags Int) -> Pointer { return kernel32.VirtualAlloc(address, length, flags, protection) } munmap(address Pointer, length Int) -> Int { return kernel32.VirtualFree(address, length, 0x4000) -} - -exit(code Int) { - kernel32.ExitProcess(code) } \ No newline at end of file diff --git a/lib/sys/network_linux.q b/lib/sys/net_linux.q similarity index 100% rename from lib/sys/network_linux.q rename to lib/sys/net_linux.q diff --git a/lib/sys/network_mac.q b/lib/sys/net_mac.q similarity index 100% rename from lib/sys/network_mac.q rename to lib/sys/net_mac.q diff --git a/lib/sys/proc_linux.q b/lib/sys/proc_linux.q new file mode 100644 index 0000000..2ef2ec7 --- /dev/null +++ b/lib/sys/proc_linux.q @@ -0,0 +1,19 @@ +clone(flags Int, stack Pointer) -> Int { + return syscall(56, flags, stack) +} + +fork() -> Int { + return syscall(57) +} + +execve(path Pointer, argv Pointer, envp Pointer) -> Int { + return syscall(59, path, argv, envp) +} + +exit(status Int) { + syscall(60, status) +} + +waitid(type Int, id Int, info Pointer, options Int) -> Int { + return syscall(247, type, id, info, options) +} \ No newline at end of file diff --git a/lib/sys/proc_mac.q b/lib/sys/proc_mac.q new file mode 100644 index 0000000..bf70e55 --- /dev/null +++ b/lib/sys/proc_mac.q @@ -0,0 +1,15 @@ +exit(status Int) { + syscall(0x2000001, status) +} + +fork() -> Int { + return syscall(0x2000002) +} + +execve(path Pointer, argv Pointer, envp Pointer) -> Int { + return syscall(0x200003B, path, argv, envp) +} + +waitid(type Int, id Int, info Pointer, options Int) -> Int { + return syscall(0x20000AD, type, id, info, options) +} \ No newline at end of file diff --git a/lib/sys/proc_windows.q b/lib/sys/proc_windows.q new file mode 100644 index 0000000..7819bca --- /dev/null +++ b/lib/sys/proc_windows.q @@ -0,0 +1,3 @@ +exit(code Int) { + kernel32.ExitProcess(code) +} \ No newline at end of file diff --git a/lib/sys/sys_linux.q b/lib/sys/sys_linux.q deleted file mode 100644 index 36fad2c..0000000 --- a/lib/sys/sys_linux.q +++ /dev/null @@ -1,71 +0,0 @@ -read(fd Int, address Pointer, length Int) -> Int { - return syscall(0, fd, address, length) -} - -write(fd Int, address Pointer, length Int) -> Int { - return syscall(1, fd, address, length) -} - -open(file Pointer, flags Int, mode Int) -> Int { - return syscall(2, file, flags, mode) -} - -close(fd Int) -> Int { - return syscall(3, fd) -} - -mmap(address Int, length Int, protection Int, flags Int) -> Pointer { - return syscall(9, address, length, protection, flags) -} - -munmap(address Pointer, length Int) -> Int { - return syscall(11, address, length) -} - -nanosleep(duration Pointer) -> Int { - return syscall(35, duration, 0) -} - -clone(flags Int, stack Pointer) -> Int { - return syscall(56, flags, stack) -} - -fork() -> Int { - return syscall(57) -} - -execve(path Pointer, argv Pointer, envp Pointer) -> Int { - return syscall(59, path, argv, envp) -} - -exit(status Int) { - syscall(60, status) -} - -getcwd(buffer Pointer, length Int) -> Int { - return syscall(79, buffer, length) -} - -chdir(path Pointer) -> Int { - return syscall(80, path) -} - -rename(old Pointer, new Pointer) -> Int { - return syscall(82, old, new) -} - -mkdir(path Pointer, mode Int) -> Int { - return syscall(83, path, mode) -} - -rmdir(path Pointer) -> Int { - return syscall(84, path) -} - -unlink(file Pointer) -> Int { - return syscall(87, file) -} - -waitid(type Int, id Int, info Pointer, options Int) -> Int { - return syscall(247, type, id, info, options) -} diff --git a/lib/sys/sys_mac.q b/lib/sys/sys_mac.q deleted file mode 100644 index 24fd36d..0000000 --- a/lib/sys/sys_mac.q +++ /dev/null @@ -1,39 +0,0 @@ -exit(status Int) { - syscall(0x2000001, status) -} - -fork() -> Int { - return syscall(0x2000002) -} - -read(fd Int, address Pointer, length Int) -> Int { - return syscall(0x2000003, fd, address, length) -} - -write(fd Int, address Pointer, length Int) -> Int { - return syscall(0x2000004, fd, address, length) -} - -open(file Pointer, flags Int, mode Int) -> Int { - return syscall(0x2000005, file, flags, mode) -} - -close(fd Int) -> Int { - return syscall(0x2000006, fd) -} - -mmap(address Int, length Int, protection Int, flags Int) -> Pointer { - return syscall(0x20000C5, address, length, protection, flags) -} - -munmap(address Pointer, length Int) -> Int { - return syscall(0x2000049, address, length) -} - -execve(path Pointer, argv Pointer, envp Pointer) -> Int { - return syscall(0x200003B, path, argv, envp) -} - -waitid(type Int, id Int, info Pointer, options Int) -> Int { - return syscall(0x20000AD, type, id, info, options) -} \ No newline at end of file diff --git a/lib/sys/time_linux.q b/lib/sys/time_linux.q new file mode 100644 index 0000000..6727476 --- /dev/null +++ b/lib/sys/time_linux.q @@ -0,0 +1,3 @@ +nanosleep(duration Pointer) -> Int { + return syscall(35, duration, 0) +} \ No newline at end of file