Implemented length storage of allocated memory

This commit is contained in:
2025-02-09 14:14:41 +01:00
parent 1ff56e0856
commit 2b2e707520
27 changed files with 134 additions and 49 deletions

21
lib/io/io.q Normal file
View File

@ -0,0 +1,21 @@
import sys
in(buffer Pointer) -> Int {
return sys.read(0, buffer, len(buffer))
}
out(message Pointer) -> Int {
return sys.write(1, message, len(message))
}
error(message Pointer) -> Int {
return sys.write(2, message, len(message))
}
read(fd Int, buffer Pointer) -> Int {
return sys.read(fd, buffer, len(buffer))
}
write(fd Int, message Pointer) -> Int {
return sys.write(fd, message, len(message))
}

View File

@ -1,5 +1,12 @@
import sys
alloc(length Int) -> Pointer {
return sys.mmap(0, length, 0x1|0x2, 0x02|0x20)
x := sys.mmap(0, length+8, 0x1|0x2, 0x02|0x20)
if x <= 0 {
return x
}
store(x, 8, length)
return x + 8
}

View File

@ -1,5 +1,12 @@
import sys
alloc(length Int) -> Pointer {
return sys.mmap(0, length, 0x1|0x2, 0x02|0x1000)
x := sys.mmap(0, length, 0x1|0x2, 0x02|0x1000)
if x <= 0 {
return x
}
store(x, 8, length)
return x + 8
}

View File

@ -1,5 +1,12 @@
import sys
alloc(length Int) -> Pointer {
return sys.mmap(0, length, 0x0004, 0x3000)
x := sys.mmap(0, length, 0x0004, 0x3000)
if x <= 0 {
return x
}
store(x, 8, length)
return x + 8
}

View File

@ -1,3 +1,9 @@
read(fd Int, address Pointer, length Int) -> Int {
kernel32.ReadFile(fd, address, length)
return length
}
write(fd Int, address Pointer, length Int) -> Int {
return kernel32.WriteFile(fd, address, length)
kernel32.WriteFile(fd, address, length)
return length
}