diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-09-25 12:40:53 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-09-25 12:40:53 -0700 |
commit | 0d423cd35b930cbc70806e90a4583ad70d552a11 (patch) | |
tree | 5f03e253cd82bf5dbc540f01f0b51940485fa96b /src/library.js | |
parent | 2c342b0b0a937d537811f71047441c3f6e0b74f2 (diff) |
fix stdin/out/err for newlib; fixes files
Diffstat (limited to 'src/library.js')
-rw-r--r-- | src/library.js | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js index 8a14d63d..227015be 100644 --- a/src/library.js +++ b/src/library.js @@ -21,8 +21,9 @@ LibraryManager.library = { stdin: 0, stdout: 0, stderr: 0, + _impure_ptr: 0, - $FS__deps: ['$ERRNO_CODES', '__setErrNo', 'stdin', 'stdout', 'stderr'], + $FS__deps: ['$ERRNO_CODES', '__setErrNo', 'stdin', 'stdout', 'stderr', '_impure_ptr'], $FS__postset: 'FS.init();', $FS: { // The path to the current folder. @@ -392,6 +393,16 @@ LibraryManager.library = { _stdout = allocate([2], 'void*', ALLOC_STATIC); _stderr = allocate([3], 'void*', ALLOC_STATIC); + // Newlib initialization + FS.streams[_stdin] = FS.streams[1]; + FS.streams[_stdout] = FS.streams[2]; + FS.streams[_stderr] = FS.streams[3]; + __impure_ptr = allocate(5, "void*", ALLOC_STATIC); + var impure = getValue(__impure_ptr, "void*"); + setValue(impure + {{{ QUANTUM_SIZE }}}, _stdin, "void*"); + setValue(impure + {{{ QUANTUM_SIZE }}}*2, _stdout, "void*"); + setValue(impure + {{{ QUANTUM_SIZE }}}*3, _stderr, "void*"); + // Once initialized, permissions start having effect. FS.ignorePermissions = false; } |