SimpleKernel 1.17.0
Loading...
Searching...
No Matches
pci.hpp
Go to the documentation of this file.
1
5#pragma once
6
8
9namespace virtio {
10
16class PciTransport final : public Transport {
17 public:
18 [[nodiscard]] auto IsValid() const -> bool { return false; }
19 [[nodiscard]] auto GetDeviceId() const -> uint32_t { return 0; }
20 [[nodiscard]] auto GetVendorId() const -> uint32_t { return 0; }
21
22 [[nodiscard]] auto GetStatus() const -> uint32_t { return 0; }
23 auto SetStatus(uint32_t /*status*/) -> void {}
24
25 [[nodiscard]] auto GetDeviceFeatures() -> uint64_t { return 0; }
26 auto SetDriverFeatures(uint64_t /*features*/) -> void {}
27
28 [[nodiscard]] auto GetQueueNumMax(uint32_t /*queue_idx*/) -> uint32_t {
29 return 0;
30 }
31 auto SetQueueNum(uint32_t /*queue_idx*/, uint32_t /*num*/) -> void {}
32 auto SetQueueDesc(uint32_t /*queue_idx*/, uint64_t /*addr*/) -> void {}
33 auto SetQueueAvail(uint32_t /*queue_idx*/, uint64_t /*addr*/) -> void {}
34 auto SetQueueUsed(uint32_t /*queue_idx*/, uint64_t /*addr*/) -> void {}
35 [[nodiscard]] auto GetQueueReady(uint32_t /*queue_idx*/) -> bool {
36 return false;
37 }
38 auto SetQueueReady(uint32_t /*queue_idx*/, bool /*ready*/) -> void {}
39
40 auto NotifyQueue(uint32_t /*queue_idx*/) -> void {}
41 [[nodiscard]] auto GetInterruptStatus() const -> uint32_t { return 0; }
42 auto AckInterrupt(uint32_t /*ack_bits*/) -> void {}
43
44 [[nodiscard]] auto ReadConfigU8(uint32_t /*offset*/) const -> uint8_t {
45 return 0;
46 }
47 [[nodiscard]] auto ReadConfigU16(uint32_t /*offset*/) const -> uint16_t {
48 return 0;
49 }
50 [[nodiscard]] auto ReadConfigU32(uint32_t /*offset*/) const -> uint32_t {
51 return 0;
52 }
53 [[nodiscard]] auto ReadConfigU64(uint32_t /*offset*/) const -> uint64_t {
54 return 0;
55 }
56 [[nodiscard]] auto GetConfigGeneration() const -> uint32_t { return 0; }
57};
58
59} // namespace virtio
Virtio PCI 传输层(占位)
Definition pci.hpp:16
auto GetVendorId() const -> uint32_t
Definition pci.hpp:20
auto SetQueueNum(uint32_t, uint32_t) -> void
Definition pci.hpp:31
auto NotifyQueue(uint32_t) -> void
Definition pci.hpp:40
auto GetQueueReady(uint32_t) -> bool
Definition pci.hpp:35
auto IsValid() const -> bool
Definition pci.hpp:18
auto GetConfigGeneration() const -> uint32_t
Definition pci.hpp:56
auto SetQueueReady(uint32_t, bool) -> void
Definition pci.hpp:38
auto ReadConfigU32(uint32_t) const -> uint32_t
Definition pci.hpp:50
auto ReadConfigU8(uint32_t) const -> uint8_t
Definition pci.hpp:44
auto GetQueueNumMax(uint32_t) -> uint32_t
Definition pci.hpp:28
auto GetDeviceFeatures() -> uint64_t
Definition pci.hpp:25
auto SetQueueDesc(uint32_t, uint64_t) -> void
Definition pci.hpp:32
auto SetDriverFeatures(uint64_t) -> void
Definition pci.hpp:26
auto SetStatus(uint32_t) -> void
Definition pci.hpp:23
auto ReadConfigU16(uint32_t) const -> uint16_t
Definition pci.hpp:47
auto GetStatus() const -> uint32_t
Definition pci.hpp:22
auto GetDeviceId() const -> uint32_t
Definition pci.hpp:19
auto AckInterrupt(uint32_t) -> void
Definition pci.hpp:42
auto ReadConfigU64(uint32_t) const -> uint64_t
Definition pci.hpp:53
auto SetQueueUsed(uint32_t, uint64_t) -> void
Definition pci.hpp:34
auto GetInterruptStatus() const -> uint32_t
Definition pci.hpp:41
auto SetQueueAvail(uint32_t, uint64_t) -> void
Definition pci.hpp:33
Virtio 传输层基类(零虚表开销,C++23 Deducing this)
Definition transport.hpp:83
Definition defs.h:9