Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
ahci.cpp File Reference
#include "ahci/ahci.hpp"
#include "ahci/ahci_reg.hpp"
#include "ioforge/ioforge.h"
#include "ioforge/ioforge.hpp"
#include "ioforge/ioforge_block.h"
#include "ioforge/ioforge_pci.h"
#include "memory/kalloc.h"
#include <type.h>
#include <str.h>

Go to the source code of this file.

Macros

#define ATA_CMD_IDENTIFY_PACKET   0xA1
 
#define ATA_CMD_IDENTIFY   0xEC
 
#define ATA_CMD_WRITE_DMA_EXT   0x35
 
#define ATA_CMD_READ_DMA_EXT   0x25
 
#define ATA_CMD_PACKET   0xA0
 
#define ATA_CMD_FLUSH_CACHE_EXT   0xEA
 

Functions

static bool is_device_present (ahci_port_t *port)
 
static ahci_device_type_t get_device_type (ahci_port_t *port)
 
static int find_cmdslot (ahci_port_t *port)
 
int submit (struct ioforge_block_device *dev, struct ioforge_block_request *req)
 

Variables

static struct ahci_internal_vaddr port_vaddr [32]
 

Macro Definition Documentation

◆ ATA_CMD_FLUSH_CACHE_EXT

#define ATA_CMD_FLUSH_CACHE_EXT   0xEA

Definition at line 157 of file ahci.cpp.

◆ ATA_CMD_IDENTIFY

#define ATA_CMD_IDENTIFY   0xEC

Definition at line 153 of file ahci.cpp.

Referenced by AHCIModule::ata_identify().

◆ ATA_CMD_IDENTIFY_PACKET

#define ATA_CMD_IDENTIFY_PACKET   0xA1

Definition at line 152 of file ahci.cpp.

Referenced by AHCIModule::ata_identify().

◆ ATA_CMD_PACKET

#define ATA_CMD_PACKET   0xA0

Definition at line 156 of file ahci.cpp.

Referenced by AHCIModule::atapi_packet().

◆ ATA_CMD_READ_DMA_EXT

#define ATA_CMD_READ_DMA_EXT   0x25

Definition at line 155 of file ahci.cpp.

Referenced by AHCIModule::ata_rw().

◆ ATA_CMD_WRITE_DMA_EXT

#define ATA_CMD_WRITE_DMA_EXT   0x35

Definition at line 154 of file ahci.cpp.

Referenced by AHCIModule::ata_rw().

Function Documentation

◆ find_cmdslot()

static int find_cmdslot ( ahci_port_t * port)
static

◆ get_device_type()

◆ is_device_present()

static bool is_device_present ( ahci_port_t * port)
static

Definition at line 14 of file ahci.cpp.

References HBA_PxSSTS_DET_ESTABLISHED, HBA_PxSSTS_DET_MASK, and ahci_port_t::ssts.

Referenced by get_device_type(), and AHCIModule::probe().

◆ submit()

int submit ( struct ioforge_block_device * dev,
struct ioforge_block_request * req )

Definition at line 413 of file ahci.cpp.

References AHCIModule::getInstance(), and instance.

Referenced by AHCIModule::probe().

Variable Documentation

◆ port_vaddr

struct ahci_internal_vaddr port_vaddr[32]
static

Definition at line 12 of file ahci.cpp.

Referenced by AHCIModule::probe(), and AHCIModule::submit_impl().