The Pedigree Project 0.1
VirtioRng.h
1/* Copyright (c) 2026, Pedigree Developers. SPDX-License-Identifier: ISC */
2#ifndef VIRTIO_RNG_H
3#define VIRTIO_RNG_H
4
5#include "pedigree/kernel/processor/MemoryRegion.h"
6
7#include "modules/drivers/common/virtio/VirtioPci.h"
8#include "modules/drivers/common/virtio/Virtqueue.h"
9
10class Device;
11
12class VirtioRng final {
13 public:
14 explicit VirtioRng(Device* pci);
15 ~VirtioRng();
16
17 bool seedKernel();
18
19 private:
20 void shutdown();
21
22 Device* m_Pci;
23 Virtio::PciTransport m_Transport;
24 Virtio::Queue m_Queue;
25 MemoryRegion m_Data;
26 bool m_Shutdown;
27};
28
29#endif
Special memory entity in the kernel's virtual address space.