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,
 | |
| */
 |