summaryrefslogtreecommitdiff
path: root/Kernel/VM/ScatterGatherList.h
AgeCommit message (Collapse)Author
2021-05-15Kernel: Make AnonymousVMObject physical page APIs OOM safeBrian Gianforcaro
AnonymousVMObject::create_with_physical_page(s) can't be NonnullRefPtr as it allocates internally. Fixing the API then surfaced an issue in ScatterGatherList, where the code was attempting to create an AnonymousVMObject in the constructor which will not be observable during OOM. Fix all of these issues and start propagating errors at the callers of the AnonymousVMObject and ScatterGatherList APis.
2021-05-13Kernel: Move VirtIO code away from using a scatter gather listSahan Fernando
Currently, when passing buffers into VirtIOQueues, we use scatter-gather lists, which contain an internal vector of buffers. This vector is allocated, filled and the destroy whenever we try to provide buffers into a virtqueue, which would happen a lot in performance cricital code (the main transport mechanism for certain paravirtualized devices). This commit moves it over to using VirtIOQueueChains and building the chain in place in the VirtIOQueue. Also included are a bunch of fixups for the VirtIO Console device, making it use an internal VM::RingBuffer instead.
2021-05-13Kernel: Move AHCIPort::ScatterList to VM::ScatterGatherListSahan Fernando
We want to move this out of the AHCI subsystem into the VM system, since other parts of the kernel may need to perform scatter-gather IO. We rename the current VM::ScatterGatherList impl that's used in the virtio subsystem to VM::ScatterGatherRefList, since its distinguishing feature from the AHCI scatter-gather list is that it doesn't own its buffers.
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-17Kernel: Implement a simple Scatter/Gather ListIdan Horowitz
This allows converting a single virtual buffer into its non-physically contiguous parts, this is especially useful for DMA-based devices that support scatter/gather-like functionality, as it eliminates the need to clone outgoing buffers into one physically contiguous buffer.