From c298ca7e6beaad0bcc32af6d4cf50d41b79f13b7 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 21 Sep 2018 12:56:51 +0200 Subject: fix framebufffer/ textmode and clean userspace a little bit more --- kernel/syscalls.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'kernel/syscalls.c') 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) -- cgit v1.2.3