mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:07:35 +00:00
Kernel: Make self-contained locking smart pointers their own classes
Until now, our kernel has reimplemented a number of AK classes to provide automatic internal locking: - RefPtr - NonnullRefPtr - WeakPtr - Weakable This patch renames the Kernel classes so that they can coexist with the original AK classes: - RefPtr => LockRefPtr - NonnullRefPtr => NonnullLockRefPtr - WeakPtr => LockWeakPtr - Weakable => LockWeakable The goal here is to eventually get rid of the Lock* classes in favor of using external locking.
This commit is contained in:
parent
e475263113
commit
11eee67b85
360 changed files with 1703 additions and 1672 deletions
|
@ -21,7 +21,7 @@ VirtIOGPU3DDevice::PerContextState::PerContextState(Graphics::VirtIOGPU::Context
|
|||
{
|
||||
}
|
||||
|
||||
NonnullRefPtr<VirtIOGPU3DDevice> VirtIOGPU3DDevice::must_create(VirtIOGraphicsAdapter const& adapter)
|
||||
NonnullLockRefPtr<VirtIOGPU3DDevice> VirtIOGPU3DDevice::must_create(VirtIOGraphicsAdapter const& adapter)
|
||||
{
|
||||
// Setup memory transfer region
|
||||
auto region_result = MM.allocate_kernel_region(
|
||||
|
@ -48,7 +48,7 @@ void VirtIOGPU3DDevice::detach(OpenFileDescription& description)
|
|||
CharacterDevice::detach(description);
|
||||
}
|
||||
|
||||
ErrorOr<RefPtr<VirtIOGPU3DDevice::PerContextState>> VirtIOGPU3DDevice::get_context_for_description(OpenFileDescription& description)
|
||||
ErrorOr<LockRefPtr<VirtIOGPU3DDevice::PerContextState>> VirtIOGPU3DDevice::get_context_for_description(OpenFileDescription& description)
|
||||
{
|
||||
auto res = m_context_state_lookup.get(&description);
|
||||
if (!res.has_value())
|
||||
|
@ -66,7 +66,7 @@ ErrorOr<void> VirtIOGPU3DDevice::ioctl(OpenFileDescription& description, unsigne
|
|||
SpinlockLocker locker(m_graphics_adapter->operation_lock());
|
||||
// TODO: Delete the context if it fails to be set in m_context_state_lookup
|
||||
auto context_id = m_graphics_adapter->create_context();
|
||||
RefPtr<PerContextState> per_context_state = TRY(PerContextState::try_create(context_id));
|
||||
LockRefPtr<PerContextState> per_context_state = TRY(PerContextState::try_create(context_id));
|
||||
TRY(m_context_state_lookup.try_set(&description, per_context_state));
|
||||
return {};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue