[kernel] Add thead kobject class

Add the thread kernel API object and move the scheduler to use threads
instead of processes for scheduling and task switching.
This commit is contained in:
2020-07-12 16:03:46 -07:00
parent 8687fe3786
commit 794c86f9b4
16 changed files with 504 additions and 230 deletions

View File

@@ -48,6 +48,7 @@ void memory_initialize_post_ctors(kernel::args::header *kargs);
using namespace kernel;
/*
class test_observer :
public kobject::observer
{
@@ -67,6 +68,7 @@ public:
const char *m_name;
};
*/
void
init_console()
@@ -174,7 +176,7 @@ kernel_main(args::header *header)
syscall_enable();
scheduler *sched = new (&scheduler::get()) scheduler(devices.get_lapic());
sched->create_kernel_task(-1, logger_task, scheduler::max_priority-1, process_flags::const_pri);
sched->create_kernel_task(logger_task, scheduler::max_priority-1, true);
for (auto &ird : initrds) {
for (auto &f : ird.files()) {
@@ -185,6 +187,7 @@ kernel_main(args::header *header)
log::info(logs::objs, "Testing object system:");
/*
test_observer obs1("event");
test_observer obs2("no handles");
{
@@ -197,6 +200,7 @@ kernel_main(args::header *header)
handle h(1, 0, &e);
}
*/
sched->start();
}