23 lines
453 B
Plaintext

import core
import sys
const clone {
vm 0x100
fs 0x200
files 0x400
sighand 0x800
parent 0x8000
thread 0x10000
io 0x80000000
}
create(func *Any) -> Int {
size := 4096
stack := sys.mmap(0, size, 0x1|0x2, 0x02|0x20|0x100|0x20000)
stack += size
stack -= 8
store(stack, 8, core.exit)
stack -= 8
store(stack, 8, func)
return sys.clone(clone.vm|clone.fs|clone.files|clone.sighand|clone.parent|clone.thread|clone.io, stack)
}