authorgravatar for andrea@orru.ioAndrea Orru <andrea@orru.io> 2018-04-11 23:11:26-07:00
committergravatar for andrea@orru.ioAndrea Orru <andrea@orru.io> 2018-04-11 23:11:26-07:00
log70f2bb03fd0ac63243afd985ece7713055845363
treeee51622bf117ad6d06d60d2ebf6fa37b638dca91
parent135a335ce12a33666e44cb13e0be4bb893877565

outb syscall


1 files changed, 7 insertions(+), 2 deletions(-)

std/os/zen.zig+7-2
...@@ -122,8 +122,9 @@ pub const Syscall = enum(usize) {...@@ -122,8 +122,9 @@ pub const Syscall = enum(usize) {
122 receive = 2,122 receive = 2,
123 subscribeIRQ = 3,123 subscribeIRQ = 3,
124 inb = 4,124 inb = 4,
125 map = 5,125 outb = 5,
126 createThread = 6,126 map = 6,
127 createThread = 7,
127};128};
128129
129130
...@@ -152,6 +153,10 @@ pub fn inb(port: u16) u8 {...@@ -152,6 +153,10 @@ pub fn inb(port: u16) u8 {
152 return u8(syscall1(Syscall.inb, port));153 return u8(syscall1(Syscall.inb, port));
153}154}
154155
156pub fn outb(port: u16, value: u8) void {
157 _ = syscall2(Syscall.outb, port, value);
158}
159
155pub fn map(v_addr: usize, p_addr: usize, size: usize, writable: bool) bool {160pub fn map(v_addr: usize, p_addr: usize, size: usize, writable: bool) bool {
156 return syscall4(Syscall.map, v_addr, p_addr, size, usize(writable)) != 0;161 return syscall4(Syscall.map, v_addr, p_addr, size, usize(writable)) != 0;
157}162}