SimpleKernel 1.17.0
Loading...
Searching...
No Matches
MmioAccessor Struct Reference

通用 MMIO 寄存器访问器 More...

#include <mmio_accessor.hpp>

Collaboration diagram for MmioAccessor:
Collaboration graph

Public Member Functions

template<typename T >
auto Read (size_t offset) const -> T
 Read from MMIO register.
 
template<typename T >
auto Write (size_t offset, T val) const -> void
 Write to MMIO register.
 
构造/析构函数
 MmioAccessor (uint64_t base_addr=0)
 
 MmioAccessor (const MmioAccessor &)=default
 
 MmioAccessor (MmioAccessor &&)=default
 
auto operator= (const MmioAccessor &) -> MmioAccessor &=default
 
auto operator= (MmioAccessor &&) -> MmioAccessor &=default
 
 ~MmioAccessor ()=default
 

Public Attributes

uint64_t base {0}
 

Detailed Description

通用 MMIO 寄存器访问器

Definition at line 13 of file mmio_accessor.hpp.

Constructor & Destructor Documentation

◆ MmioAccessor() [1/3]

MmioAccessor::MmioAccessor ( uint64_t  base_addr = 0)
inlineexplicit

Definition at line 36 of file mmio_accessor.hpp.

36: base(base_addr) {}

◆ MmioAccessor() [2/3]

MmioAccessor::MmioAccessor ( const MmioAccessor )
default

◆ MmioAccessor() [3/3]

MmioAccessor::MmioAccessor ( MmioAccessor &&  )
default

◆ ~MmioAccessor()

MmioAccessor::~MmioAccessor ( )
default

Member Function Documentation

◆ operator=() [1/2]

auto MmioAccessor::operator= ( const MmioAccessor ) -> MmioAccessor &=default
default

◆ operator=() [2/2]

auto MmioAccessor::operator= ( MmioAccessor &&  ) -> MmioAccessor &=default
default

◆ Read()

template<typename T >
auto MmioAccessor::Read ( size_t  offset) const -> T
inline

Read from MMIO register.

Template Parameters
TRegister value type
Parameters
offsetByte offset from base address
Returns
Register value

Definition at line 19 of file mmio_accessor.hpp.

19 {
20 return *reinterpret_cast<volatile T*>(base + offset);
21 }
Here is the caller graph for this function:

◆ Write()

template<typename T >
auto MmioAccessor::Write ( size_t  offset,
val 
) const -> void
inline

Write to MMIO register.

Template Parameters
TRegister value type
Parameters
offsetByte offset from base address
valValue to write

Definition at line 28 of file mmio_accessor.hpp.

28 {
29 *reinterpret_cast<volatile T*>(base + offset) = val;
30 }
Here is the caller graph for this function:

Member Data Documentation

◆ base

uint64_t MmioAccessor::base {0}

Definition at line 32 of file mmio_accessor.hpp.

32{0};

The documentation for this struct was generated from the following file: