diff --git a/clite/core.js b/clite/core.js index b5f0f78..f5f9980 100644 --- a/clite/core.js +++ b/clite/core.js @@ -97,8 +97,9 @@ var clite = { function defaultDevices() { // writing to /dev/local downloads data {name:'filename to save',data:'file content'} + { vfsapi.mkFile(0,'/dev/local'); - var n = vfsapi.getNode(0,'/dev/local'); + let n = vfsapi.getNode(0,'/dev/local'); if (!n) { clite.log.write('local device failure'); return false; @@ -118,9 +119,11 @@ var clite = { }; n.perms = 'crw-rw-rw-'; n.data.isdev = true; + } // /dev/null - writing to it goes nowhere, reading from it is always null + { vfsapi.mkFile(0,'/dev/null'); - n = vfsapi.getNode(0,'/dev/null'); + let n = vfsapi.getNode(0,'/dev/null'); if (!n) { clite.log.write('null device failure'); return false; @@ -135,9 +138,11 @@ var clite = { }; n.perms = 'crw-rw-rw-'; n.data.isdev = true; + } // /dev/random - writing to it goes nowhere, reading from it returns a stringified random number (integer) + { vfsapi.mkFile(0,'/dev/random'); - n = vfsapi.getNode(0,'/dev/random'); + let n = vfsapi.getNode(0,'/dev/random'); if (!n) { clite.log.write('random device failure'); return false; @@ -150,9 +155,11 @@ var clite = { }; n.perms = 'crw-rw-rw-'; n.data.isdev = true; + } // /dev/initctl - writing to it sets the runlevel, reading from it returns the current runlevel + { vfsapi.mkFile(0,'/dev/initctl'); - n = vfsapi.getNode(0,'/dev/initctl'); + let n = vfsapi.getNode(0,'/dev/initctl'); if (!n) { clite.log.write('initctl device failure'); return false; @@ -199,9 +206,26 @@ var clite = { }; n.perms = 'crw-rw-rw-'; n.data.isdev = true; + } + // /dev/console - an interface for the system console - required by posix/sus, currently no op + { + vfsapi.mkFile(0,'/dev/console'); + let n = vfsapi.getNode(0,'/dev/console'); + if (!n) { + clite.log.write('console device failure'); + return false; + } + n.data.content = { + read:null, + write:null + }; + n.perms = 'crw-rw-rw-'; + n.data.isdev = true; + } // /dev/tty - the main tty device, writing to it prints to the terminal, reading from it reads keyboard input + { vfsapi.mkFile(0,'/dev/tty'); - n = vfsapi.getNode(0,'/dev/tty'); + let n = vfsapi.getNode(0,'/dev/tty'); if (!n) { clite.log.write('tty failure'); return false; @@ -239,6 +263,24 @@ var clite = { n.perms = 'crw-rw-rw-'; n.data.isdev = true; n.data.istty = true; + } + // /dev/time - reading from it returns the current unix epoch time UTC + { + vfsapi.mkFile(0,'/dev/time'); + let n = vfsapi.getNode(0,'/dev/time'); + if (!n) { + clite.log.write('time device failure'); + return false; + } + n.data.content = { + read:function() { + return Date.now().toString(); + }, + write:null + }; + n.perms = 'crw-rw-rw-'; + n.data.isdev = true; + } return true; }