[kernel] Remove old fake stdout channel/task

This was useful for testing channels, but it just gets in the way now.
This commit is contained in:
Justin C. Miller
2021-01-20 01:30:33 -08:00
parent 3282a3ae34
commit 0ae2f935af

View File

@@ -67,46 +67,6 @@ run_constructors()
}
}
channel *std_out = nullptr;
void
stdout_task()
{
uint8_t buffer[257];
auto *ent = reinterpret_cast<log::logger::entry *>(buffer);
auto *cons = console::get();
log::info(logs::task, "Starting kernel stdout task");
scheduler &s = scheduler::get();
thread *th = thread::from_tcb(s.current());
while (true) {
j6_signal_t current = std_out->signals();
if (!(current & j6_signal_channel_can_recv)) {
th->wait_on_signals(std_out, j6_signal_channel_can_recv);
s.schedule();
}
size_t n = 256;
j6_status_t status = std_out->dequeue(&n, buffer);
if (status != j6_status_ok) {
log::warn(logs::task, "Kernel stdout error: %x", status);
return;
}
buffer[n] = 0;
const char *s = reinterpret_cast<const char *>(buffer);
while (n) {
size_t r = cons->puts(s);
n -= r + 1;
s += r + 1;
}
}
}
void
kernel_main(args::header *header)
{
@@ -115,6 +75,7 @@ kernel_main(args::header *header)
init_console();
logger_init();
cpu_validate();
setup_pat();
bool has_video = false;
@@ -135,8 +96,6 @@ kernel_main(args::header *header)
run_constructors();
memory_initialize_post_ctors(header);
cpu_validate();
for (size_t i = 0; i < header->num_modules; ++i) {
args::module &mod = header->modules[i];
switch (mod.type) {
@@ -157,9 +116,9 @@ kernel_main(args::header *header)
device_manager &devices = device_manager::get();
devices.parse_acpi(header->acpi_table);
interrupts_enable();
devices.init_drivers();
devices.get_lapic()->calibrate_timer();
interrupts_enable();
/*
block_device *disk = devices->get_block_device(0);
@@ -188,8 +147,6 @@ kernel_main(args::header *header)
syscall_enable();
scheduler *sched = new scheduler(devices.get_lapic());
std_out = new channel;
// Skip program 0, which is the kernel itself
for (size_t i = 1; i < header->num_programs; ++i) {
args::program *prog = memory::to_virtual(&header->programs[i]);
@@ -201,11 +158,6 @@ kernel_main(args::header *header)
if (!has_video)
sched->create_kernel_task(logger_task, scheduler::max_priority/2, true);
sched->create_kernel_task(stdout_task, scheduler::max_priority-1, true);
const char stdout_message[] = "Hello on the fake stdout channel\n";
size_t message_size = sizeof(stdout_message);
std_out->enqueue(&message_size, reinterpret_cast<const void*>(stdout_message));
sched->start();
}