Commit Graph

  • 52c17be29d dev: check that driver has a major number before registering device Max Wash 2023-06-03 21:06:33 +01:00
  • b7b0691b8f dev: implement driver objects to organise and identify devices Max Wash 2023-06-02 19:35:07 +01:00
  • 577abf3bba obj: implement link objects Max Wash 2023-06-02 19:34:33 +01:00
  • 648c370679 kexts: add stub VGA16 framebuffer driver Max Wash 2023-06-02 19:32:56 +01:00
  • fcf5dc32b9 kernel: add BITMAP_NPOS definition Max Wash 2023-06-02 19:31:09 +01:00
  • d02d05d922 obj: add read() and write() object callbacks Max Wash 2023-05-14 21:11:32 +01:00
  • 0238008986 dev: auto-generate device name in device_register if name is unspecified Max Wash 2023-05-11 21:19:00 +01:00
  • 802e610eed ps2kbd: move to kexts/drivers/input subtree Max Wash 2023-05-11 20:30:52 +01:00
  • 664e5f57b2 test: report keypresses from /dev/system/misc/ps2kbd Max Wash 2023-05-10 20:34:53 +01:00
  • 8dd7616594 ps2kbd: create input devices for kbd/mouse. report keypress events. Max Wash 2023-05-10 20:34:14 +01:00
  • 05395542a8 dev: implement writing/reading input events to/from input devices Max Wash 2023-05-10 20:33:40 +01:00
  • ad8865fe66 obj: implement object_namespace_get_object() Max Wash 2023-05-10 20:33:08 +01:00
  • 422d4fb375 kernel: implement ring-buffer data structure Max Wash 2023-05-10 20:30:16 +01:00
  • 63f27adb1b sched: implement waitqueues Max Wash 2023-05-10 20:29:57 +01:00
  • b3957b311a x86_64: remove printk call from isr/irq handlers Max Wash 2023-05-10 20:22:51 +01:00
  • a4f2dec1fb kext: add PS/2 keyboard/mouse driver Max Wash 2023-05-08 18:19:28 +01:00
  • add48f8a83 x86_64: acpi: create acpi bus device Max Wash 2023-05-08 18:19:12 +01:00
  • 2638b8c27a x86_64: initialise device subsystem during boot Max Wash 2023-05-08 18:18:59 +01:00
  • 1a633eee6b dev: implement object callbacks for devices. add misc device Max Wash 2023-05-08 18:18:34 +01:00
  • 4d04959219 build: add rules to configure kexts Max Wash 2023-05-08 18:17:14 +01:00
  • 482e65d13d x86_64: irq: add array of asm irq entry points Max Wash 2023-05-08 08:08:33 +01:00
  • 55c8918d28 x86_64: serial: enable interrupts and announce incoming data Max Wash 2023-05-07 21:44:03 +01:00
  • ab4eeb8e16 x86_64: expand IDT to 256 entries Max Wash 2023-05-07 21:43:04 +01:00
  • d8326cfec5 sched: remove unused code Max Wash 2023-05-07 21:42:38 +01:00
  • 3435c2bffe x86_64: acpi: add dest CPU parameter to io_apic::map_irq() Max Wash 2023-05-07 21:42:22 +01:00
  • aaad77aea5 x86_64: zero-init BSP and AP CPU cpu_data before use Max Wash 2023-05-07 21:40:12 +01:00
  • 9f3c080e41 vm: minimum and maximum zone IDs are now defined in arch/../vm.h Max Wash 2023-05-07 21:38:08 +01:00
  • ad2ce0b2ab build: add rule to run kernel under Bochs Max Wash 2023-05-07 21:36:53 +01:00
  • bd26039102 kernel: test: adjust tick-tock multithreading test timing Max Wash 2023-05-07 12:38:06 +01:00
  • 36834c26b8 doc: document serial port usage for debugging Max Wash 2023-05-07 12:37:39 +01:00
  • d2972403dc repo: update gitignore Max Wash 2023-05-07 12:37:21 +01:00
  • 96e695704a x86_64: allow serial port baud rate to be configured Max Wash 2023-05-07 12:22:47 +01:00
  • 9e16a2e70c build: add tool to install a bootable ISO to a removable block device Max Wash 2023-05-07 12:21:25 +01:00
  • a79d109fcc obj: add header-offset field to object_type Max Wash 2023-05-06 22:22:05 +01:00
  • d8de0ddfe4 build: add rules to build and run iso images Max Wash 2023-05-06 22:20:28 +01:00
  • 6239b09e8e x86_64: panic on general protection fault Max Wash 2023-05-06 22:19:55 +01:00
  • 6cf8f4234a x86_64: print stack trace during panic Max Wash 2023-05-06 22:18:34 +01:00
  • 90afd997e6 tools: add tool to generate kernel boot cd image Max Wash 2023-05-06 21:34:02 +01:00
  • a9e95db39b x86_64: write printk messages to COM1 serial port Max Wash 2023-05-06 21:33:36 +01:00
  • 94ea756b31 kernel: write to all registered consoles with printk() Max Wash 2023-05-06 21:32:19 +01:00
  • f52ca2f1e2 obj: object header is no longer allocated automatically Max Wash 2023-05-06 19:48:14 +01:00
  • 79c30e5393 tools: sync: create .config directory if it doesn't exist Max Wash 2023-05-06 19:45:09 +01:00
  • 76919abb10 x86_64: smp: initialise APs in parallel Max Wash 2023-05-05 15:25:55 +01:00
  • cec6b644ac kernel: add functions to query the number of available/online CPUs Max Wash 2023-05-05 15:25:44 +01:00
  • 2ca1bd0b06 x86_64: acpi: only mask pit irq line during bsp init Max Wash 2023-05-05 15:20:20 +01:00
  • 7d321fb7f0 sched: add kernel thread creation and SMP-aware thread scheduling Max Wash 2023-05-04 21:43:18 +01:00
  • bb524c1576 kernel: add support for getting percpu variables that belong to other CPUs Max Wash 2023-05-04 21:42:51 +01:00
  • 3f91c96050 x86_64: smp: flag cpu as online during bootstrap Max Wash 2023-05-04 21:41:39 +01:00
  • a3df88f062 kernel: fix bad offset calculation in bitmap_check() Max Wash 2023-05-04 21:41:15 +01:00
  • 5611fce641 x86_64: smp: query CPU ID using CPUID during bootstrap Max Wash 2023-05-04 19:00:40 +01:00
  • cd257e41cf x86_64: smp: reset __this_ap_ok to 0 before starting AP Max Wash 2023-05-03 20:20:22 +01:00
  • 4bcd00fc3c x86_64: smp: set AP idle thread ID to CPU ID Max Wash 2023-05-03 20:19:56 +01:00
  • 3a315901ba sched: fix create_idle_thread() not initialising tr_parent Max Wash 2023-05-03 20:19:11 +01:00
  • cbd6aae037 kernel: test: replace schedule_timeout with milli_sleep Max Wash 2023-05-03 19:27:58 +01:00
  • d0371d9204 x86_64: create idle thread and initialise runqueue during AP bootstrap Max Wash 2023-05-03 19:27:39 +01:00
  • c64577e24e sched: add function to create per-cpu idle threads Max Wash 2023-05-03 19:27:18 +01:00
  • ad58693dfb x86_64: panic: fix printk formatting specifiers for cpu registers Max Wash 2023-05-03 19:26:19 +01:00
  • a52571eb19 kernel: add panic() function that accepts a cpu_context Max Wash 2023-05-03 19:22:12 +01:00
  • 390fe86657 x86_64: enable NX protection during AP bootstrap Max Wash 2023-05-03 19:20:07 +01:00
  • 2a96aa7be9 build: fix arch cflags not being used when compiling C++ files Max Wash 2023-05-03 19:19:21 +01:00
  • 4677c881e1 x86_64: acpi: bring up other APs in long mode Max Wash 2023-05-01 18:13:44 +01:00
  • 223b37a113 vm: only align slab headers when offslab is being used Max Wash 2023-05-01 18:12:46 +01:00
  • 654e54653c x86_64: pmap: implement pmap_add() Max Wash 2023-05-01 18:12:07 +01:00
  • fbbe339f72 sched: schedule() no longer switches threads when preempt_count > 0 Max Wash 2023-05-01 08:27:18 +01:00
  • 40762ffb95 kernel: add function to query the current preempt count Max Wash 2023-05-01 08:26:41 +01:00
  • 194efd4b6b sched: fix timeout_expiry() not releasing its reference to this_cpu Max Wash 2023-05-01 08:26:13 +01:00
  • 8a0291c9b3 sched: add timer tasks and schedule_timeout() Max Wash 2023-04-30 21:09:36 +01:00
  • 085c3d2a89 sched: add kernel-mode context switching Max Wash 2023-04-30 14:27:57 +01:00
  • 2cb2d9100a x86_64: define struct offsets for access from assembly Max Wash 2023-04-30 14:26:37 +01:00
  • c945ee059a build: define source root directory and kernel arch for tool makefiles Max Wash 2023-04-30 14:25:41 +01:00
  • f349e4963c x86_64: charge clock cycles to threads when handling IRQs Max Wash 2023-04-28 21:06:57 +01:00
  • e2131b08ac sched: track CPU clock cycles used by threads Max Wash 2023-04-28 21:05:48 +01:00
  • 6b1b4a2416 kernel: add function to calculate delta between two cycle timestamps Max Wash 2023-04-28 21:04:50 +01:00
  • 72d8facd47 kernel: add standard clock system Max Wash 2023-04-28 20:51:51 +01:00
  • 995e364b21 x86_64: acpi: fix bad local APIC register offset Max Wash 2023-04-28 20:49:46 +01:00
  • e7fe5a8f8e kernel: add function to query CPU clock cycle count Max Wash 2023-04-22 21:07:34 +01:00
  • a8a6ff123e kxld: register kernel self pseudo-kext Max Wash 2023-04-15 09:12:47 +01:00
  • b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs Max Wash 2023-04-12 20:17:11 +01:00
  • 0d75e347e9 doc: document object layout and definitions Max Wash 2023-04-09 21:26:56 +01:00
  • f7d581d352 obj: remove unused ob_parent pointer from object_t Max Wash 2023-04-09 21:26:33 +01:00
  • e38ca58f18 kxld: publish kext objects in //kexts Max Wash 2023-04-09 20:40:06 +01:00
  • 5d9f193aa2 obj: objects can now be published in the namespace root Max Wash 2023-04-09 20:35:17 +01:00
  • b1b16ba19c kernel: reduce log message spam during boot Max Wash 2023-04-09 17:14:19 +01:00
  • eb998860a5 kxld: implement internal kext dependency resolution and initialisation Max Wash 2023-04-09 16:43:03 +01:00
  • 076a15e47b kernel: add second example kext for dependency test Max Wash 2023-04-09 16:42:16 +01:00
  • c7fdb81ef9 kernel: implement string hashing with FNV Max Wash 2023-04-09 16:39:08 +01:00
  • 981a5f2a0d kernel: add kern_status_string() Max Wash 2023-04-09 16:38:31 +01:00
  • 80f5e0483c sched: initialise kernel_thread parent ptr Max Wash 2023-04-09 16:38:08 +01:00
  • da415c7f6d kernel: implement panic() Max Wash 2023-04-09 16:35:15 +01:00
  • 9b75ca8b8c kernel: enumerate internal kexts during boot Max Wash 2023-04-08 09:27:21 +01:00
  • a1f54fd156 kexttool: store extensions.yaml in .config instead of build Max Wash 2023-04-08 09:26:06 +01:00
  • e472c83d28 tools: kexttool: implement Makefile generation for internal kexts Max Wash 2023-04-06 21:20:20 +01:00
  • 3e2164c7c2 kernel: rename extensions/ to kexts/ Max Wash 2023-04-06 21:18:56 +01:00
  • 84e5b848c7 tools: sync: update script filename in in_source_tree() Max Wash 2023-04-05 18:55:24 +01:00
  • eb22e72568 build: add subcommands to kexttool Max Wash 2023-04-05 18:53:10 +01:00
  • 3ec25da693 kext: rename extension.info to extension.yaml Max Wash 2023-04-04 11:01:04 +01:00
  • 7128bbf72a kernel: add sample kernel extension Max Wash 2023-04-04 10:59:52 +01:00
  • fadab38da7 build: add a tool to scan extensions/ for kernel extensions Max Wash 2023-04-04 10:59:42 +01:00
  • 06ba21bd9d build: standardise script filenames Max Wash 2023-04-04 09:59:25 +01:00
  • 5b53168c5f dev: add functions to create device objects Max Wash 2023-04-03 16:59:14 +01:00