diff options
author | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-12-29 18:38:28 -0800 |
---|---|---|
committer | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2010-12-29 18:38:28 -0800 |
commit | 5490b1d62710f5cf485e3ccf711bc462b9a52623 (patch) | |
tree | cc24f8b929fdba9a2550d43bfa00c41c8e54b69e /pk/file.c | |
parent | 37ed1d3297fcb84c67040a9bcebbfc2274f62735 (diff) | |
download | pk-5490b1d62710f5cf485e3ccf711bc462b9a52623.zip pk-5490b1d62710f5cf485e3ccf711bc462b9a52623.tar.gz pk-5490b1d62710f5cf485e3ccf711bc462b9a52623.tar.bz2 |
[pk] send stdout/stderr to both fesvr and debug console
Diffstat (limited to 'pk/file.c')
-rw-r--r-- | pk/file.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -3,6 +3,7 @@ #include "file.h" #include "pk.h" #include "frontend.h" +#include "pcr.h" #define MAX_FDS 128 file_t* fds[MAX_FDS]; @@ -112,13 +113,19 @@ int fd_close(int fd) return 0; } -sysret_t file_read(file_t* f, void* buf, size_t size) +sysret_t file_read(file_t* f, char* buf, size_t size) { return frontend_syscall(SYS_read,f->kfd,(long)buf,size,0); } -sysret_t file_write(file_t* f, const void* buf, size_t size) +sysret_t file_write(file_t* f, const char* buf, size_t size) { + if(f->kfd == 1 || f->kfd == 2) + { + for(size_t i = 0; i < size; i++) + mtpcr(buf[i],PCR_CONSOLE); + } + return frontend_syscall(SYS_write,f->kfd,(long)buf,size,0); } |