ReXGlue SDK
Loading...
Searching...
No Matches
lock_order.h File Reference
#include <mutex>
#include <shared_mutex>
#include <rex/platform.h>
#include <rex/types.h>
#include <rex/utility.h>

Go to the source code of this file.

Classes

class  rex::platform::RankedMutex
class  rex::platform::RankedSharedMutex

Namespaces

namespace  rex
namespace  rex::platform

Typedefs

using rex::platform::LockOrderHandler = void (*)(LockRank held, LockRank acquiring)

Enumerations

enum class  rex::platform::LockRank : u8 { rex::platform::kLeaf = 0xFF }

Functions

LockOrderHandler rex::platform::SetLockOrderHandler (LockOrderHandler handler)
void rex::platform::PushLockRank (LockRank rank)
void rex::platform::PopLockRank (LockRank rank)

Variables

constexpr LockRank rex::platform::lock_rank::kInterruptState {1}
constexpr LockRank rex::platform::lock_rank::kObjectIdentityMap {2}
constexpr LockRank rex::platform::lock_rank::kObjectTable {3}
constexpr LockRank rex::platform::lock_rank::kObjectNameMap {4}
constexpr LockRank rex::platform::lock_rank::kThreadRegistry {5}
constexpr LockRank rex::platform::lock_rank::kModuleRegistry {6}
constexpr LockRank rex::platform::lock_rank::kObjectState {7}
constexpr LockRank rex::platform::lock_rank::kDPC {8}

Detailed Description

License
BSD 3-Clause License See LICENSE file in the project root for full license text.

Variable Documentation

◆ kDPC

LockRank rex::platform::lock_rank::kDPC {8}
inlineconstexpr

Rank 8. Guards the deferred procedure call queue of the dispatcher.

◆ kInterruptState

LockRank rex::platform::lock_rank::kInterruptState {1}
inlineconstexpr

Rank 1, the lowest. Guards the interrupt state of the function dispatcher.

◆ kModuleRegistry

LockRank rex::platform::lock_rank::kModuleRegistry {6}
inlineconstexpr

Rank 6. Guards the module registry.

◆ kObjectIdentityMap

LockRank rex::platform::lock_rank::kObjectIdentityMap {2}
inlineconstexpr

Rank 2. Guards the identity map of the object table and the module load counts.

◆ kObjectNameMap

LockRank rex::platform::lock_rank::kObjectNameMap {4}
inlineconstexpr

Rank 4. Guards the name map of the object table.

◆ kObjectState

LockRank rex::platform::lock_rank::kObjectState {7}
inlineconstexpr

Rank 7. Guards the state of a single object, such as the APU.

◆ kObjectTable

LockRank rex::platform::lock_rank::kObjectTable {3}
inlineconstexpr

Rank 3. Guards the object table.

◆ kThreadRegistry

LockRank rex::platform::lock_rank::kThreadRegistry {5}
inlineconstexpr

Rank 5. Guards the thread registry.