47 lines
		
	
	
		
			938 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			938 B
		
	
	
	
		
			V
		
	
	
// Copyright (c) 2019-2021 Alexander Medvednikov. All rights reserved.
 | 
						|
// Use of this source code is governed by an MIT license
 | 
						|
// that can be found in the LICENSE file.
 | 
						|
module os
 | 
						|
 | 
						|
const (
 | 
						|
	prot_read     = 1
 | 
						|
	prot_write    = 2
 | 
						|
	map_private   = 0x02
 | 
						|
	map_anonymous = 0x20
 | 
						|
)
 | 
						|
 | 
						|
pub const (
 | 
						|
	sys_write = 1
 | 
						|
	sys_open  = 2
 | 
						|
	sys_close = 3
 | 
						|
	sys_mkdir = 83
 | 
						|
	sys_creat = 85
 | 
						|
)
 | 
						|
 | 
						|
/*
 | 
						|
// TODO no pub => error
 | 
						|
pub fn write(fd int, data voidptr, nbytes int) int {
 | 
						|
	return syscall5(
 | 
						|
          1, // SYS_write
 | 
						|
          fd,
 | 
						|
          data,
 | 
						|
          nbytes,
 | 
						|
          0, // ignored
 | 
						|
          0  // ignored
 | 
						|
	)
 | 
						|
}
 | 
						|
 | 
						|
pub fn println(s string) {
 | 
						|
	write(1, (s + '\n').str, s.len)
 | 
						|
}
 | 
						|
 | 
						|
fn mmap(start voidptr, len, prot, flags, fd, off int) byteptr {
 | 
						|
	return syscall6(9, start, len, prot, flags, fd, off) // sys_mmap
 | 
						|
}
 | 
						|
 | 
						|
pub fn malloc(n int) byteptr {
 | 
						|
	println('malloc($n)')
 | 
						|
	return mmap(0, n, 3, 		4098, //prot_read|prot_write,
 | 
						|
	 -1,0)			//map_private|map_anonymous,
 | 
						|
*/
 |