#include #include #include #include #include #include #include bool debugconsole_init (struct device* device, void* arg) { (void)device, (void)arg; return true; } void debugconsole_fini (struct device* device) { (void)device; } int debugconsole_putstr (struct device* device, struct proc* proc, struct reschedule_ctx* rctx, void* a1, void* a2, void* a3, void* a4) { (void)a2, (void)a3, (void)a4, (void)device, (void)rctx; char* string = (char*)a1; size_t* len = (size_t*)a2; if (string == NULL || len == NULL) return -ST_BAD_ADDRESS_SPACE; spin_lock (&proc->lock); int pid = proc->pid; spin_unlock (&proc->lock); debugprintf ("(CPU %d; PID %d) %.*s\n", thiscpu->id, pid, (int)*len, string); return ST_OK; }