diff options
Diffstat (limited to 'dev/Mod')
| -rw-r--r-- | dev/Mod/ACPI/ACPI.h | 90 | ||||
| -rw-r--r-- | dev/Mod/ACPI/ACPIFactoryInterface.h | 59 | ||||
| -rw-r--r-- | dev/Mod/AHCI/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/AHCI/AHCI.h | 370 | ||||
| -rw-r--r-- | dev/Mod/APM/APM.h | 37 | ||||
| -rw-r--r-- | dev/Mod/ATA/ATA.h | 155 | ||||
| -rw-r--r-- | dev/Mod/CoreGfx/AccessibilityMgr.h | 41 | ||||
| -rw-r--r-- | dev/Mod/CoreGfx/FBMgr.h | 150 | ||||
| -rw-r--r-- | dev/Mod/CoreGfx/MathMgr.h | 29 | ||||
| -rw-r--r-- | dev/Mod/CoreGfx/TextMgr.h | 178 | ||||
| -rw-r--r-- | dev/Mod/GPRS/.keepme | 0 | ||||
| -rw-r--r-- | dev/Mod/HPET/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/HPET/Defines.h | 42 | ||||
| -rw-r--r-- | dev/Mod/IEEE802/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/LTE/LTE.h | 40 | ||||
| -rw-r--r-- | dev/Mod/MBCI/MBCI.h | 100 | ||||
| -rw-r--r-- | dev/Mod/MFlash/MFlash.h | 25 | ||||
| -rw-r--r-- | dev/Mod/NVME/NVME.h | 113 | ||||
| -rw-r--r-- | dev/Mod/OHCI/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/Pwr/PowerFactory.h | 37 | ||||
| -rw-r--r-- | dev/Mod/ReadMe.md | 12 | ||||
| -rw-r--r-- | dev/Mod/SCSI/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/SCSI/SCSI.h | 15 | ||||
| -rw-r--r-- | dev/Mod/WiFi/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/XHCI/.gitkeep | 0 | ||||
| -rw-r--r-- | dev/Mod/XHCI/Defines.h | 70 |
26 files changed, 0 insertions, 1563 deletions
diff --git a/dev/Mod/ACPI/ACPI.h b/dev/Mod/ACPI/ACPI.h deleted file mode 100644 index a4fe2b0e..00000000 --- a/dev/Mod/ACPI/ACPI.h +++ /dev/null @@ -1,90 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#ifndef __ACPI__ -#define __ACPI__ - -/** - https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html -*/ - -#include <NewKit/Defines.h> - -#define SDT_OBJECT : public NeOS::SDT - -namespace NeOS -{ - class PACKED SDT - { - public: - Char Signature[4]; - UInt32 Length; - UInt8 Revision; - Char Checksum; - Char OemId[6]; - Char OemTableId[8]; - UInt32 OemRev; - UInt32 CreatorID; - UInt32 CreatorRevision; - }; - - class PACKED RSDP : public SDT - { - public: - UInt32 RsdtAddress; - UIntPtr XsdtAddress; - UInt8 ExtendedChecksum; - UInt8 Reserved0[3]; - }; - - class PACKED ConfigHeader - { - public: - UInt64 BaseAddress; - UInt16 PciSegGroup; - UInt8 StartBus; - UInt8 EndBus; - UInt32 Reserved; - }; - - enum ACPI_ADDRESS_SPACE_KIND : UInt8 - { - eSystemMemory = 0, - eSystemIO = 1, - ePci = 2, - eController = 3, - eSmBus = 4, - eCount = 5, - eInvalid = 0xFF, - }; - - class PACKED ACPI_ADDRESS final - { - public: - UInt8 AddressSpaceId; - UInt8 RegisterBitWidth; - UInt8 RegisterBitOffset; - UInt8 Reserved; - UIntPtr Address; - }; - - class PACKED RSDT final - { - public: - Char Signature[4]; - UInt32 Length; - UInt8 Revision; - Char Checksum; - Char OemId[6]; - Char OemTableId[8]; - UInt32 OemRev; - UInt32 CreatorID; - UInt32 CreatorRevision; - UInt32 AddressArr[]; - }; -} // namespace NeOS - -#endif // !__ACPI__ diff --git a/dev/Mod/ACPI/ACPIFactoryInterface.h b/dev/Mod/ACPI/ACPIFactoryInterface.h deleted file mode 100644 index d398b2b7..00000000 --- a/dev/Mod/ACPI/ACPIFactoryInterface.h +++ /dev/null @@ -1,59 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#ifndef __MOD_ACPI_H__ -#define __MOD_ACPI_H__ - -#include <KernelKit/DebugOutput.h> -#include <Mod/ACPI/ACPI.h> -#include <NewKit/ErrorOr.h> -#include <NewKit/Defines.h> -#include <NewKit/Ref.h> -#include <Mod/Pwr/PowerFactory.h> - -namespace NeOS -{ - class PowerFactory; - class ACPIFactoryInterface; - - typedef ACPIFactoryInterface PowerFactoryInterface; - - class ACPIFactoryInterface final NE_POWER_FACTORY - { - public: - explicit ACPIFactoryInterface(voidPtr rsp_ptr); - ~ACPIFactoryInterface() = default; - - ACPIFactoryInterface& operator=(const ACPIFactoryInterface&) = default; - ACPIFactoryInterface(const ACPIFactoryInterface&) = default; - - public: - Bool Shutdown(); // shutdown - Void Reboot(); // soft-reboot - - public: - /// @brief Descriptor find factory. - /// @param signature The signature of the descriptor table (MADT, ACPI...) - /// @return the blob inside an ErrorOr object. - ErrorOr<voidPtr> Find(const Char* signature); - - /// @brief Checksum factory. - /// @param checksum the data to checksum - /// @param len it's size - /// @return if it succeed - bool Checksum(const Char* checksum, SSizeT len); // watch for collides! - - public: - ErrorOr<voidPtr> operator[](const Char* signature); - - private: - VoidPtr fRsdp{nullptr}; // pointer to root descriptor. - SSizeT fEntries{0UL}; // number of entries, -1 tells that no invalid entries were - // found. - }; -} // namespace NeOS - -#endif // !__MOD_ACPI_H__ diff --git a/dev/Mod/AHCI/.gitkeep b/dev/Mod/AHCI/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/AHCI/.gitkeep +++ /dev/null diff --git a/dev/Mod/AHCI/AHCI.h b/dev/Mod/AHCI/AHCI.h deleted file mode 100644 index 0b8971e2..00000000 --- a/dev/Mod/AHCI/AHCI.h +++ /dev/null @@ -1,370 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - - File: AHCI.h - Purpose: AHCI protocol defines. - - Revision History: - - 03/02/24: Added file (amlel) - -------------------------------------------- */ - -#pragma once - -#include <NewKit/Defines.h> -#include <Mod/ACPI/ACPI.h> - -/// @file AHCI.h -/// @brief AHCI support. - -#define kAHCISectorSize (512) - -struct HbaPort; -struct FisData; -struct FisRegD2H; -struct FisRegH2D; - -/// @brief Frame information type. -enum -{ - kFISTypeRegH2D = 0x27, // Register FIS - host to device - kFISTypeRegD2H = 0x34, // Register FIS - device to host - kFISTypeDMAAct = 0x39, // DMA activate FIS - device to host - kFISTypeDMASetup = 0x41, // DMA setup FIS - bidirectional - kFISTypeData = 0x46, // Data FIS - bidirectional - kFISTypeBIST = 0x58, // BIST activate FIS - bidirectional - kFISTypePIOSetup = 0x5F, // PIO setup FIS - device to host - kFISTypeDevBits = 0xA1, // Set device bits FIS - device to host -}; - -enum -{ - kAHCICmdIdentify = 0xEC, - kAHCICmdReadDma = 0xC8, - kAHCICmdReadDmaEx = 0x25, - kAHCICmdWriteDma = 0xCA, - kAHCICmdWriteDmaEx = 0x35 -}; - -typedef struct FisRegH2D final -{ - // DWORD 0 - NeOS::UInt8 FisType; // FIS_TYPE_REG_H2D - - NeOS::UInt8 PortMul : 4; // Port multiplier - NeOS::UInt8 Reserved0 : 3; // Reserved - NeOS::UInt8 CmdOrCtrl : 1; // 1: Command, 0: Control - - NeOS::UInt8 Command; // Command register - NeOS::UInt8 FeatureLow; // Feature register, 7:0 - - // DWORD 1 - NeOS::UInt8 Lba0; // LBA low register, 7:0 - NeOS::UInt8 Lba1; // LBA mid register, 15:8 - NeOS::UInt8 Lba2; // LBA high register, 23:16 - NeOS::UInt8 Device; // Device register - - // DWORD 2 - NeOS::UInt8 Lba3; // LBA register, 31:24 - NeOS::UInt8 Lba4; // LBA register, 39:32 - NeOS::UInt8 Lba5; // LBA register, 47:40 - NeOS::UInt8 FeatureHigh; // Feature register, 15:8 - - // DWORD 3 - NeOS::UInt8 CountLow; // Count register, 7:0 - NeOS::UInt8 CountHigh; // Count register, 15:8 - NeOS::UInt8 Icc; // Isochronous command completion - NeOS::UInt8 Control; // Control register - - // DWORD 4 - NeOS::UInt8 Reserved1[4]; // Reserved -} FisRegH2D; - -typedef struct FisRegD2H final -{ - // DWORD 0 - NeOS::UInt8 FisType; // FIS_TYPE_REG_D2H - - NeOS::UInt8 PortMul : 4; // Port multiplier - NeOS::UInt8 Reserved0 : 2; // Reserved - NeOS::UInt8 IE : 1; // Interrupt bit - NeOS::UInt8 Reserved1 : 1; // Reserved - - NeOS::UInt8 Status; // Status register - NeOS::UInt8 Error; // Error register - - // DWORD 1 - NeOS::UInt8 Lba0; // LBA low register, 7:0 - NeOS::UInt8 Lba1; // LBA mid register, 15:8 - NeOS::UInt8 Lba2; // LBA high register, 23:16 - NeOS::UInt8 Device; // Device register - - // DWORD 2 - NeOS::UInt8 Lba3; // LBA register, 31:24 - NeOS::UInt8 Lba4; // LBA register, 39:32 - NeOS::UInt8 Lba5; // LBA register, 47:40 - NeOS::UInt8 Rsv2; // Reserved - - // DWORD 3 - NeOS::UInt8 CountLow; // Count register, 7:0 - NeOS::UInt8 CountHigh; // Count register, 15:8 - NeOS::UInt8 Rsv3[2]; // Reserved - - // DWORD 4 - NeOS::UInt8 Rsv4[4]; // Reserved -} FisRegD2H; - -typedef struct FisData final -{ - // DWORD 0 - NeOS::UInt8 FisType; // FIS_TYPE_DATA - - NeOS::UInt8 PortMul : 4; // Port multiplier - NeOS::UInt8 Reserved0 : 4; // Reserved - - NeOS::UInt8 Reserved1[2]; // Reserved - - // DWORD 1 ~ N - NeOS::UInt32 Data[1]; // Payload -} FisData; - -typedef struct FisPioSetup final -{ - // DWORD 0 - NeOS::UInt8 FisType; // FIS_TYPE_PIO_SETUP - - NeOS::UInt8 PortMul : 4; // Port multiplier - NeOS::UInt8 Reserved0 : 1; // Reserved - NeOS::UInt8 DTD : 1; // Data transfer direction, 1 - device to host - NeOS::UInt8 IE : 1; // Interrupt bit - NeOS::UInt8 Reserved1 : 1; - - NeOS::UInt8 Status; // Status register - NeOS::UInt8 Error; // Error register - - // DWORD 1 - NeOS::UInt8 Lba0; // LBA low register, 7:0 - NeOS::UInt8 Lba1; // LBA mid register, 15:8 - NeOS::UInt8 Lba2; // LBA high register, 23:16 - NeOS::UInt8 Device; // Device register - - // DWORD 2 - NeOS::UInt8 Lba3; // LBA register, 31:24 - NeOS::UInt8 Lba4; // LBA register, 39:32 - NeOS::UInt8 Lba5; // LBA register, 47:40 - NeOS::UInt8 Rsv2; // Reserved - - // DWORD 3 - NeOS::UInt8 CountLow; // Count register, 7:0 - NeOS::UInt8 CountHigh; // Count register, 15:8 - NeOS::UInt8 Rsv3; // Reserved - NeOS::UInt8 EStatus; // New value of status register - - // DWORD 4 - NeOS::UInt16 TranferCount; // Transfer count - NeOS::UInt8 Rsv4[2]; // Reserved -} FisPioSetup; - -typedef struct FisDmaSetup final -{ - // DWORD 0 - NeOS::UInt8 FisType; // FIS_TYPE_DMA_SETUP - - NeOS::UInt8 PortMul : 4; // Port multiplier - NeOS::UInt8 Reserved0 : 1; // Reserved - NeOS::UInt8 DTD : 1; // Data transfer direction, 1 - device to host - NeOS::UInt8 IE : 1; // Interrupt bit - NeOS::UInt8 AutoEnable : 1; // Auto-activate. Specifies if DMA Activate FIS is needed - - NeOS::UInt8 Reserved1[2]; // Reserved - - // DWORD 1&2 - volatile NeOS::UInt64 DmaBufferId; // DMA Buffer Identifier. Used to Identify DMA buffer in - // host memory. SATA Spec says host specific and not in - // Spec. Trying AHCI spec might work. - - // DWORD 3 - NeOS::UInt32 Rsvd; // More reserved - - // DWORD 4 - NeOS::UInt32 DmabufOffset; // Byte offset into buffer. First 2 bits must be 0 - - // DWORD 5 - NeOS::UInt32 TransferCount; // Number of bytes to transfer. Bit 0 must be 0 - - // DWORD 6 - NeOS::UInt32 Reserved3; // Reserved -} FisDmaSetup; - -typedef struct FisDevBits final -{ - // DWORD 0 - NeOS::UInt8 FisType; // FIS_TYPE_DMA_SETUP (A1h) - - NeOS::UInt8 Reserved0 : 5; // Reserved - NeOS::UInt8 R0 : 1; - NeOS::UInt8 IE : 1; - NeOS::UInt8 N : 1; - - NeOS::UInt8 StatusLow : 3; - NeOS::UInt8 R1 : 1; - NeOS::UInt8 StatusHigh : 3; - - NeOS::UInt8 R2 : 1; - NeOS::UInt8 Error; - - // DWORD 1 - NeOS::UInt32 Act; -} FisDevBits; - -/// \brief Enable AHCI device bit in GHC register. -#ifndef kSATAGHC_AE -#define kSATAGHC_AE (31) -#endif //! ifndef kSATAGHC_AE - -typedef struct HbaPort final -{ - NeOS::UInt32 Clb; // 0x00, command list base address, 1K-byte aligned - NeOS::UInt32 Clbu; // 0x04, command list base address upper 32 bits - NeOS::UInt32 Fb; // 0x08, FIS base address, 256-byte aligned - NeOS::UInt32 Fbu; // 0x0C, FIS base address upper 32 bits - NeOS::UInt32 Is; // 0x10, interrupt status - NeOS::UInt32 Ie; // 0x14, interrupt enable - NeOS::UInt32 Cmd; // 0x18, command and status - NeOS::UInt32 Reserved0; // 0x1C, Reserved - NeOS::UInt32 Tfd; // 0x20, task file data - NeOS::UInt32 Sig; // 0x24, signature - NeOS::UInt32 Ssts; // 0x28, SATA status (SCR0:SStatus) - NeOS::UInt32 Sctl; // 0x2C, SATA control (SCR2:SControl) - NeOS::UInt32 Serr; // 0x30, SATA error (SCR1:SError) - NeOS::UInt32 Sact; // 0x34, SATA active (SCR3:SActive) - NeOS::UInt32 Ci; // 0x38, command issue - NeOS::UInt32 Sntf; // 0x3C, SATA notification (SCR4:SNotification) - NeOS::UInt32 Fbs; // 0x40, FIS-based switch control - NeOS::UInt32 Reserved1[11]; // 0x44 ~ 0x6F, Reserved - NeOS::UInt32 Vendor[4]; // 0x70 ~ 0x7F, vendor specific -} HbaPort; - -typedef struct HbaMem final -{ - // 0x00 - 0x2B, Generic Host Control - NeOS::UInt32 Cap; // 0x00, Host capability - NeOS::UInt32 Ghc; // 0x04, Global host control - NeOS::UInt32 Is; // 0x08, Interrupt status - NeOS::UInt32 Pi; // 0x0C, Port implemented - NeOS::UInt32 Vs; // 0x10, Version - NeOS::UInt32 Ccc_ctl; // 0x14, Command completion coalescing control - NeOS::UInt32 Ccc_pts; // 0x18, Command completion coalescing ports - NeOS::UInt32 Em_loc; // 0x1C, Enclosure management location - NeOS::UInt32 Em_ctl; // 0x20, Enclosure management control - NeOS::UInt32 Cap2; // 0x24, Host capabilities extended - NeOS::UInt32 Bohc; // 0x28, BIOS/OS handoff control and status - - NeOS::UInt8 Resv0[0xA0 - 0x2C]; - NeOS::UInt8 Vendor[0x100 - 0xA0]; - - HbaPort Ports[1]; // 1 ~ 32, 32 is the max ahci devices per controller. -} HbaMem; - -typedef struct HbaCmdHeader final -{ - // DW0 - union { - struct - { - NeOS::UInt8 Cfl : 5; // Command FIS length in DWORDS, 2 ~ 16 - NeOS::UInt8 Atapi : 1; // ATAPI - NeOS::UInt8 Write : 1; // Write, 1: H2D, 0: D2H - NeOS::UInt8 Prefetchable : 1; // Prefetchable - - NeOS::UInt8 Reset : 1; // Reset - NeOS::UInt8 BIST : 1; // BIST - NeOS::UInt8 Clear : 1; // Clear busy upon R_OK - NeOS::UInt8 Reserved0 : 1; // Reserved - NeOS::UInt8 Pmp : 4; // Port multiplier port - }; - NeOS::UInt16 Flags; - }; - - NeOS::UInt16 Prdtl; // Physical region descriptor table length in entries - NeOS::UInt32 Prdbc; // Physical region descriptor byte count transferred - - NeOS::UInt32 Ctba; // Command table descriptor base address - NeOS::UInt32 Ctbau; // Command table descriptor base address upper 32 bits - - NeOS::UInt32 Rsv[4]; -} ATTRIBUTE(packed, aligned(32)) HbaCmdHeader; - -typedef struct HbaFis final -{ - // 0x00 - FisDmaSetup Dsfis; // DMA Setup FIS - NeOS::UInt8 Pad0[4]; - // 0x20 - FisPioSetup Psfis; // PIO Setup FIS - NeOS::UInt8 Pad1[12]; - // 0x40 - FisRegD2H Rfis; // Register – Device to Host FIS - NeOS::UInt8 Pad2[4]; - // 0x58 - FisDevBits Sdbfis; // Set Device Bit FIS - // 0x60 - NeOS::UInt8 Ufis[64]; - // 0xA0 - NeOS::UInt8 Rsv[0x100 - 0xA0]; -} HbaFis; - -typedef struct HbaPrdtEntry final -{ - NeOS::UInt32 Dba; // Data base address - NeOS::UInt32 Dbau; // Data base address upper 32 bits - NeOS::UInt32 Reserved0; // Reserved - // DW3 - NeOS::UInt32 Dbc : 22; // Byte count, 4M max - NeOS::UInt32 Reserved1 : 9; // Reserved - NeOS::UInt32 Ie : 1; // Interrupt on completion -} HbaPrdtEntry; - -typedef struct HbaCmdTbl final -{ - NeOS::UInt8 Cfis[64]; // Command FIS - NeOS::UInt8 Acmd[16]; // ATAPI command, 12 or 16 bytes - NeOS::UInt8 Rsv[48]; // Reserved - struct HbaPrdtEntry Prdt[]; // Physical region descriptor table entries, 0 ~ 65535 -} HbaCmdTbl; - -/// @brief Initializes an AHCI disk. -/// @param PortsImplemented the amount of port that have been detected. -/// @return -NeOS::Boolean drv_std_init(NeOS::UInt16& PortsImplemented); - -NeOS::Boolean drv_std_detected(NeOS::Void); - -/// @brief Read from AHCI disk. -/// @param lba -/// @param buf -/// @param sector_sz -/// @param buf_sz -/// @return -NeOS::Void drv_std_read(NeOS::UInt64 lba, NeOS::Char* buf, NeOS::SizeT sector_sz, NeOS::SizeT buf_sz); - -/// @brief Write to AHCI disk. -/// @param lba -/// @param buf -/// @param sector_sz -/// @param buf_sz -/// @return -NeOS::Void drv_std_write(NeOS::UInt64 lba, NeOS::Char* buf, NeOS::SizeT sector_sz, NeOS::SizeT buf_sz); - -/// @brief Gets the sector count from AHCI disk. -NeOS::SizeT drv_get_sector_count(); - -/// @brief Gets the AHCI disk size. -NeOS::SizeT drv_get_size(); - -/// @brief Checks if the drive has completed the command. -BOOL drv_is_ready(void); - -/* EOF */ diff --git a/dev/Mod/APM/APM.h b/dev/Mod/APM/APM.h deleted file mode 100644 index 1cb55fdc..00000000 --- a/dev/Mod/APM/APM.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NewKit/Defines.h>
-
-namespace NeOS
-{
- typedef Int32 APMPowerCmd;
-
- enum
- {
- kAPMPowerCommandInvalid = 0x00,
- kAPMPowerCommandStop = 0x01,
- kAPMPowerCommandStart = 0x02,
- kAPMPowerCommandSleep = 0x04,
- kAPMPowerCommandWakeup = 0x06,
- kAPMPowerCommandShutdown = 0x07,
- kAPMPowerCommandReboot = 0x08,
- };
-
- /// @brief Send a APM command into it's own DMA space.
- /// @param base_dma the DMA base address.
- /// @param cmd the command.
- /// @return status code.
- EXTERN_C Int32 apm_send_dma_command(Ptr64 register_addr, APMPowerCmd value);
-
- /// @brief Send a APM command into it's own IO space.
- /// @param base_dma the IO base port.
- /// @param cmd the command.
- /// @return status code.
- EXTERN_C Int32 apm_send_io_command(UInt16 cmd, APMPowerCmd value);
-} // namespace NeOS
diff --git a/dev/Mod/ATA/ATA.h b/dev/Mod/ATA/ATA.h deleted file mode 100644 index 374b8b5d..00000000 --- a/dev/Mod/ATA/ATA.h +++ /dev/null @@ -1,155 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - - File: Defines.h - Purpose: ATA header. - - Revision History: - - 03/02/24: Added file (amlel) - -------------------------------------------- */ - -#pragma once - -#include <CompilerKit/CompilerKit.h> -#include <NewKit/Defines.h> - -///! Status register -#define ATA_SR_BSY 0x80 -#define ATA_SR_DRDY 0x40 -#define ATA_SR_DF 0x20 -#define ATA_SR_DSC 0x10 -#define ATA_SR_DRQ 0x08 -#define ATA_SR_CORR 0x04 -#define ATA_SR_IDX 0x02 -#define ATA_SR_ERR 0x01 - -///! Error register -#define ATA_ER_BBK 0x80 -#define ATA_ER_UNC 0x40 -#define ATA_ER_MC 0x20 -#define ATA_ER_IDNF 0x10 -#define ATA_ER_MCR 0x08 -#define ATA_ER_ABRT 0x04 -#define ATA_ER_TK0NF 0x02 -#define ATA_ER_AMNF 0x01 - -#define ATA_CMD_READ_PIO 0x20 -#define ATA_CMD_READ_PIO_EXT 0x24 -#define ATA_CMD_READ_DMA 0xC8 -#define ATA_CMD_READ_DMA_EXT 0x25 -#define ATA_CMD_WRITE_PIO 0x30 -#define ATA_CMD_WRITE_PIO_EXT 0x34 -#define ATA_CMD_WRITE_DMA 0xCA -#define ATA_CMD_WRITE_DMA_EXT 0x35 -#define ATA_CMD_CACHE_FLUSH 0xE7 -#define ATA_CMD_CACHE_FLUSH_EXT 0xEA -#define ATA_CMD_PACKET 0xA0 -#define ATA_CMD_IDENTIFY_PACKET 0xA1 -#define ATA_CMD_IDENTIFY 0xEC - -///! ident offsets, use with data that we got from ATA_CMD_IDENTIFY. -#define ATA_IDENT_DEVICE_TYPE 0 -#define ATA_IDENT_CYLINDERS 2 -#define ATA_IDENT_HEADS 6 -#define ATA_IDENT_SECTORS 12 -#define ATA_IDENT_SERIAL 20 -#define ATA_IDENT_MODEL 54 -#define ATA_IDENT_CAPABILITIES 98 -#define ATA_IDENT_FIELDVALID 106 -#define ATA_IDENT_MAX_LBA 120 -#define ATA_IDENT_COMMANDSETS 164 -#define ATA_IDENT_MAX_LBA_EXT 200 - -#define ATA_REG_SET_FEATURES 0xEF - -#define ATA_MASTER 0x00 -#define ATA_SLAVE 0x01 - -///! Register -#define ATA_REG_DATA 0x00 -#define ATA_REG_ERROR 0x01 -#define ATA_REG_FEATURES 0x01 -#define ATA_REG_SEC_COUNT0 0x02 -#define ATA_REG_LBA0 0x03 -#define ATA_REG_LBA1 0x04 -#define ATA_REG_LBA2 0x05 -#define ATA_REG_HDDEVSEL 0x06 -#define ATA_REG_COMMAND 0x07 -#define ATA_REG_STATUS 0x07 -#define ATA_REG_SEC_COUNT1 0x08 -#define ATA_REG_LBA3 0x09 -#define ATA_REG_LBA4 0x0A -#define ATA_REG_LBA5 0x0B -#define ATA_REG_CONTROL 0x0C -#define ATA_REG_ALT_STATUS 0x0C -#define ATA_REG_DEV_ADDRESS 0x0D - -#define ATA_REG_NEIN 0x01 - -#define ATA_PRIMARY_IO 0x1F0 -#define ATA_SECONDARY_IO 0x170 -#define ATA_PRIMARY_DCR_AS 0x3F6 -#define ATA_SECONDARY_DCR_AS 0x376 - -///! Irq -#define ATA_PRIMARY_IRQ 14 -#define ATA_SECONDARY_IRQ 15 - -///! Channels -#define ATA_PRIMARY 0x00 -#define ATA_SECONDARY 0x01 - -#define ATA_CYL_LOW 3 -#define ATA_CYL_MID 4 -#define ATA_CYL_HIGH 5 - -///! IO Direction -#define ATA_READ 0x00 -#define ATA_WRITE 0x013 - -#define ATA_PRIMARY_SEL 0xA0 -#define ATA_SECONDARY_SEL 0xB0 - -///! ATA address register. -#define ATA_ADDRESS1(x) (x + 3) -#define ATA_ADDRESS2(x) (x + 4) -#define ATA_ADDRESS3(x) (x + 5) - -///! ATA command register. -#define ATA_COMMAND(x) (x + 7) - -#define kATASectorSize (512U) - -enum -{ - kATADevicePATA, - kATADeviceSATA, - kATADevicePATA_PI, - kATADeviceSATA_PI, - kATADeviceCount, -}; - -#if defined(__ATA_PIO__) || defined(__ATA_DMA__) - -NeOS::Boolean drv_std_init(NeOS::UInt16 in_bus, NeOS::UInt8 drive, NeOS::UInt16& out_bus, NeOS::UInt8& out_master); - -NeOS::Boolean drv_std_detected(NeOS::Void); - -NeOS::Void drv_std_select(NeOS::UInt16 bus); - -NeOS::Boolean drv_std_wait_io(NeOS::UInt16 io); - -NeOS::Void drv_std_read(NeOS::UInt64 lba, NeOS::UInt16 io, NeOS::UInt8 is_master, NeOS::Char* buf, NeOS::SizeT sec_sz, NeOS::SizeT buf_sz); - -NeOS::Void drv_std_write(NeOS::UInt64 lba, NeOS::UInt16 io, NeOS::UInt8 is_master, NeOS::Char* buf, NeOS::SizeT sec_sz, NeOS::SizeT buf_sz); - -/// @brief get sector count. -NeOS::SizeT drv_get_sector_count(); - -/// @brief get device size. -NeOS::SizeT drv_get_size(); - -#endif // ifdef __NEOSKRNL__
\ No newline at end of file diff --git a/dev/Mod/CoreGfx/AccessibilityMgr.h b/dev/Mod/CoreGfx/AccessibilityMgr.h deleted file mode 100644 index 58054a89..00000000 --- a/dev/Mod/CoreGfx/AccessibilityMgr.h +++ /dev/null @@ -1,41 +0,0 @@ -/* ------------------------------------------- - - Copyright Amlal EL Mahrouss. - -------------------------------------------- */ - -#ifndef GFX_MGR_ACCESSIBILITY_H -#define GFX_MGR_ACCESSIBILITY_H - -#include <NewKit/NewKit.h> -#include <KernelKit/LPC.h> -#include <Mod/CoreGfx/FBMgr.h> -#include <Mod/CoreGfx/MathMgr.h> -#include <ArchKit/ArchKit.h> - -namespace FB -{ - using namespace NeOS; - - /// @brief common User interface class. - class UIAccessibilty final - { - explicit UIAccessibilty() = default; - ~UIAccessibilty() = default; - - public: - NE_COPY_DELETE(UIAccessibilty); - - static Int64 Width() noexcept - { - return kHandoverHeader->f_GOP.f_Width; - } - - static Int64 Height() noexcept - { - return kHandoverHeader->f_GOP.f_Height; - } - }; -} // namespace FB - -#endif // !GFX_MGR_ACCESSIBILITY_H_ diff --git a/dev/Mod/CoreGfx/FBMgr.h b/dev/Mod/CoreGfx/FBMgr.h deleted file mode 100644 index 57a781ad..00000000 --- a/dev/Mod/CoreGfx/FBMgr.h +++ /dev/null @@ -1,150 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#pragma once - -#include <NewKit/Defines.h> - -#define fb_init() NeOS::SizeT kCGCursor = 0 - -#define fb_color(R, G, B) RGB(R, G, B) - -#define fb_get_clear_clr() fb_color(0x20, 0x20, 0x20) - -#define fb_clear() kCGCursor = 0 - -#ifdef __NE_AMD64__ -/// @brief Performs Alpha drawing on the framebuffer. -#define FBDrawBitMapInRegionA(reg_ptr, height, width, base_x, base_y) \ - for (NeOS::SizeT i = base_x; i < (width + base_x); ++i) \ - { \ - for (NeOS::SizeT u = base_y; u < (height + base_y); ++u) \ - { \ - *(((NeOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - i + \ - 4 * u))) |= (reg_ptr)[kCGCursor]; \ - \ - ++kCGCursor; \ - } \ - } - -/// @brief Performs drawing on the framebuffer. -#define FBDrawBitMapInRegion(reg_ptr, height, width, base_x, base_y) \ - for (NeOS::SizeT i = base_x; i < (width + base_x); ++i) \ - { \ - for (NeOS::SizeT u = base_y; u < (height + base_y); ++u) \ - { \ - *(((NeOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - i + \ - 4 * u))) = (reg_ptr)[kCGCursor]; \ - \ - ++kCGCursor; \ - } \ - } - -#define FBDrawBitMapInRegionToRgn(_Rgn, reg_ptr, height, width, base_x, base_y) \ - for (NeOS::SizeT i = base_x; i < (width + base_x); ++i) \ - { \ - for (NeOS::SizeT u = base_y; u < (height + base_y); ++u) \ - { \ - *(((NeOS::UInt32*)(_Rgn + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - i + \ - 4 * u))) = (reg_ptr)[kCGCursor]; \ - \ - ++kCGCursor; \ - } \ - } - -/// @brief Cleans a resource. -#define CGClearRegion(height, width, base_x, base_y) \ - for (NeOS::SizeT i = base_x; i < (width + base_x); ++i) \ - { \ - for (NeOS::SizeT u = base_y; u < (height + base_y); ++u) \ - { \ - *(((volatile NeOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - i + \ - 4 * u))) = fb_get_clear_clr(); \ - } \ - } - -/// @brief Draws inside a zone. -#define FBDrawInRegion(_Clr, height, width, base_x, base_y) \ - for (NeOS::SizeT x_base = base_x; x_base < (width + base_x); ++x_base) \ - { \ - for (NeOS::SizeT y_base = base_y; y_base < (height + base_y); ++y_base) \ - { \ - *(((volatile NeOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - x_base + \ - 4 * y_base))) = _Clr; \ - } \ - } - -/// @brief Draws inside a zone. -#define FBDrawInRegionToRgn(_Rgn, _Clr, height, width, base_x, base_y) \ - for (NeOS::SizeT x_base = base_x; x_base < (width + base_x); ++x_base) \ - { \ - for (NeOS::SizeT y_base = base_y; y_base < (height + base_y); ++y_base) \ - { \ - *(((volatile NeOS::UInt32*)(_Rgn + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - x_base + \ - 4 * y_base))) = _Clr[kCGCursor]; \ - ++kCGCursor; \ - } \ - } - -#define FBDrawInRegionA(_Clr, height, width, base_x, base_y) \ - for (NeOS::SizeT x_base = base_x; x_base < (width + base_x); ++x_base) \ - { \ - for (NeOS::SizeT y_base = base_y; y_base < (height + base_y); ++y_base) \ - { \ - *(((volatile NeOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ - x_base + \ - 4 * y_base))) |= _Clr; \ - } \ - } -#else -#define FBDrawBitMapInRegionA(reg_ptr, height, width, base_x, base_y) -#define FBDrawBitMapInRegion(reg_ptr, height, width, base_x, base_y) -#define FBDrawBitMapInRegionToRgn(_Rgn, reg_ptr, height, width, base_x, base_y) -#define CGClearRegion(height, width, base_x, base_y) -#define FBDrawInRegion(_Clr, height, width, base_x, base_y) -#define FBDrawInRegionToRgn(_Rgn, _Clr, height, width, base_x, base_y) -#define FBDrawInRegionA(_Clr, height, width, base_x, base_y) -#define FBDrawBitMapInRegionA(reg_ptr, height, width, base_x, base_y) -#define FBDrawBitMapInRegion(reg_ptr, height, width, base_x, base_y) -#define FBDrawBitMapInRegionToRgn(_Rgn, reg_ptr, height, width, base_x, base_y) -#define CGClearRegion(height, width, base_x, base_y) -#define FBDrawInRegion(_Clr, height, width, base_x, base_y) -#define FBDrawInRegionToRgn(_Rgn, _Clr, height, width, base_x, base_y) -#define FBDrawInRegionA(_Clr, height, width, base_x, base_y) -#endif // __NE_AMD64__ - -#ifndef GFX_MGR_ACCESSIBILITY_H -#include <Mod/CoreGfx/AccessibilityMgr.h> -#endif // ifndef GFX_MGR_ACCESSIBILITY_H - -namespace FB -{ - struct FB_CONTROL_BLOCK; - - inline void fb_clear_video() noexcept - { - fb_init(); - - FBDrawInRegion(fb_get_clear_clr(), FB::UIAccessibilty::Height(), FB::UIAccessibilty::Width(), - 0, 0); - - fb_clear(); - } - -} // namespace FB
\ No newline at end of file diff --git a/dev/Mod/CoreGfx/MathMgr.h b/dev/Mod/CoreGfx/MathMgr.h deleted file mode 100644 index 7e85c0dc..00000000 --- a/dev/Mod/CoreGfx/MathMgr.h +++ /dev/null @@ -1,29 +0,0 @@ -/* ------------------------------------------- - - Copyright Amlal EL Mahrouss. - -------------------------------------------- */ - -#pragma once - -/// @file MathMgr.h -/// @brief Linear interpolation implementation. - -namespace UI -{ -#ifdef NE_GFX_MGR_USE_DOUBLE - typedef double fb_real_t; -#else - typedef float fb_real_t; -#endif - - /// @brief Linear interpolation equation solver. - /// @param from where to start - /// @param to to which value. - /// @param stat - /// @return Linear interop value. - inline fb_real_t fb_math_lerp(fb_real_t to, fb_real_t from, fb_real_t stat) - { - return (from) + (to - from) * stat; - } -} // namespace UI
\ No newline at end of file diff --git a/dev/Mod/CoreGfx/TextMgr.h b/dev/Mod/CoreGfx/TextMgr.h deleted file mode 100644 index a3c1af24..00000000 --- a/dev/Mod/CoreGfx/TextMgr.h +++ /dev/null @@ -1,178 +0,0 @@ -/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NewKit/Defines.h>
-#include <Mod/CoreGfx/FBMgr.h>
-
-#define kFontSizeX 8
-#define kFontSizeY 8
-#define kFontNOFChars 128
-
-inline const NeOS::UInt8 kFontBitmap[kFontNOFChars][kFontSizeX] = {
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul)
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0001
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0002
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space)
- {0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!)
- {0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (")
- {0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#)
- {0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($)
- {0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%)
- {0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&)
- {0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (')
- {0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (()
- {0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ())
- {0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*)
- {0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+)
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,)
- {0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-)
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.)
- {0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/)
- {0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0)
- {0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1)
- {0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2)
- {0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3)
- {0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4)
- {0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5)
- {0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6)
- {0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7)
- {0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8)
- {0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9)
- {0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:)
- {0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (;)
- {0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<)
- {0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=)
- {0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>)
- {0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?)
- {0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@)
- {0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A)
- {0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B)
- {0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C)
- {0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D)
- {0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E)
- {0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F)
- {0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G)
- {0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H)
- {0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I)
- {0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J)
- {0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K)
- {0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L)
- {0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M)
- {0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N)
- {0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O)
- {0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P)
- {0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q)
- {0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R)
- {0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S)
- {0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T)
- {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U)
- {0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V)
- {0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W)
- {0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X)
- {0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y)
- {0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z)
- {0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([)
- {0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\)
- {0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (])
- {0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^)
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_)
- {0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`)
- {0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a)
- {0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b)
- {0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c)
- {0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d)
- {0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e)
- {0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f)
- {0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g)
- {0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h)
- {0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i)
- {0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j)
- {0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k)
- {0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l)
- {0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m)
- {0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n)
- {0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o)
- {0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p)
- {0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q)
- {0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r)
- {0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s)
- {0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t)
- {0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u)
- {0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v)
- {0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w)
- {0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x)
- {0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y)
- {0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z)
- {0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({)
- {0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|)
- {0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (})
- {0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~)
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // U+007F
-
-};
-
-inline NeOS::Void fb_render_string_for_bitmap(const NeOS::UInt8* bitmap, const NeOS::SizeT& x_sz, const NeOS::SizeT& y_sz, NeOS::Int32& x_dst, NeOS::Int32& y_dst, NeOS::Int32& color)
-{
- NeOS::Int32 x, y;
- NeOS::Int32 set;
-
- x = 0;
- y = 0;
- set = 0;
-
- for (; y < y_sz; ++y)
- {
- for (x = 0; x < x_sz; ++x)
- {
- set = bitmap[x] & (1 << y);
-
- if (set)
- {
- FBDrawInRegion(color, 1, 1, ((x_dst) + x), ((y_dst) + y));
- }
- }
- }
-}
-
-inline NeOS::Void fb_render_string(const NeOS::Char* text, NeOS::Int32 x_dst, NeOS::Int32 y_dst, NeOS::Int32 color)
-{
- for (NeOS::SizeT i = 0; text[i] != 0; ++i)
- {
- fb_render_string_for_bitmap(&kFontBitmap[text[i]][0], kFontSizeX, kFontSizeY, x_dst, y_dst, color);
- y_dst += kFontSizeY;
- }
-}
diff --git a/dev/Mod/GPRS/.keepme b/dev/Mod/GPRS/.keepme deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/GPRS/.keepme +++ /dev/null diff --git a/dev/Mod/HPET/.gitkeep b/dev/Mod/HPET/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/HPET/.gitkeep +++ /dev/null diff --git a/dev/Mod/HPET/Defines.h b/dev/Mod/HPET/Defines.h deleted file mode 100644 index c916703a..00000000 --- a/dev/Mod/HPET/Defines.h +++ /dev/null @@ -1,42 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - - File: HPET.h - Purpose: HPET builtin. - - Revision History: - -------------------------------------------- */ - -#pragma once - -#include <NewKit/Defines.h> -#include <Mod/ACPI/ACPI.h> - -namespace NeOS -{ - struct PACKED HPETAddressStructure final - { - NeOS::UInt8 AddressSpaceId; // 0 - system memory, 1 - system I/O - NeOS::UInt8 RegisterBitWidth; - NeOS::UInt8 RegisterBitOffset; - NeOS::UInt8 Reserved; - NeOS::UInt64 Address; - }; - - struct PACKED HPETHeader final : public SDT - { - NeOS::UInt8 HardwareRevId; - NeOS::UInt8 ComparatorCount : 5; - NeOS::UInt8 CounterSize : 1; - NeOS::UInt8 Reserved : 1; - NeOS::UInt8 LegacyReplacement : 1; - NeOS::UInt16 PciVendorId; - HPETAddressStructure Address; - NeOS::UInt8 HpetNumber; - NeOS::UInt16 MinimumTick; - NeOS::UInt8 PageProtection; - }; - -} // namespace NeOS diff --git a/dev/Mod/IEEE802/.gitkeep b/dev/Mod/IEEE802/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/IEEE802/.gitkeep +++ /dev/null diff --git a/dev/Mod/LTE/LTE.h b/dev/Mod/LTE/LTE.h deleted file mode 100644 index ef7d49f3..00000000 --- a/dev/Mod/LTE/LTE.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -------------------------------------------
-
-Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved..
-
-File: LTE\LTE.h.
-Purpose: LTE Standard Library.
-
-------------------------------------------- */
-
-#ifndef _INC_NETWORK_LTE_H_
-#define _INC_NETWORK_LTE_H_
-
-#include <NewKit/Defines.h>
-#include <NewKit/KString.h>
-
-/// @brief Long Term Evolution I/O routines.
-
-/// @brief Turn on SIM slot.
-NeOS::Boolean lte_turn_on_sim(NeOS::Int32 simSlot);
-
-/// @brief Turn off SIM slot.
-NeOS::Boolean lte_turn_off_sim(NeOS::Int32 simSlot);
-
-/// @brief Send AT command.
-NeOS::Boolean lte_send_at_command(NeOS::Char* buf,
- NeOS::Size bufReadSz,
- NeOS::Int32 simSlot);
-
-NeOS::Boolean lte_write_sim_file(NeOS::Char* file,
- NeOS::VoidPtr buf,
- NeOS::Size bufSz,
- NeOS::Size offset,
- NeOS::Int32 simSlot);
-
-NeOS::VoidPtr lte_read_sim_file(NeOS::Char* file,
- NeOS::Size bufSz,
- NeOS::Size offset,
- NeOS::Int32 simSlot);
-
-#endif // ifndef _INC_NETWORK_LTE_H_
diff --git a/dev/Mod/MBCI/MBCI.h b/dev/Mod/MBCI/MBCI.h deleted file mode 100644 index d20f7934..00000000 --- a/dev/Mod/MBCI/MBCI.h +++ /dev/null @@ -1,100 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#ifndef _INC_MODULE_MBCI_H_ -#define _INC_MODULE_MBCI_H_ - -#include <NewKit/Defines.h> -#include <Mod/ACPI/ACPI.h> - -/** -- VCC (IN) (OUT for MCU) -- CLK (IN) (OUT for MCU) -- ACK (BI) (Contains an Acknowledge Packet Frame) -- D0- (IN) (Starts with the Host Interface Packet Frame) -- D1- (IN) (Starts with the Host Interface Packet Frame) -- D0+ (OUT) (Starts with the Host Interface Packet Frame) -- D1+ (OUT) (Starts with the Host Interface Packet Frame) -- GND (IN) (OUT for MCU) - */ - -#define kMBCIZeroSz (8) - -namespace NeOS -{ - struct IMBCIHost; - - enum - { - kMBCISpeedDeviceInvalid, - kMBCILowSpeedDevice, - kMBCIHighSpeedDevice, - kMBCISpeedDeviceCount, - }; - - /// @brief MBCI Host header. - struct PACKED IMBCIHost final - { - UInt32 Magic; - UInt32 HostId; - UInt16 VendorId; - UInt16 DeviceId; - UInt8 MemoryType; - UInt16 HostType; - UInt16 HostFlags; - UInt8 Error; - UInt32 MMIOTest; - UInt16 State; - UInt8 Status; - UInt8 InterruptEnable; - UInt64 BaseAddressRegister; - UInt64 BaseAddressRegisterSize; - UInt32 CommandIssue; - Char Zero[kMBCIZeroSz]; - }; - - /// @brief MBCI host flags. - enum MBCIHostFlags - { - kMBCIHostFlagsSupportsNothing, // Invalid MBCI device. - kMBCIHostFlagsSupportsAPM, // Advanced Power Management. - kMBCIHostFlagsSupportsDaisyChain, // Is daisy chained. - kMBCIHostFlagsSupportsHWInterrupts, // Has HW interrupts. - kMBCIHostFlagsSupportsDMA, // Has DMA. - kMBCIHostFlagsExtended, // Extended flags table. - }; - - /// @brief MBCI host kind. - enum MBCIHostKind - { - kMBCIHostKindHardDisk, - kMBCIHostKindOpticalDisk, - kMBCIHostKindKeyboardLow, - kMBCIHostKindMouseLow, - kMBCIHostKindMouseHigh, - kMBCIHostKindKeyboardHigh, - kMBCIHostKindNetworkInterface, - kMBCIHostKindDaisyChain, - kMBCIHostKindStartExtended, // Extended vendor table limit. - }; - - enum MBCIHostState - { - kMBCIHostStateInvalid, - kMBCIHostStateReset, - kMBCIHostStateSuccess, - kMBCIHostStateReady, - kMBCIHostStateDmaStart, - kMBCIHostStateDmaEnd, - kMBCIHostStateFail, - kMBCIHostStateCount, - }; - - /// @brief An AuthKey is a context used to decrpy data from an MBCI packet. - typedef UInt64 MBCIAuthKeyType; -} // namespace NeOS - -#endif // ifndef _INC_MODULE_MBCI_H_ diff --git a/dev/Mod/MFlash/MFlash.h b/dev/Mod/MFlash/MFlash.h deleted file mode 100644 index a1846610..00000000 --- a/dev/Mod/MFlash/MFlash.h +++ /dev/null @@ -1,25 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#pragma once - -#ifdef NE_USE_MBCI_FLASH - -#include <NewKit/Defines.h> - -NeOS::SizeT drv_get_sector_count(NeOS::Int32 slot); - -NeOS::SizeT drv_get_size(NeOS::Int32 slot); - -NeOS::Void drv_enable_at(NeOS::Int32 slot); - -NeOS::Void drv_disable_at(NeOS::Int32 slot); - -NeOS::Void drv_std_write(NeOS::Int32 slot, NeOS::UInt64 lba, NeOS::Char* buf, NeOS::SizeT sector_sz, NeOS::SizeT buf_sz); - -NeOS::Void drv_std_read(NeOS::Int32 slot, NeOS::UInt64 lba, NeOS::Char* buf, NeOS::SizeT sector_sz, NeOS::SizeT buf_sz); - -#endif // ifdef NE_USE_MBCI_FLASH diff --git a/dev/Mod/NVME/NVME.h b/dev/Mod/NVME/NVME.h deleted file mode 100644 index 5f8608f7..00000000 --- a/dev/Mod/NVME/NVME.h +++ /dev/null @@ -1,113 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - - Revision History: - - ??/??/24: Added file (amlel) - 23 Jul 24: Update filename to Defines.h and using NE_ALIGN_NVME for NVME structs. (amlel) - -------------------------------------------- */ - -#ifndef __MODULE_NVME_H__ -#define __MODULE_NVME_H__ - -#include <NewKit/Defines.h> - -/// @file NVME.h -/// @brief NVME driver. - -#define NE_ALIGN_NVME ATTRIBUTE(aligned(sizeof(NeOS::UInt32))) - -namespace NeOS -{ - struct NE_ALIGN_NVME HAL_NVME_BAR_0 final - { - UInt32 fCapabilities; - UInt32 fVersion; - UInt32 fIntMaskSet; - UInt32 fIntMaskClr; - UInt32 fContrlConf; - UInt32 fContrlStat; - UInt32 fAdminQueueAttr; - UInt32 fAdminSubmissionQueue; - UInt32 fAdminCompletionQueue; - }; - - struct NE_ALIGN_NVME HAL_NVME_QUEUE final - { - UInt32 fOpcode; - UInt32 fNSID; - UInt32 fReserved[3]; - UInt32 fMetadataPtr[5]; - UInt32 fDataPtr[9]; - UInt32 CommandSpecific[15]; - }; - - enum - { - kInvalidNVME, - kCreateCompletionQueueNVME = 0x05, - kCreateSubmissionQueueNVME = 0x01, - kIdentifyNVME = 0x06, - kReadNVME = 0x02, - kWriteNVME = 0x01, - kCountNVME = 5, - }; - - /// @brief Creates an admin command for a DMA operation. - template <Int32 Opcode> - inline Bool nvme_create_admin_command(HAL_NVME_QUEUE* entry, UInt32 nsid, UInt32 prpTransfer[3], UInt32 startingLba[2], UInt32 lowTransferBlocks) - { - if (entry == nullptr) - return false; - - entry->CommandSpecific[9] = startingLba[0]; - entry->CommandSpecific[10] = startingLba[1]; - - entry->CommandSpecific[11] = lowTransferBlocks; - - entry->CommandSpecific[5] = prpTransfer[0]; - entry->CommandSpecific[6] = prpTransfer[1]; - entry->CommandSpecific[7] = prpTransfer[2]; - - entry->CommandSpecific[0] = nsid; - - return true; - } - - /// @brief Creates an I/O command for a DMA operation. - template <Int32 Opcode> - inline Bool nvme_create_io_command(HAL_NVME_QUEUE* entry, UInt64 baseAddress, UInt32 identLoAndQueueSizeHi, UInt32 flagsLoAndQueueComplIdHi, UInt32 identify, Bool provideIdentify = false, Bool namespaceIdentify = false) - { - if (entry == nullptr) - return false; - - if (baseAddress == 0) - return false; - - entry->fOpcode = Opcode; - - entry->CommandSpecific[5] = (baseAddress & 0xFF); - entry->CommandSpecific[6] = static_cast<UInt32>(baseAddress); - - if (!provideIdentify) - { - entry->CommandSpecific[9] = identLoAndQueueSizeHi; - entry->CommandSpecific[10] = flagsLoAndQueueComplIdHi; - } - else - { - entry->CommandSpecific[9] = identify; - - if (namespaceIdentify) - { - entry->CommandSpecific[0] = 1; - } - } - - return true; - } -} // namespace NeOS - -#endif // ifndef __MODULE_NVME_H__ diff --git a/dev/Mod/OHCI/.gitkeep b/dev/Mod/OHCI/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/OHCI/.gitkeep +++ /dev/null diff --git a/dev/Mod/Pwr/PowerFactory.h b/dev/Mod/Pwr/PowerFactory.h deleted file mode 100644 index 15548198..00000000 --- a/dev/Mod/Pwr/PowerFactory.h +++ /dev/null @@ -1,37 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#pragma once - -#include <KernelKit/DebugOutput.h> -#include <Mod/ACPI/ACPI.h> -#include <NewKit/ErrorOr.h> -#include <NewKit/Defines.h> -#include <NewKit/Ref.h> - -#define NE_POWER_FACTORY : public PowerFactory - -namespace NeOS -{ - class PowerFactory; - - class PowerFactory - { - public: - explicit PowerFactory() = default; - virtual ~PowerFactory() = default; - - PowerFactory& operator=(const PowerFactory&) = default; - PowerFactory(const PowerFactory&) = default; - - public: - Bool Shutdown() - { - return NO; - }; // shutdown - Void Reboot(){}; // soft-reboot - }; -} // namespace NeOS
\ No newline at end of file diff --git a/dev/Mod/ReadMe.md b/dev/Mod/ReadMe.md deleted file mode 100644 index 1261e247..00000000 --- a/dev/Mod/ReadMe.md +++ /dev/null @@ -1,12 +0,0 @@ -# Kernel Modules - -## Brief - -They are pluggable modules for specific hardware support. - -## To-Do - -- [X] AHCI kernel module. -- [X] MBCI kernel module. - -###### Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. All rights reserved. diff --git a/dev/Mod/SCSI/.gitkeep b/dev/Mod/SCSI/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/SCSI/.gitkeep +++ /dev/null diff --git a/dev/Mod/SCSI/SCSI.h b/dev/Mod/SCSI/SCSI.h deleted file mode 100644 index 156bec90..00000000 --- a/dev/Mod/SCSI/SCSI.h +++ /dev/null @@ -1,15 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#pragma once - -#include <NewKit/Defines.h> - -/// @file SCSI.h -/// @brief Serial SCSI driver. - -template <int PacketBitLen> -using scsi_packet_type = NeOS::UInt16[PacketBitLen]; diff --git a/dev/Mod/WiFi/.gitkeep b/dev/Mod/WiFi/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/WiFi/.gitkeep +++ /dev/null diff --git a/dev/Mod/XHCI/.gitkeep b/dev/Mod/XHCI/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Mod/XHCI/.gitkeep +++ /dev/null diff --git a/dev/Mod/XHCI/Defines.h b/dev/Mod/XHCI/Defines.h deleted file mode 100644 index e3fcce11..00000000 --- a/dev/Mod/XHCI/Defines.h +++ /dev/null @@ -1,70 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - - File: Defines.h - Purpose: XHCI (and backwards) header. - - Revision History: - - 01/02/24: Added file (amlel) - 03/02/24: Update filename to Defines.h (amlel) - -------------------------------------------- */ - -#pragma once - -#include <NewKit/Defines.h> - -using namespace NeOS; - -#define kUSBCommand (UInt16)0x0 -#define kUSBStatus (UInt16)0x2 -#define kUSBInterruptEnable (UInt16)0x4 -#define kUSBFrameNum (UInt16)0x6 -#define kUSBFrameListBaseAddress (UInt16)0x8 -#define kUSBFrameModifyStart (UInt16)0xC -#define kUSBPort1StatusCtrl (UInt16)0x10 -#define kUSBPort2StatusCtrl (UInt16)0x12 - -typedef struct USBCommandRegister final -{ - UInt8 mReserved[8]; // Reserved - UInt8 - mMaxPacket; // 0 = Max packet size 32 bits 1 = Max packet size 64 bits - UInt8 mConfigure; - UInt8 mSoftwareDebug; - UInt8 mGlobalResume; - UInt8 mGlobalSuspend; - UInt8 mHostCtrlReset; - UInt8 mRun; // 1 = Controller execute frame list entries -} USBCommandRegister; - -typedef struct USBStatusRegister final -{ - UInt8 mReserved[8]; // Reserved - UInt8 mHalted; // 1 = bit 0 in CMD is zero 0 = bit 0 in CMD is 1 - UInt8 mProcessError; - UInt8 mSystemError; - UInt8 mResumeDetected; - UInt8 mErrorInterrupt; - UInt8 mInterrupt; -} USBStatusRegister; - -typedef struct USBInterruptEnableRegister final -{ - UInt8 mReserved[4]; // Reserved - UInt8 mShortPacket; // 1=Enable interrupt 0=Disable interrupt - UInt8 mComplete; // 1=Enable interrupt 0=Disable interrupt - UInt8 mResume; // 1=Enable interrupt 0=Disable interrupt - UInt8 mTimeoutCRC; // 1=Enable interrupt 0=Disable interrupt -} USBInterruptEnableRegister; - -/* - Some terminology: - - Frame Number: Number of processed entry of the Frame List. - Frame List Base Address: - 32-bit physical adress of Frame List. Remember that first 12 bytes are - always 0. The Frame List must contain 1024 entries. -*/ |
