mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 15:08:21 +00:00
scheduler: don't depend on devfs being mounted
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
#include <kernel/elf.h>
|
#include <kernel/elf.h>
|
||||||
#include <kernel/file.h>
|
#include <kernel/file.h>
|
||||||
#include <semaphore.h>
|
#include <semaphore.h>
|
||||||
|
#include <kernel/devfs.h>
|
||||||
|
|
||||||
#define QUANTUM_US 100000
|
#define QUANTUM_US 100000
|
||||||
#define SCHEDULER_STACK_SIZE 4096
|
#define SCHEDULER_STACK_SIZE 4096
|
||||||
@@ -438,20 +439,21 @@ void sched_runinit() {
|
|||||||
__assert(interpinterp == NULL);
|
__assert(interpinterp == NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
vnode_t *stdinnode;
|
vnode_t *consolenode;
|
||||||
__assert(vfs_open(vfsroot, "/dev/console", V_FFLAGS_READ, &stdinnode) == 0);
|
__assert(devfs_getbyname("console", &consolenode) == 0);
|
||||||
vnode_t *stdoutnode;
|
__assert(VOP_OPEN(&consolenode, V_FFLAGS_READ, &proc->cred) == 0)
|
||||||
__assert(vfs_open(vfsroot, "/dev/console", V_FFLAGS_WRITE, &stdoutnode) == 0);
|
VOP_HOLD(consolenode);
|
||||||
vnode_t *stderrnode;
|
__assert(VOP_OPEN(&consolenode, V_FFLAGS_WRITE, &proc->cred) == 0)
|
||||||
__assert(vfs_open(vfsroot, "/dev/console", V_FFLAGS_WRITE, &stderrnode) == 0);
|
VOP_HOLD(consolenode);
|
||||||
|
__assert(VOP_OPEN(&consolenode, V_FFLAGS_WRITE, &proc->cred) == 0)
|
||||||
|
|
||||||
file_t *stdin = fd_allocate();
|
file_t *stdin = fd_allocate();
|
||||||
file_t *stdout = fd_allocate();
|
file_t *stdout = fd_allocate();
|
||||||
file_t *stderr = fd_allocate();
|
file_t *stderr = fd_allocate();
|
||||||
|
|
||||||
stdin->vnode = stdinnode;
|
stdin->vnode = consolenode;
|
||||||
stdout->vnode = stdoutnode;
|
stdout->vnode = consolenode;
|
||||||
stderr->vnode = stderrnode;
|
stderr->vnode = consolenode;
|
||||||
|
|
||||||
stdin->flags = FILE_READ;
|
stdin->flags = FILE_READ;
|
||||||
stdout->flags = stderr->flags = FILE_WRITE;
|
stdout->flags = stderr->flags = FILE_WRITE;
|
||||||
|
|||||||
Reference in New Issue
Block a user