diff options
author | alon@honor <none@none> | 2010-09-30 21:26:03 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-09-30 21:26:03 -0700 |
commit | c6a3fcbbe4b95bb3312d919c2be68e4dee7e5f14 (patch) | |
tree | 6599f172203f2a3d9e4a48dea12c18f9dd8f2611 | |
parent | cbea94c15230599f0f909329783e08f6713e766c (diff) |
library additions
-rw-r--r-- | src/library.js | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js index 9ad35fab..f25d4a9c 100644 --- a/src/library.js +++ b/src/library.js @@ -18,8 +18,6 @@ var Library = { __print__('\n'); }, - // ? - vsnprintf: function(dst, num, src, ptr) { var args = Array_copy(ptr+1, HEAP[ptr]); // # of args in in first place var text = __formatString.apply(null, [src].concat(args)); @@ -29,6 +27,8 @@ var Library = { } }, + // stdlib.h + atexit: function(func) { __ATEXIT__.push(func); }, @@ -120,6 +120,7 @@ var Library = { }, // Threading stuff LLVM adds sometimes + __cxa_guard_acquire: function() { return 0; }, @@ -138,6 +139,7 @@ var Library = { }, // iostream + _ZNSt8ios_base4InitC1Ev: function() { // need valid 'file descriptors' __ZSt4cout = 1; @@ -162,10 +164,34 @@ var Library = { }, // math.h + cos: function(x) { return Math.cos(x) }, sin: function(x) { return Math.sin(x) }, sqrt: function(x) { return Math.sqrt(x) }, llvm_sqrt_f64: 'sqrt', + + // unistd.h + + sysconf: function(name_) { + switch(name_) { + case 30: return 4096; // _SC_PAGE_SIZE + default: throw 'unknown sysconf param: ' + name_; + } + }, + + sbrk: function(bytes) { + return unfreeableMalloc(bytes); + }, + + // time.h + + time: function(ptr) { + var ret = Math.floor(Date.now()/1000); + if (ptr) { + HEAP[ptr] = ret; + } + return ret; + }, }; load('library_sdl.js'); |