summaryrefslogtreecommitdiff
path: root/kernel/drivers
AgeCommit message (Collapse)Author
2024-12-12formatting: Use clang-format on all projectsAnton Kling
This commit also add braces to all `if` statements.
2024-12-09timer: Use strings instead of direct int64_t to communicate with userlandAnton Kling
This makes it easier to write and read from /dev/clock using shell scripts. The actual performance decrease will be minimal and the interface is not that perfect for proper time keeping anyways.
2024-12-09mmu: Make certain allocations physical and virtual mapping linearAnton Kling
Previously it was possible for fragmentation to occur and as a result certain allocations would have a linear virtual address space but not a linear physical address space. This is bad since a lot of calls to kmalloc_align rely upon both being linear, it has now been changed such that all allocations done by kmalloc_align now guarantee this mapping holds for both virtual and physical addresses. It was due to oversight and sheer luck that this had been working for so long.
2024-12-08audio: Control master volume through /dev/volumeAnton Kling
2024-12-02ac97: Messy fixes to audioAnton Kling
It seems to work completely now, but it is still very messy.
2024-11-30kernel: Change math.h to use macrosAnton Kling
Having min/max be functions was a stupid decision in the first place
2024-11-30ac97/audio: Add audioAnton Kling
Incomplete but still very cool
2024-11-28changesAnton Kling
2024-10-16kernel: Add RSOD(red screen of death)Anton Kling
This is not useful since 99% of the time I will have access to the serial output. But it does look cool.
2024-10-06Kernel/Networking: Modify outgoing packet in placeAnton Kling
This avoids creation of new buffers and unnecessary memcpys. The old interface still exists for UDP but will be removed when I am less lazy. From testing it does not appear to have any performance improvement but this is most likely due to other bottlenecks as extra copies should always be worse.
2024-07-11PCI: Fix bug not account for different bar indexAnton Kling
2024-07-08Kernel/Net: Don't use kmalloc to create send buffersAnton Kling
Current method is also really bad since it uses multiple copies when it should instead just copy to the send buffer of the network card directly. But I have other things that I want to prioritize first.
2024-07-06Kernel: Add kmalloc scanAnton Kling
This will scan for possible overflows in the program. It is a somewhat expensive operation but really useful for debugging.
2024-07-04TCP: Allow delay for sendsAnton Kling
This is not at all optimal for applications that already buffer their data but can have a huge impact on those that don't. Applications that don't wish to use this should disable this for their socket.
2024-07-04PIT: Fix dumb bugAnton Kling
The incorrect timer was being used for TCP ACK flush
2024-07-04Random: Improve random seeding.Anton Kling
Now it appears to be sufficiently good at producing a distinct seed at each boot without using a /etc/seed file. Previously it did not do this. Of course this is nowhere near cryptographically secure but randomness does assist with things such as kmalloc.
2024-07-04CMOS: Make read/write calls asyncAnton Kling
This can speed up boot times since CMOS would otherwise have to wait before it could perform a read/write call. Now it gets triggered by a interrupt.
2024-07-03Kernel/Time: Improve time keepingAnton Kling
This makes use of TSC and now provides a file system interface for userland programs to change the system time.
2024-07-03CMOS: Add basic CMOS RTC supportAnton Kling
2024-07-03Kernel: Add simple support for timer using TSCAnton Kling
2024-07-02ahci: Bug fix, turns out the async optimization does not work that wellAnton Kling
2024-06-30ahci/ext2: small fixesAnton Kling
2024-06-30Kernel: cleanupAnton Kling
2024-06-30AHCI: Optimization to writesAnton Kling
Now it avoids waiting for completion if possible and can instead batch commands.
2024-06-30AHCI: Only check command slots that existAnton Kling
2024-06-28Kernel: Change naming scheme for certain structsAnton Kling
2024-06-28RTL8139: Add out of memory conditionsAnton Kling
2024-06-27RTL8139: Masking "Transmit OK" interruptsAnton Kling
2024-06-27RTL8139: Nicer codeAnton Kling
2024-06-27stuffAnton Kling
2024-06-26TCP: Delay ACKs to batch together packets ACKedAnton Kling
2024-06-26Kernel: Code cleanupAnton Kling
2024-06-26Networking stuffAnton Kling
TCP is now in a somewhat good state
2024-06-25Optimize mouse driver to perform more work in kernelAnton Kling
Instead of sending every event to userland they now get handeld in the kernel when possible. It will now only send out events when buttons are clicked or the mouse position is requested by userland.
2024-06-23Kernel: Fix small out of memory issuesAnton Kling
2024-06-22Kernel stuffAnton Kling
2024-06-17Improve PIT timer freqAnton Kling
2024-06-17Reorganize logging codeAnton Kling
2024-06-09Add UDPAnton Kling
2024-05-05Kernel: Clear more interrupts for mouse driverAnton Kling
I am not sure why the mouse requires interrupt line 2 to be cleared.
2024-05-01Kernel/Keyboard: Only write to buffer after it is initializedAnton Kling
2024-04-29Kernel/Socket: Move sockets back to being file descriptorsAnton Kling
2024-04-28Kernel: Use ringbuffer for keyboard and mouse eventsAnton Kling
2024-04-27Kernel: Make file descriptor numbers reusable.Anton Kling
Instead of using the "append only" list it now uses "relist" which allows for indexes to be removed.
2024-04-26Kernel/VFS: Change polling from variables to functionsAnton Kling
Instead of having to store state in variables functions are called to check the object directly.
2024-04-26Kernel: More out of memory condition checksAnton Kling
2024-04-18Kernel: Fix compiler warningsAnton Kling
2024-04-15Bug fix and cleanup.Anton Kling
2024-04-02Kernel: Use "struct list" to handle file descriptors instead of a fixed ↵Anton Kling
sized array
2024-03-25Random changesAnton Kling