Commit Graph

32 Commits

Author SHA1 Message Date
wash 607efa961f sched: task: implement task_config_get and task_config_set 2026-04-30 19:08:02 +01:00
wash 02a44f67b9 sched: task: implement task creation flags 2026-04-30 19:06:46 +01:00
wash 9a9b0f63ba sched: task: optional handle_table pointer can now be passed to task_create 2026-04-19 20:04:18 +01:00
wash 512356ac2d sched: enforce ref-counting on current task/thread pointers 2026-04-01 18:17:05 +01:00
wash 537242e606 kernel: handle: add support for allocating a specific handle value 2026-03-29 11:47:22 +01:00
wash 7dc0c742fa kernel: rebuild object ref-counting using atomic types 2026-03-24 19:10:36 +00:00
wash a2c89df195 kernel: convert some verbose log messages to trace messages 2026-03-21 10:27:23 +00:00
wash 4551e7b2e6 sched: implement various ways to end tasks and threads 2026-03-18 21:07:43 +00:00
wash c628390f4a vm: replace vm-region with address-space
address-space is a non-recursive data structure, which contains a flat list of vm_areas representing
mapped vm-objects.

userspace programs can no longer create sub-address-spaces. instead, they can reserve portions of
the address space, and use that reserved space to create mappings.
2026-03-13 19:44:50 +00:00
wash 6ba236b2fe kernel: resolving a handle now increments the refcount of the corresponding object 2026-03-12 20:42:05 +00:00
wash 3f21e888d6 sched: split sched.h into separate header files 2026-03-12 20:30:36 +00:00
wash 4c35723959 sched: add helper functions for opening and resolving handles for a task 2026-02-19 19:16:59 +00:00
wash 2f413c603d kernel: all string parameters now take a corresponding length parameter 2026-02-19 19:08:17 +00:00
wash 6019c9307d kernel: separate headers into kernel and user headers
all kernel headers have been moved from include/mango to include/kernel
and include definitions that are only relevant to kernel-space.

any definitions that are relevant to both kernel- and user-space
(i.e. type definitions, syscall IDs) have been moved to
include/mango within libmango.
2026-02-19 18:54:48 +00:00
wash ee82097017 sched: implement user-mode task and thread creation 2026-02-08 13:11:17 +00:00
wash d2f303680d sched: add root vm-region and handle table to struct task 2026-02-08 13:10:54 +00:00
wash 27bed1a3d3 sched: all kernel-mode tasks now have negative task ids 2026-02-08 13:09:29 +00:00
wash bcda479879 sched: implement task id allocation; remove thread id bitmap 2026-02-08 12:54:43 +00:00
wash 0490541dc9 kernel: adjust formatting 2026-02-08 12:32:48 +00:00
wash 62ec4c93ab meta: rename 2024-11-02 11:31:51 +00:00
wash d8326cfec5 sched: remove unused code 2023-05-07 21:42:38 +01:00
wash a79d109fcc obj: add header-offset field to object_type
this allows the object header to be placed anywhere within the larger
object structure.

the object system now also ensures that the object is zero-initialised
during allocation.
2023-05-06 22:22:05 +01:00
wash f52ca2f1e2 obj: object header is no longer allocated automatically 2023-05-06 19:48:14 +01:00
wash c64577e24e sched: add function to create per-cpu idle threads 2023-05-03 19:27:18 +01:00
wash 8a0291c9b3 sched: add timer tasks and schedule_timeout() 2023-04-30 21:09:36 +01:00
wash 085c3d2a89 sched: add kernel-mode context switching 2023-04-30 14:27:57 +01:00
wash e2131b08ac sched: track CPU clock cycles used by threads 2023-04-28 21:05:48 +01:00
wash b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs 2023-04-13 11:40:52 +01:00
wash 80f5e0483c sched: initialise kernel_thread parent ptr 2023-04-09 16:38:08 +01:00
wash 7d003da960 sched: add current_task(), current_thread(), and preempt_disable/enable() 2023-03-28 21:40:56 +01:00
wash 4785c767e4 sched: set kernel_task as current task of bootstrap cpu 2023-03-18 19:35:23 +00:00
wash 3e954b1e13 sched: add task and thread alloc functions 2023-03-09 19:55:52 +00:00