| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2026-04-02 | fix styling | Lukas Oesch | 1 | -4/+4 | |
| 2026-04-02 | add windows development notes | Lukas Oesch | 1 | -1/+13 | |
| 2026-04-02 | docs: begin breathe documentation | Felix Morgner | 20 | -52/+227 | |
| 2026-04-02 | Merge branch 'fmorgner/develop-BA-FS26/pit-device' into develop-BA-FS26 | Felix Morgner | 26 | -81/+1165 | |
| This changeset introduces a central device management system. The system comprises the following components: - kapi::devices::bus (type) A bus can be both a real (physically present inside the machine) or virtual (purely conceptual) bus. Busses form a hierarchy rooted in the virtual root_bus (accessible via `kapi::devices::get_root_bus`). Busses are derived from `kapi::devices::device`, and own devices. This means that a bus can be attached to another bus. This facilitates a uniform structure for device ownership. Each device needs to be attached to exactly one bus. Virtual devices, e.g. RAM disks, should be attached to the root root bus (via the `add_child` member function). Once a device, or bus, has been attached to a bus, it will be initialized (by means of a call to the `init` member function). Busses are responsible to initialize their children. If a bus has already been initialized, any newly attached children will automatically be initialized. During initialization, the `probe` member function of the bus under initialization weill be invoked. This allows a bus implementation to determine if the hardware, if any, is ready to be initialized and to also perform any required initialization steps. IMPORTANT: busses take ownership of their children in the form of a `unique_ptr`. - kapi::devices (namespace) The functions `allocate_major_number`, `register_device`, `unregister_device`, and `find_device` form the device manager. The device manager is responsible for keeping a record of active devices, allowing O(log n) lookup of devices by major and minor, and O(n) lookup by name. Additionally, the device manager is responsible for handing out major numbers (via `allocate_major_number`) and keeping track of active devices. When a child is attached to a bus, it will also automatically be registered with the device manager. Lookup of devices via the device manager can be achieved by means of either overload of `find_device`. Devices should never ask the manager directly for a major number. Instead, a controller should be used, which requests a major number per device "class" (as in kind, not language class). For example, a RAM disk controller may request a single major number for all RAM disks it is going to create. When the controller creates a new device of a given "class", e.g. a RAM disk, it should then supply that major number to the new device instance. IMPORTANT: the device manager does not own the active devices. Rather it holds a `flat_map` indexed by `pair{major, minor}` and resolving to `kstd::observer_ptr<device>`. - kstd::observer_ptr (type) An observer pointer is a simple vocabulary type to express the concept of having no ownership of the pointed-to object. In essence it is equivalent to a standard C-style pointer, but expresses semantics by virtue of being a separate type. | |||||
| 2026-04-02 | x86_64: ensure PIT is not overwhelmed on config | Felix Morgner | 3 | -5/+15 | |
| 2026-04-02 | devices: don't automatically allocate major numbers in ctors | Felix Morgner | 7 | -10/+18 | |
| 2026-04-02 | kapi/bus: ensure all devices get initialized | Felix Morgner | 1 | -1/+1 | |
| 2026-04-02 | kapi: allow for device searches | Felix Morgner | 3 | -1/+39 | |
| 2026-04-02 | x86_64: implement legacy PIT driver | Felix Morgner | 10 | -25/+146 | |
| 2026-04-02 | kapi: extract common bus code | Felix Morgner | 7 | -141/+66 | |
| 2026-04-02 | x86_64/devices: implement ISA bus stub | Felix Morgner | 9 | -3/+140 | |
| 2026-04-02 | kapi: add basic device subsystem | Felix Morgner | 7 | -0/+208 | |
| 2026-04-02 | kstd: make string formattable | Felix Morgner | 1 | -0/+13 | |
| 2026-04-02 | kstd: move observer_ptr to bits | Felix Morgner | 4 | -6/+8 | |
| 2026-04-02 | kstd/observer_ptr: extend test suite | Felix Morgner | 2 | -24/+149 | |
| 2026-04-02 | kstd/tests: extend operation tracker | Felix Morgner | 2 | -62/+128 | |
| 2026-04-02 | kstd: add some basic observer_ptr tests | Felix Morgner | 3 | -3/+239 | |
| 2026-04-02 | kstd: introduce observer_ptr | Felix Morgner | 2 | -1/+156 | |
| 2026-04-02 | kapi/devices: introduce basic bus abstraction | Felix Morgner | 1 | -0/+40 | |
| 2026-04-02 | ci: reduce coverage verbosity | Felix Morgner | 1 | -3/+3 | |
| 2026-04-02 | ci: split build and test | Felix Morgner | 1 | -13/+19 | |
| 2026-04-02 | chore: remove valgrind core file | Felix Morgner | 1 | -0/+0 | |
| 2026-04-02 | kernel/tests: improve documentation | Felix Morgner | 7 | -10/+88 | |
| 2026-04-02 | kernel/tests: clean up implementation structure | Felix Morgner | 18 | -187/+261 | |
| 2026-04-02 | Merge branch 'fmorgner/develop-SA-FS26/kernel-bht' into 'develop-BA-FS26' | Marcel Braun | 32 | -57/+1298 | |
| Add experimental support for kernel tests See merge request teachos/kernel!20 | |||||
| 2026-04-01 | kernel/tests: prevent double mapping of pages | Felix Morgner | 3 | -1/+19 | |
| 2026-04-01 | kernel/tests: add basic heap allocator tests | Felix Morgner | 4 | -18/+118 | |
| 2026-04-01 | kernel/tests: don't rely on vector for fake memory | Felix Morgner | 3 | -12/+100 | |
| 2026-04-01 | kernel/test: rename test include to test_support | Felix Morgner | 14 | -22/+22 | |
| 2026-04-01 | kernel/tests: clean up fake memory implementation | Felix Morgner | 7 | -98/+166 | |
| 2026-04-01 | kernel/tests: improve memory cleanup | Felix Morgner | 1 | -6/+29 | |
| 2026-04-01 | kernel/tests: move initialization to a listener | Felix Morgner | 8 | -49/+90 | |
| 2026-04-01 | kstd: fix signatures of libc functions | Felix Morgner | 2 | -10/+10 | |
| 2026-04-01 | kernel: add ram disk device tests | Felix Morgner | 2 | -0/+120 | |
| 2026-04-01 | kernel: add bitmap_allocator tests | Felix Morgner | 4 | -11/+309 | |
| 2026-04-01 | kernel/tests: update coverage configuration | Felix Morgner | 3 | -3/+5 | |
| 2026-04-01 | kernel/tests: dissolve tests into source tree | Felix Morgner | 16 | -88/+85 | |
| 2026-04-01 | kernel/test: only initialize kernel when running tests | Felix Morgner | 1 | -9/+26 | |
| 2026-04-01 | kernel/tests: implement basic simulated memory | Felix Morgner | 6 | -5/+150 | |
| 2026-04-01 | kernel/tests: add kapi::memory::init stub | Felix Morgner | 3 | -0/+15 | |
| 2026-04-01 | kernel/tests: add kapi::interrupts::init stub | Felix Morgner | 3 | -4/+18 | |
| 2026-04-01 | kernel/tests: add kapi::cpu::init stub | Felix Morgner | 2 | -1/+19 | |
| 2026-04-01 | kernel/tests: implement platform CIO kapi | Felix Morgner | 8 | -20/+173 | |
| 2026-04-01 | kernel: begin basic bht implementation | Felix Morgner | 8 | -12/+119 | |
| 2026-04-01 | build: fix kernel+arch build | Felix Morgner | 2 | -30/+40 | |
| 2026-04-01 | kernel: split off objects into a library | Felix Morgner | 1 | -12/+19 | |
| 2026-03-31 | Merge branch 'move-device-in-kapi' into 'develop-BA-FS26' | Marcel Braun | 23 | -88/+89 | |
| move device into kapi See merge request teachos/kernel!19 | |||||
| 2026-03-31 | move device into kapi | Lukas Oesch | 23 | -88/+89 | |
| 2026-03-30 | Merge branch 'refactor' into 'develop-BA-FS26' | Lukas Oesch | 59 | -439/+437 | |
| Refactor See merge request teachos/kernel!18 | |||||
| 2026-03-30 | Rename ram_disk and storage files | marcel.braun | 12 | -60/+59 | |
