#include #include "proc/proc.h" #include "ipc/pipe/pipe.h" #include "kprintf.h" #include "hal/hal.h" #include "dlmalloc/malloc.h" #include "spinlock/spinlock.h" Proc *TERMPROC; void termproc_init(Proc *proc) { TERMPROC = proc; TERMPROC->pipes[1] = dlmalloc(sizeof(IpcPipe)); ipc_pipeinit(TERMPROC->pipes[1], TERMPROC->pid); } void termproc_fn(void) { char buf[100]; for (;;) { hal_memset(buf, 0, sizeof(buf)); spinlock_acquire(&TERMPROC->pipes_spinlock); IpcPipe *inpipe = TERMPROC->pipes[1]; spinlock_release(&TERMPROC->pipes_spinlock); int32_t read = ipc_piperead(inpipe, (uint8_t *)buf, sizeof(buf)); if (read > 0) { kprintf("%.*s", read, buf); } } }