diff options
| author | Miguel <m.i@gmx.at> | 2018-09-21 12:56:51 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-21 12:56:51 +0200 |
| commit | c298ca7e6beaad0bcc32af6d4cf50d41b79f13b7 (patch) | |
| tree | b28e9c052cff3264439cad3c41b29262c60ba6ac /kernel/syscalls.c | |
| parent | f5281689c95758f17628f0286e0265ecf3385a8e (diff) | |
fix framebufffer/ textmode and clean userspace a little bit more
Diffstat (limited to 'kernel/syscalls.c')
| -rw-r--r-- | kernel/syscalls.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/kernel/syscalls.c b/kernel/syscalls.c index edc4751..2952c11 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -30,14 +30,24 @@ static fd fds[MAX_PID][MAX_FD]; static bool open_fd[MAX_PID][MAX_FD]; -void fd_init_std_streams(uint32_t pid) +void fd_init_std_streams(uint32_t pid,bool fb) { - if(pid==0) + static bool first=true; + if(pid==0&&first) { + first=false; //stdin / stdout /stderr fds[0][0]=fd_from_ringbuffer(); - fds[0][1]=fd_from_fb_term(); - fds[0][2]=fd_from_fb_term(); + if(!fb) // ega text mode + { + fds[0][1]=fd_from_term(); + fds[0][2]=fd_from_term(); + } + else + { + fds[0][1]=fd_from_fb_term(); + fds[0][2]=fd_from_fb_term(); + } open_fd[0][0]=true; open_fd[0][1]=true; open_fd[0][2]=true; @@ -52,6 +62,7 @@ void fd_init_std_streams(uint32_t pid) open_fd[pid][2]=true; } } +// /** errno helper */ void set_errno(int no) |
