summaryrefslogtreecommitdiff
path: root/Kernel/Devices/SB16.h
AgeCommit message (Collapse)Author
2020-01-20SB16: Map the DMA buffer in kernelspace so we can write to itAndreas Kling
This broke with the >3GB paging overhaul. It's no longer possible to write directly to physical addresses below the 8MB mark. Physical pages need to be mapped into kernel VM by using a Region. Fixes #1099.
2020-01-18Meta: Add license header to source filesAndreas Kling
As suggested by Joshua, this commit adds the 2-clause BSD license as a comment block to the top of every source file. For the first pass, I've just added myself for simplicity. I encourage everyone to add themselves as copyright holders of any file they've added or modified in some significant way. If I've added myself in error somewhere, feel free to replace it with the appropriate copyright holder instead. Going forward, all new source files should include a license header.
2019-12-01Kernel: Use a WaitQueue in the SoundBlaster 16 driverAndreas Kling
Instead of waking up to check for IRQ's regularly, use a WaitQueue and wake it up in the IRQ handler.
2019-11-04Kernel: Make File's can_read/can_write take a const FileDescription&Andreas Kling
Asking a File if we could possibly read or write it will never mutate the asking FileDescription&, so it should be const.
2019-07-14Kernel: Add Thread::block_until(Condition).Andreas Kling
Replace the class-based snooze alarm mechanism with a per-thread callback. This makes it easy to block the current thread on an arbitrary condition: void SomeDevice::wait_for_irq() { m_interrupted = false; current->block_until([this] { return m_interrupted; }); } void SomeDevice::handle_irq() { m_interrupted = true; } Use this in the SB16 driver, and in NetworkTask :^)
2019-07-13SB16: Use a snooze alarm to block the current thread while playing.Andreas Kling
2019-07-13Kernel: First cut of a sb16 driverRobin Burchell
Also add an AudioServer that (right now) doesn't do much. It tries to open, parse, and play a wav file. In the future, it can do more. My general thinking here here is that /dev/audio will be "owned" by AudioServer, and we'll do mixing in software before passing buffers off to the kernel to play, but we have to start somewhere.