Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
ahci_reg.hpp File Reference
#include <type.h>

Go to the source code of this file.

Data Structures

struct  ahci_port_t
 
struct  ahci_ghc_t
 
struct  __attribute__
 
struct  ahci_cmd_t
 
struct  ahci_fis_h2d_t
 

Macros

#define AHCI_SIG_ATA   0x00000101
 
#define AHCI_SIG_ATAPI   0xEB140101
 
#define AHCI_SIG_SEMB   0xC33C0101
 
#define AHCI_SIG_PM   0x96690101
 
#define HBA_PxSSTS_DET_MASK   0xF
 
#define HBA_PxSSTS_DET_NONE   0x0
 
#define HBA_PxSSTS_DET_PRESENT   0x1
 
#define HBA_PxSSTS_DET_ESTABLISHED   0x3
 
#define HBA_PxSSTS_DET_OFFLINE   0x4
 
#define HBA_PxSSTS_SPD_MASK   (0xF << 4)
 
#define HBA_PxSSTS_SPD_NONE   (0x0 << 4)
 
#define HBA_PxSSTS_SPD_GEN1   (0x1 << 4)
 
#define HBA_PxSSTS_SPD_GEN2   (0x2 << 4)
 
#define HBA_PxSSTS_SPD_GEN3   (0x3 << 4)
 
#define HBA_PxSSTS_IPM_MASK   (0xF << 8)
 
#define HBA_PxSSTS_IPM_NONE   (0x0 << 8)
 
#define HBA_PxSSTS_IPM_ACTIVE   (0x1 << 8)
 
#define HBA_PxSSTS_IPM_PARTIAL   (0x2 << 8)
 
#define HBA_PxSSTS_IPM_SLUMBER   (0x6 << 8)
 
#define ATA_DEV_BUSY   0x80
 
#define ATA_DEV_DRQ   0x08
 

Enumerations

enum  FIS_TYPE {
  FIS_TYPE_REG_H2D = 0x27 , FIS_TYPE_REG_D2H = 0x34 , FIS_TYPE_DMA_ACT = 0x39 , FIS_TYPE_DMA_SETUP = 0x41 ,
  FIS_TYPE_DATA = 0x46 , FIS_TYPE_BIST = 0x58 , FIS_TYPE_PIO_SETUP = 0x5F , FIS_TYPE_DEV_BITS = 0xA1
}
 
enum  ahci_device_type_t : int {
  AHCI_DEV_NULL = 0 , AHCI_DEV_SATA , AHCI_DEV_SATAPI , AHCI_DEV_SEMB ,
  AHCI_DEV_PM
}
 

Macro Definition Documentation

◆ AHCI_SIG_ATA

#define AHCI_SIG_ATA   0x00000101

Definition at line 60 of file ahci_reg.hpp.

Referenced by get_device_type().

◆ AHCI_SIG_ATAPI

#define AHCI_SIG_ATAPI   0xEB140101

Definition at line 61 of file ahci_reg.hpp.

Referenced by get_device_type().

◆ AHCI_SIG_PM

#define AHCI_SIG_PM   0x96690101

Definition at line 63 of file ahci_reg.hpp.

Referenced by get_device_type().

◆ AHCI_SIG_SEMB

#define AHCI_SIG_SEMB   0xC33C0101

Definition at line 62 of file ahci_reg.hpp.

Referenced by get_device_type().

◆ ATA_DEV_BUSY

#define ATA_DEV_BUSY   0x80

Definition at line 84 of file ahci_reg.hpp.

Referenced by AHCIModule::issue_and_wait().

◆ ATA_DEV_DRQ

#define ATA_DEV_DRQ   0x08

Definition at line 85 of file ahci_reg.hpp.

Referenced by AHCIModule::issue_and_wait().

◆ HBA_PxSSTS_DET_ESTABLISHED

#define HBA_PxSSTS_DET_ESTABLISHED   0x3

Definition at line 69 of file ahci_reg.hpp.

Referenced by is_device_present().

◆ HBA_PxSSTS_DET_MASK

#define HBA_PxSSTS_DET_MASK   0xF

Definition at line 66 of file ahci_reg.hpp.

Referenced by is_device_present().

◆ HBA_PxSSTS_DET_NONE

#define HBA_PxSSTS_DET_NONE   0x0

Definition at line 67 of file ahci_reg.hpp.

◆ HBA_PxSSTS_DET_OFFLINE

#define HBA_PxSSTS_DET_OFFLINE   0x4

Definition at line 70 of file ahci_reg.hpp.

◆ HBA_PxSSTS_DET_PRESENT

#define HBA_PxSSTS_DET_PRESENT   0x1

Definition at line 68 of file ahci_reg.hpp.

◆ HBA_PxSSTS_IPM_ACTIVE

#define HBA_PxSSTS_IPM_ACTIVE   (0x1 << 8)

Definition at line 80 of file ahci_reg.hpp.

◆ HBA_PxSSTS_IPM_MASK

#define HBA_PxSSTS_IPM_MASK   (0xF << 8)

Definition at line 78 of file ahci_reg.hpp.

◆ HBA_PxSSTS_IPM_NONE

#define HBA_PxSSTS_IPM_NONE   (0x0 << 8)

Definition at line 79 of file ahci_reg.hpp.

◆ HBA_PxSSTS_IPM_PARTIAL

#define HBA_PxSSTS_IPM_PARTIAL   (0x2 << 8)

Definition at line 81 of file ahci_reg.hpp.

◆ HBA_PxSSTS_IPM_SLUMBER

#define HBA_PxSSTS_IPM_SLUMBER   (0x6 << 8)

Definition at line 82 of file ahci_reg.hpp.

◆ HBA_PxSSTS_SPD_GEN1

#define HBA_PxSSTS_SPD_GEN1   (0x1 << 4)

Definition at line 74 of file ahci_reg.hpp.

◆ HBA_PxSSTS_SPD_GEN2

#define HBA_PxSSTS_SPD_GEN2   (0x2 << 4)

Definition at line 75 of file ahci_reg.hpp.

◆ HBA_PxSSTS_SPD_GEN3

#define HBA_PxSSTS_SPD_GEN3   (0x3 << 4)

Definition at line 76 of file ahci_reg.hpp.

◆ HBA_PxSSTS_SPD_MASK

#define HBA_PxSSTS_SPD_MASK   (0xF << 4)

Definition at line 72 of file ahci_reg.hpp.

◆ HBA_PxSSTS_SPD_NONE

#define HBA_PxSSTS_SPD_NONE   (0x0 << 4)

Definition at line 73 of file ahci_reg.hpp.

Enumeration Type Documentation

◆ ahci_device_type_t

enum ahci_device_type_t : int
Enumerator
AHCI_DEV_NULL 
AHCI_DEV_SATA 
AHCI_DEV_SATAPI 
AHCI_DEV_SEMB 
AHCI_DEV_PM 

Definition at line 98 of file ahci_reg.hpp.

◆ FIS_TYPE

enum FIS_TYPE
Enumerator
FIS_TYPE_REG_H2D 
FIS_TYPE_REG_D2H 
FIS_TYPE_DMA_ACT 
FIS_TYPE_DMA_SETUP 
FIS_TYPE_DATA 
FIS_TYPE_BIST 
FIS_TYPE_PIO_SETUP 
FIS_TYPE_DEV_BITS 

Definition at line 87 of file ahci_reg.hpp.