From 5ec95317649a05208e8054ffbb0df58790c20799 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 26 Apr 2014 09:41:47 +0300 Subject: [PATCH] os: Implement few file and process functions. --- os/os.py | 25 +++++++++++++++++++++++++ os/setup.py | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/os/os.py b/os/os.py index 875a54ea..d4dfaf52 100644 --- a/os/os.py +++ b/os/os.py @@ -1,4 +1,5 @@ import ffi +import array libc = ffi.open("libc.so.6") @@ -7,6 +8,10 @@ errno = libc.var("i", "errno") mkdir_ = libc.func("i", "mkdir", "si") read_ = libc.func("i", "read", "ipi") write_ = libc.func("i", "write", "iPi") +close_ = libc.func("i", "close", "i") +fork_ = libc.func("i", "fork", "") +pipe_ = libc.func("i", "pipe", "p") +_exit_ = libc.func("v", "_exit", "i") def check_error(ret): @@ -28,3 +33,23 @@ def write(fd, buf): r = write_(fd, buf, len(buf)) check_error(r) return r + +def close(fd): + r = close_(fd) + check_error(r) + return r + + +def fork(): + r = fork_() + check_error(r) + return r + +def pipe(): + a = array.array('i', [0, 0]) + r = pipe_(a) + check_error(r) + return a[0], a[1] + +def _exit(n): + _exit_(n) diff --git a/os/setup.py b/os/setup.py index 3378e568..92fb3532 100644 --- a/os/setup.py +++ b/os/setup.py @@ -1,7 +1,7 @@ from distutils.core import setup setup(name='micropython-os', - version='0.0.2', + version='0.0.3', description='os module for MicroPython', url='https://github.com/micropython/micropython/issues/405', author='MicroPython Developers',