mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 06:17:34 +00:00
Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace
This commit is contained in:
parent
a1d7ebf85a
commit
93d98d4976
153 changed files with 473 additions and 467 deletions
|
@ -109,7 +109,7 @@ auto VirtIODevice::mapping_for_bar(u8 bar) -> MappedMMIO&
|
|||
auto& mapping = m_mmio[bar];
|
||||
if (!mapping.base) {
|
||||
mapping.size = PCI::get_BAR_space_size(pci_address(), bar);
|
||||
mapping.base = MM.allocate_kernel_region(PhysicalAddress(page_base_of(PCI::get_BAR(pci_address(), bar))), page_round_up(mapping.size), "VirtIO MMIO", Region::Access::Read | Region::Access::Write, Region::Cacheable::No);
|
||||
mapping.base = MM.allocate_kernel_region(PhysicalAddress(page_base_of(PCI::get_BAR(pci_address(), bar))), Memory::page_round_up(mapping.size), "VirtIO MMIO", Memory::Region::Access::Read | Memory::Region::Access::Write, Memory::Region::Cacheable::No);
|
||||
if (!mapping.base)
|
||||
dbgln("{}: Failed to map bar {}", m_class_name, bar);
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ protected:
|
|||
const String m_class_name;
|
||||
|
||||
struct MappedMMIO {
|
||||
OwnPtr<Region> base;
|
||||
OwnPtr<Memory::Region> base;
|
||||
size_t size { 0 };
|
||||
|
||||
template<typename T>
|
||||
|
|
|
@ -108,8 +108,8 @@ void VirtIOConsole::handle_queue_update(u16 queue_index)
|
|||
|
||||
void VirtIOConsole::setup_multiport()
|
||||
{
|
||||
m_control_receive_buffer = make<RingBuffer>("VirtIOConsole control receive queue", CONTROL_BUFFER_SIZE);
|
||||
m_control_transmit_buffer = make<RingBuffer>("VirtIOConsole control transmit queue", CONTROL_BUFFER_SIZE);
|
||||
m_control_receive_buffer = make<Memory::RingBuffer>("VirtIOConsole control receive queue", CONTROL_BUFFER_SIZE);
|
||||
m_control_transmit_buffer = make<Memory::RingBuffer>("VirtIOConsole control transmit queue", CONTROL_BUFFER_SIZE);
|
||||
|
||||
auto& queue = get_queue(CONTROL_RECEIVEQ);
|
||||
ScopedSpinLock queue_lock(queue.lock());
|
||||
|
|
|
@ -68,8 +68,8 @@ private:
|
|||
|
||||
unsigned m_device_id;
|
||||
|
||||
OwnPtr<RingBuffer> m_control_transmit_buffer;
|
||||
OwnPtr<RingBuffer> m_control_receive_buffer;
|
||||
OwnPtr<Memory::RingBuffer> m_control_transmit_buffer;
|
||||
OwnPtr<Memory::RingBuffer> m_control_receive_buffer;
|
||||
|
||||
WaitQueue m_control_wait_queue;
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ VirtIOConsolePort::VirtIOConsolePort(unsigned port, VirtIOConsole& console)
|
|||
, m_console(console)
|
||||
, m_port(port)
|
||||
{
|
||||
m_receive_buffer = make<RingBuffer>("VirtIOConsolePort Receive", RINGBUFFER_SIZE);
|
||||
m_transmit_buffer = make<RingBuffer>("VirtIOConsolePort Transmit", RINGBUFFER_SIZE);
|
||||
m_receive_buffer = make<Memory::RingBuffer>("VirtIOConsolePort Receive", RINGBUFFER_SIZE);
|
||||
m_transmit_buffer = make<Memory::RingBuffer>("VirtIOConsolePort Transmit", RINGBUFFER_SIZE);
|
||||
m_receive_queue = m_port == 0 ? 0 : m_port * 2 + 2;
|
||||
m_transmit_queue = m_port == 0 ? 1 : m_port * 2 + 3;
|
||||
init_receive_buffer();
|
||||
|
|
|
@ -50,8 +50,8 @@ private:
|
|||
u16 m_receive_queue {};
|
||||
u16 m_transmit_queue {};
|
||||
|
||||
OwnPtr<RingBuffer> m_receive_buffer;
|
||||
OwnPtr<RingBuffer> m_transmit_buffer;
|
||||
OwnPtr<Memory::RingBuffer> m_receive_buffer;
|
||||
OwnPtr<Memory::RingBuffer> m_transmit_buffer;
|
||||
|
||||
VirtIOConsole& m_console;
|
||||
unsigned m_port;
|
||||
|
|
|
@ -17,11 +17,11 @@ VirtIOQueue::VirtIOQueue(u16 queue_size, u16 notify_offset)
|
|||
size_t size_of_descriptors = sizeof(VirtIOQueueDescriptor) * queue_size;
|
||||
size_t size_of_driver = sizeof(VirtIOQueueDriver) + queue_size * sizeof(u16);
|
||||
size_t size_of_device = sizeof(VirtIOQueueDevice) + queue_size * sizeof(VirtIOQueueDeviceItem);
|
||||
auto queue_region_size = page_round_up(size_of_descriptors + size_of_driver + size_of_device);
|
||||
auto queue_region_size = Memory::page_round_up(size_of_descriptors + size_of_driver + size_of_device);
|
||||
if (queue_region_size <= PAGE_SIZE)
|
||||
m_queue_region = MM.allocate_kernel_region(queue_region_size, "VirtIO Queue", Region::Access::Read | Region::Access::Write);
|
||||
m_queue_region = MM.allocate_kernel_region(queue_region_size, "VirtIO Queue", Memory::Region::Access::Read | Memory::Region::Access::Write);
|
||||
else
|
||||
m_queue_region = MM.allocate_contiguous_kernel_region(queue_region_size, "VirtIO Queue", Region::Access::Read | Region::Access::Write);
|
||||
m_queue_region = MM.allocate_contiguous_kernel_region(queue_region_size, "VirtIO Queue", Memory::Region::Access::Read | Memory::Region::Access::Write);
|
||||
VERIFY(m_queue_region);
|
||||
// TODO: ensure alignment!!!
|
||||
u8* ptr = m_queue_region->vaddr().as_ptr();
|
||||
|
|
|
@ -93,7 +93,7 @@ private:
|
|||
OwnPtr<VirtIOQueueDescriptor> m_descriptors { nullptr };
|
||||
OwnPtr<VirtIOQueueDriver> m_driver { nullptr };
|
||||
OwnPtr<VirtIOQueueDevice> m_device { nullptr };
|
||||
OwnPtr<Region> m_queue_region;
|
||||
OwnPtr<Memory::Region> m_queue_region;
|
||||
SpinLock<u8> m_lock;
|
||||
|
||||
friend class VirtIOQueueChain;
|
||||
|
|
|
@ -21,7 +21,7 @@ UNMAP_AFTER_INIT VirtIORNG::VirtIORNG(PCI::Address address)
|
|||
}
|
||||
if (success) {
|
||||
finish_init();
|
||||
m_entropy_buffer = MM.allocate_contiguous_kernel_region(PAGE_SIZE, "VirtIORNG", Region::Access::Read | Region::Access::Write);
|
||||
m_entropy_buffer = MM.allocate_contiguous_kernel_region(PAGE_SIZE, "VirtIORNG", Memory::Region::Access::Read | Memory::Region::Access::Write);
|
||||
if (m_entropy_buffer) {
|
||||
memset(m_entropy_buffer->vaddr().as_ptr(), 0, m_entropy_buffer->size());
|
||||
request_entropy_from_host();
|
||||
|
|
|
@ -36,7 +36,7 @@ private:
|
|||
virtual void handle_queue_update(u16 queue_index) override;
|
||||
void request_entropy_from_host();
|
||||
|
||||
OwnPtr<Region> m_entropy_buffer;
|
||||
OwnPtr<Memory::Region> m_entropy_buffer;
|
||||
EntropySource m_entropy_source;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue