Bitcoin Core 28.99.0
P2P Digital Currency
Public Member Functions | Private Attributes | List of all members
PosixLockedPageAllocator Class Reference

LockedPageAllocator specialized for OSes that don't try to be special snowflakes. More...

Inheritance diagram for PosixLockedPageAllocator:
[legend]
Collaboration diagram for PosixLockedPageAllocator:
[legend]

Public Member Functions

 PosixLockedPageAllocator ()
 
void * AllocateLocked (size_t len, bool *lockingSuccess) override
 Allocate and lock memory pages. More...
 
void FreeLocked (void *addr, size_t len) override
 Unlock and free memory pages. More...
 
size_t GetLimit () override
 Get the total limit on the amount of memory that may be locked by this process, in bytes. More...
 
- Public Member Functions inherited from LockedPageAllocator
virtual ~LockedPageAllocator ()=default
 
virtual void * AllocateLocked (size_t len, bool *lockingSuccess)=0
 Allocate and lock memory pages. More...
 
virtual void FreeLocked (void *addr, size_t len)=0
 Unlock and free memory pages. More...
 
virtual size_t GetLimit ()=0
 Get the total limit on the amount of memory that may be locked by this process, in bytes. More...
 

Private Attributes

size_t page_size
 

Detailed Description

LockedPageAllocator specialized for OSes that don't try to be special snowflakes.

Definition at line 215 of file lockedpool.cpp.

Constructor & Destructor Documentation

◆ PosixLockedPageAllocator()

PosixLockedPageAllocator::PosixLockedPageAllocator ( )

Definition at line 226 of file lockedpool.cpp.

Member Function Documentation

◆ AllocateLocked()

void * PosixLockedPageAllocator::AllocateLocked ( size_t  len,
bool *  lockingSuccess 
)
overridevirtual

Allocate and lock memory pages.

If len is not a multiple of the system page size, it is rounded up. Returns nullptr in case of allocation failure.

If locking the memory pages could not be accomplished it will still return the memory, however the lockingSuccess flag will be false. lockingSuccess is undefined if the allocation fails.

Implements LockedPageAllocator.

Definition at line 236 of file lockedpool.cpp.

Here is the call graph for this function:

◆ FreeLocked()

void PosixLockedPageAllocator::FreeLocked ( void *  addr,
size_t  len 
)
overridevirtual

Unlock and free memory pages.

Clear the memory before unlocking.

Implements LockedPageAllocator.

Definition at line 254 of file lockedpool.cpp.

Here is the call graph for this function:

◆ GetLimit()

size_t PosixLockedPageAllocator::GetLimit ( )
overridevirtual

Get the total limit on the amount of memory that may be locked by this process, in bytes.

Return size_t max if there is no limit or the limit is unknown. Return 0 if no memory can be locked at all.

Implements LockedPageAllocator.

Definition at line 261 of file lockedpool.cpp.

Member Data Documentation

◆ page_size

size_t PosixLockedPageAllocator::page_size
private

Definition at line 223 of file lockedpool.cpp.


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