CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
ds::pointer::proxy::OffsetPtrAddr< Offset, T > Class Template Reference

Like the above, but with a constant offset on the interpretation of its addresss fields. More...

#include <pointer.h>

Public Types

using Type = T

Public Member Functions

 OffsetPtrAddr (void *c, ptraddr_t &r)
 operator T* ()
T * operator-> ()
OffsetPtrAddr & operator= (T *p)
OffsetPtrAddr & operator= (OffsetPtrAddr const &p)
bool operator== (OffsetPtrAddr &p)
auto operator<=> (OffsetPtrAddr &p)

Detailed Description

template<ptrdiff_t Offset, typename T>
class ds::pointer::proxy::OffsetPtrAddr< Offset, T >

Like the above, but with a constant offset on the interpretation of its addresss fields.

This is useful for building points-to-container data structures (rather than points-to-member as with the above two). The container_of and address-taking operations that move back and forth between container and link member should fuse away with the offsetting operations herein. You may prefer this if your common or fast-paths involve lots of container_of operations.

Definition at line 197 of file pointer.h.

Member Typedef Documentation

◆ Type

template<ptrdiff_t Offset, typename T>
using ds::pointer::proxy::OffsetPtrAddr< Offset, T >::Type = T

Definition at line 203 of file pointer.h.

Constructor & Destructor Documentation

◆ OffsetPtrAddr()

template<ptrdiff_t Offset, typename T>
ds::pointer::proxy::OffsetPtrAddr< Offset, T >::OffsetPtrAddr ( void * c,
ptraddr_t & r )
inline

Definition at line 205 of file pointer.h.

Member Function Documentation

◆ operator T*()

template<ptrdiff_t Offset, typename T>
ds::pointer::proxy::OffsetPtrAddr< Offset, T >::operator T* ( )
inline

Definition at line 210 of file pointer.h.

◆ operator->()

template<ptrdiff_t Offset, typename T>
T * ds::pointer::proxy::OffsetPtrAddr< Offset, T >::operator-> ( )
inline

Definition at line 217 of file pointer.h.

◆ operator<=>()

template<ptrdiff_t Offset, typename T>
auto ds::pointer::proxy::OffsetPtrAddr< Offset, T >::operator<=> ( OffsetPtrAddr< Offset, T > & p)
inline

Definition at line 246 of file pointer.h.

◆ operator=() [1/2]

template<ptrdiff_t Offset, typename T>
OffsetPtrAddr & ds::pointer::proxy::OffsetPtrAddr< Offset, T >::operator= ( OffsetPtrAddr< Offset, T > const & p)
inline

Definition at line 228 of file pointer.h.

◆ operator=() [2/2]

template<ptrdiff_t Offset, typename T>
OffsetPtrAddr & ds::pointer::proxy::OffsetPtrAddr< Offset, T >::operator= ( T * p)
inline

Definition at line 222 of file pointer.h.

◆ operator==()

template<ptrdiff_t Offset, typename T>
bool ds::pointer::proxy::OffsetPtrAddr< Offset, T >::operator== ( OffsetPtrAddr< Offset, T > & p)
inline

Definition at line 241 of file pointer.h.


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