mirror of
https://codeberg.org/TicklishHoneyBee/CLIte.git
synced 2026-03-11 09:04:37 +00:00
add /dev/console and /dev/time, and fix a bug in default device initialisation
This commit is contained in:
parent
daa5f39fdc
commit
524e028ad6
1 changed files with 47 additions and 5 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue