summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/src
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-02-22 08:45:43 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-02-22 08:45:43 +0100
commit34f62ae2dd8c77cee1f0f3680caf407b1be6b350 (patch)
tree0985426a5d3baf2ae398a3f27ee4faca5d879f2e /dev/Kernel/src
parent917938db87fee3a905a78c499d2fe1dc2f0b5ca5 (diff)
New DeviceMgr, other APIs have been reworked as a result.
AHCI becomes the first module to be available in StorageKit. Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/src')
-rw-r--r--dev/Kernel/src/Storage/AHCIDeviceInterface.cc11
-rw-r--r--dev/Kernel/src/Storage/ATADeviceInterface.cc6
-rw-r--r--dev/Kernel/src/Storage/NVMEDeviceInterface.cc6
-rw-r--r--dev/Kernel/src/User.cc17
4 files changed, 23 insertions, 17 deletions
diff --git a/dev/Kernel/src/Storage/AHCIDeviceInterface.cc b/dev/Kernel/src/Storage/AHCIDeviceInterface.cc
index a6f36731..ff348f57 100644
--- a/dev/Kernel/src/Storage/AHCIDeviceInterface.cc
+++ b/dev/Kernel/src/Storage/AHCIDeviceInterface.cc
@@ -12,10 +12,10 @@ using namespace NeOS;
/// @param Out Drive output
/// @param In Drive input
/// @param Cleanup Drive cleanup.
-AHCIDeviceInterface::AHCIDeviceInterface(void (*Out)(MountpointInterface* outpacket),
- void (*In)(MountpointInterface* inpacket),
- void (*Cleanup)(void))
- : IDeviceObject(Out, In), fCleanup(Cleanup)
+AHCIDeviceInterface::AHCIDeviceInterface(void (*out)(IDeviceObject* self, MountpointInterface* outpacket),
+ void (*in)(IDeviceObject* self, MountpointInterface* inpacket),
+ void (*cleanup)(void))
+ : IDeviceObject(out, in), fCleanup(cleanup)
{
}
@@ -23,6 +23,7 @@ AHCIDeviceInterface::AHCIDeviceInterface(void (*Out)(MountpointInterface* outpac
AHCIDeviceInterface::~AHCIDeviceInterface()
{
MUST_PASS(fCleanup);
+
if (fCleanup)
fCleanup();
}
@@ -31,5 +32,5 @@ AHCIDeviceInterface::~AHCIDeviceInterface()
/// @return it's name as a string.
const Char* AHCIDeviceInterface::Name() const
{
- return "AHCIDeviceInterface";
+ return "/dev/sda{}";
}
diff --git a/dev/Kernel/src/Storage/ATADeviceInterface.cc b/dev/Kernel/src/Storage/ATADeviceInterface.cc
index 4223e9f9..9f1a0068 100644
--- a/dev/Kernel/src/Storage/ATADeviceInterface.cc
+++ b/dev/Kernel/src/Storage/ATADeviceInterface.cc
@@ -13,8 +13,8 @@ using namespace NeOS;
/// @param In Drive input
/// @param Cleanup Drive cleanup.
ATADeviceInterface::ATADeviceInterface(
- void (*Out)(MountpointInterface* outpacket),
- void (*In)(MountpointInterface* inpacket),
+ void (*Out)(IDeviceObject*, MountpointInterface* outpacket),
+ void (*In)(IDeviceObject*, MountpointInterface* inpacket),
void (*Cleanup)(void))
: IDeviceObject(Out, In), fCleanup(Cleanup)
{
@@ -32,7 +32,7 @@ ATADeviceInterface::~ATADeviceInterface()
/// @return it's name as a string.
const Char* ATADeviceInterface::Name() const
{
- return "ATADeviceInterface";
+ return "/dev/hda{}";
}
/// @brief Output operator.
diff --git a/dev/Kernel/src/Storage/NVMEDeviceInterface.cc b/dev/Kernel/src/Storage/NVMEDeviceInterface.cc
index 7884ce99..3e2c2c53 100644
--- a/dev/Kernel/src/Storage/NVMEDeviceInterface.cc
+++ b/dev/Kernel/src/Storage/NVMEDeviceInterface.cc
@@ -8,8 +8,8 @@
namespace NeOS
{
- NVMEDeviceInterface::NVMEDeviceInterface(void (*out)(MountpointInterface* outpacket),
- void (*in)(MountpointInterface* inpacket),
+ NVMEDeviceInterface::NVMEDeviceInterface(void (*out)(IDeviceObject*, MountpointInterface* outpacket),
+ void (*in)(IDeviceObject*, MountpointInterface* inpacket),
void (*cleanup)(void))
: IDeviceObject(out, in), fCleanup(cleanup)
{
@@ -23,6 +23,6 @@ namespace NeOS
const Char* NVMEDeviceInterface::Name() const
{
- return ("NVMEDeviceInterface");
+ return ("/dev/nvme{}");
}
} // namespace NeOS
diff --git a/dev/Kernel/src/User.cc b/dev/Kernel/src/User.cc
index 0dfc410e..5bf6ec79 100644
--- a/dev/Kernel/src/User.cc
+++ b/dev/Kernel/src/User.cc
@@ -57,20 +57,20 @@ namespace NeOS
////////////////////////////////////////////////////////////
/// @brief User ring constructor.
////////////////////////////////////////////////////////////
- User::User(const Int32& sel, const Char* userName)
+ User::User(const Int32& sel, const Char* user_name)
: mUserRing((UserRingKind)sel)
{
MUST_PASS(sel >= 0);
- rt_copy_memory((VoidPtr)userName, this->mUserName, rt_string_len(userName));
+ rt_copy_memory((VoidPtr)user_name, this->mUserName, rt_string_len(user_name));
}
////////////////////////////////////////////////////////////
/// @brief User ring constructor.
////////////////////////////////////////////////////////////
- User::User(const UserRingKind& ringKind, const Char* userName)
- : mUserRing(ringKind)
+ User::User(const UserRingKind& ring_kind, const Char* user_name)
+ : mUserRing(ring_kind)
{
- rt_copy_memory((VoidPtr)userName, this->mUserName, rt_string_len(userName));
+ rt_copy_memory((VoidPtr)user_name, this->mUserName, rt_string_len(user_name));
}
////////////////////////////////////////////////////////////
@@ -86,9 +86,12 @@ namespace NeOS
SizeT len = rt_string_len(password_to_fill);
- Char* password = new Char[len];
+ UserPublicKey password = new UserPublicKeyType[len];
+
MUST_PASS(password);
+ rt_set_memory(password, 0, len);
+
// fill data first, generate hash.
// return false on error.
@@ -161,7 +164,9 @@ namespace NeOS
return lhs.mUserRing != this->mUserRing;
}
+ ////////////////////////////////////////////////////////////
/// @brief Returns the user's name.
+ ////////////////////////////////////////////////////////////
Char* User::Name() noexcept
{