summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/KernelKit/DeviceMgr.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-03-23 19:13:48 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-03-23 19:15:17 +0100
commita13e1c0911c0627184bc38f18c7fdda64447b3ad (patch)
tree073a62c09bf216e85a3f310376640fa1805147f9 /dev/Kernel/KernelKit/DeviceMgr.h
parent149fa096eb306d03686b3b67e813cf1a78e08cd0 (diff)
meta(kernel): Reworked repository's filesystem structure.
Removing useless parts of the project too. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/KernelKit/DeviceMgr.h')
-rw-r--r--dev/Kernel/KernelKit/DeviceMgr.h140
1 files changed, 0 insertions, 140 deletions
diff --git a/dev/Kernel/KernelKit/DeviceMgr.h b/dev/Kernel/KernelKit/DeviceMgr.h
deleted file mode 100644
index fa68d2e7..00000000
--- a/dev/Kernel/KernelKit/DeviceMgr.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-/* -------------------------------------------
-
- Revision History:
-
- 31/01/24: Add kDeviceCnt (amlel)
- 15/11/24: Add NE_DEVICE macro, to inherit from device object.
-
- ------------------------------------------- */
-
-#pragma once
-
-/* @note Device Mgr. */
-/* @file KernelKit/DeviceMgr.h */
-/* @brief Device abstraction and I/O buffer. */
-
-#include <NewKit/ErrorOr.h>
-#include <NewKit/Ref.h>
-
-#define kDeviceMgrRootDirPath "/Devices/"
-
-#define NE_DEVICE : public ::NeOS::IDeviceObject
-
-// Last Rev: Wed, Apr 3, 2024 9:09:41 AM
-
-namespace NeOS
-{
- template <typename T>
- class IDeviceObject;
-
- /***********************************************************************************/
- /// @brief Device contract interface, represents an HW device.
- /***********************************************************************************/
- template <typename T>
- class IDeviceObject
- {
- public:
- explicit IDeviceObject(void (*Out)(IDeviceObject<T>*, T), void (*In)(IDeviceObject<T>*, T))
- : fOut(Out), fIn(In)
- {
- }
-
- virtual ~IDeviceObject() = default;
-
- public:
- IDeviceObject& operator=(const IDeviceObject<T>&) = default;
- IDeviceObject(const IDeviceObject<T>&) = default;
-
- public:
- virtual IDeviceObject<T>& operator<<(T Data)
- {
- fOut(this, Data);
- return *this;
- }
-
- virtual IDeviceObject<T>& operator>>(T Data)
- {
- fIn(this, Data);
- return *this;
- }
-
- virtual const char* Name() const
- {
- return "/dev/null";
- }
-
- operator bool()
- {
- return fOut && fIn;
- }
-
- Bool operator!()
- {
- return !fOut || !fIn;
- }
-
- protected:
- Void (*fOut)(IDeviceObject<T>*, T Data) = {nullptr};
- Void (*fIn)(IDeviceObject<T>*, T Data) = {nullptr};
- };
-
- ///
- /// @brief Input Output abstract class.
- /// Used mainly to communicate between OS to hardware.
- ///
- template <typename T>
- class IOBuf final
- {
- public:
- explicit IOBuf(T dma_addr)
- : fData(dma_addr)
- {
- // At least pass something valid when instancating this struct.
- MUST_PASS(fData);
- }
-
- IOBuf& operator=(const IOBuf<T>&) = default;
- IOBuf(const IOBuf<T>&) = default;
-
- ~IOBuf() = default;
-
- public:
- template <typename R>
- R operator->() const
- {
- return fData;
- }
-
- template <typename R>
- R& operator[](Size index) const
- {
- return fData[index];
- }
-
- private:
- T fData;
- };
-
- ///! @brief Device enum types.
- enum
- {
- kDeviceTypeIDE,
- kDeviceTypeEthernet,
- kDeviceTypeWiFi,
- kDeviceTypeFW,
- kDeviceTypeBT,
- kDeviceTypeRS232,
- kDeviceTypeSCSI,
- kDeviceTypeAHCI,
- kDeviceTypeMBCI,
- kDeviceTypeUSB,
- kDeviceTypeMediaCtrl, // MM controller
- kDeviceTypeCount,
- };
-} // namespace NeOS