Skip to content

Commit 08ea0fd

Browse files
committed
Improve egg: adapt mutiple tty drv
1 parent 6347074 commit 08ea0fd

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

kernel/sched/easy.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,18 @@ static __inline void egg2(struct task_struct *p)
5555
{
5656
char msg_buf[256] = {0}; uint8_t msg_len = 0;
5757
msg_len = sprintf(msg_buf, "\033[1;33mWarning from Prof with %s(PID=%lld):\033[0m %s\n", p->comm, p->pid, prof_words[get_cycles()%(sizeof(prof_words)/sizeof(char *))]);
58-
uart_write233(p->signal->tty, msg_buf, msg_len, 0); // no flush, prevent hardware corruption
58+
switch(p->signal->tty->driver->type) {
59+
case TTY_DRIVER_TYPE_SERIAL:
60+
uart_write233(p->signal->tty, msg_buf, msg_len, 0); // no flush, prevent hardware corruption
61+
break;
62+
case TTY_DRIVER_TYPE_CONSOLE:
63+
case TTY_DRIVER_TYPE_PTY:
64+
p->signal->tty->driver->ops->write(p->signal->tty, msg_buf, msg_len);
65+
break;
66+
default:
67+
pr_alert("egg2: unknown %s type %d\n", p->signal->tty->name, p->signal->tty->driver->type);
68+
break;
69+
}
5970
}
6071
else pr_alert("\033[1;31mProf was ANGRY with %s(PID=%lld):\033[0m %s\n", p->comm, p->pid, prof_words[get_cycles()%(sizeof(prof_words)/sizeof(char *))]);
6172
last_yield = global_timekeeper.ktime_sec;

0 commit comments

Comments
 (0)