mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 06:57:44 +00:00
Kernel/Devices: Add two protected methods for DeviceManagement functions
These methods are essentially splitted from the after_inserting method and the will_be_destroyed method so later on we can allow Storage devices to override the after_inserting method and the will_be_destroyed method while still being able to use shared functionality as before, such as adding the device to and removing it from the device list.
This commit is contained in:
parent
9b49d9ee60
commit
22335e53e0
2 changed files with 16 additions and 3 deletions
|
@ -21,9 +21,20 @@ Device::Device(MajorNumber major, MinorNumber minor)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void Device::after_inserting()
|
void Device::before_will_be_destroyed_remove_from_device_management()
|
||||||
|
{
|
||||||
|
DeviceManagement::the().before_device_removal({}, *this);
|
||||||
|
m_state = State::BeingRemoved;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Device::after_inserting_add_to_device_management()
|
||||||
{
|
{
|
||||||
DeviceManagement::the().after_inserting_device({}, *this);
|
DeviceManagement::the().after_inserting_device({}, *this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Device::after_inserting()
|
||||||
|
{
|
||||||
|
after_inserting_add_to_device_management();
|
||||||
VERIFY(!m_sysfs_component);
|
VERIFY(!m_sysfs_component);
|
||||||
auto sys_fs_component = SysFSDeviceComponent::must_create(*this);
|
auto sys_fs_component = SysFSDeviceComponent::must_create(*this);
|
||||||
m_sysfs_component = sys_fs_component;
|
m_sysfs_component = sys_fs_component;
|
||||||
|
@ -52,8 +63,7 @@ void Device::will_be_destroyed()
|
||||||
list.remove(*m_sysfs_component);
|
list.remove(*m_sysfs_component);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
DeviceManagement::the().before_device_removal({}, *this);
|
before_will_be_destroyed_remove_from_device_management();
|
||||||
m_state = State::BeingRemoved;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::~Device()
|
Device::~Device()
|
||||||
|
|
|
@ -68,6 +68,9 @@ protected:
|
||||||
void set_uid(UserID uid) { m_uid = uid; }
|
void set_uid(UserID uid) { m_uid = uid; }
|
||||||
void set_gid(GroupID gid) { m_gid = gid; }
|
void set_gid(GroupID gid) { m_gid = gid; }
|
||||||
|
|
||||||
|
void after_inserting_add_to_device_management();
|
||||||
|
void before_will_be_destroyed_remove_from_device_management();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MajorNumber const m_major { 0 };
|
MajorNumber const m_major { 0 };
|
||||||
MinorNumber const m_minor { 0 };
|
MinorNumber const m_minor { 0 };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue