|
Retro Rocket Kernel
BASIC-Powered Operating System
|
#include "kernel.h"Data Structures | |
| struct | ahci_fis_reg_h2d_t |
| struct | ahci_fis_reg_d2h_t |
| struct | ahci_fis_data_t |
| struct | ahci_fis_pio_setup_t |
| struct | ahci_fis_dma_setup_t |
| struct | ahci_hba_port_t |
| struct | ahci_hba_mem_t |
| struct | ahci_fis_dev_bits_t |
| struct | achi_hba_fis_t |
| struct | ahci_hba_cmd_header_t |
| struct | ahci_hba_prdt_entry_t |
| struct | achi_hba_cmd_tbl_t |
Macros | |
| #define | ATA_IDENT_DEVICETYPE 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 | SATA_SIG_ATA 0x00000101 |
| #define | SATA_SIG_ATAPI 0xEB140101 |
| #define | SATA_SIG_SEMB 0xC33C0101 |
| #define | SATA_SIG_PM 0x96690101 |
| #define | AHCI_DEV_NULL 0 |
| #define | AHCI_DEV_SATA 1 |
| #define | AHCI_DEV_SEMB 2 |
| #define | AHCI_DEV_PM 3 |
| #define | AHCI_DEV_SATAPI 4 |
| #define | HBA_PORT_IPM_ACTIVE 1 |
| #define | HBA_PORT_DET_PRESENT 3 |
| #define | HBA_PxCMD_ST 0x0001 |
| #define | HBA_PxCMD_FRE 0x0010 |
| #define | HBA_PxCMD_FR 0x4000 |
| #define | HBA_PxCMD_CR 0x8000 |
| #define | HBA_PxIS_TFES (1 << 30) |
| #define | ATA_CMD_READ_DMA_EX 0x25 |
| #define | ATA_CMD_WRITE_DMA_EX 0x35 |
| #define | ATA_DEV_BUSY 0x80 |
| #define | ATA_DEV_DRQ 0x08 |
Enumerations | |
| enum | ahci_fis_type_t { 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 } |
Functions | |
| struct ahci_fis_reg_h2d_t | __attribute__ ((packed)) ahci_fis_reg_h2d_t |
| void | init_ahci () |
Variables | |
| uint8_t | fis_type |
| uint8_t | pmport |
| uint8_t | rsv0 |
| uint8_t | c |
| uint8_t | command |
| uint8_t | featurel |
| uint8_t | lba0 |
| uint8_t | lba1 |
| uint8_t | lba2 |
| uint8_t | device |
| uint8_t | lba3 |
| uint8_t | lba4 |
| uint8_t | lba5 |
| uint8_t | featureh |
| uint8_t | countl |
| uint8_t | counth |
| uint8_t | icc |
| uint8_t | control |
| uint8_t | rsv1 [4] |
| uint8_t | i |
| uint8_t | status |
| uint8_t | error |
| uint8_t | rsv2 |
| uint8_t | rsv3 [2] |
| uint8_t | rsv4 [4] |
| uint32_t | data [] |
| uint8_t | d |
| uint8_t | e_status |
| uint16_t | tc |
| uint8_t | a |
| uint8_t | rsved [2] |
| uint64_t | DMAbufferID |
| uint32_t | rsvd |
| uint32_t | DMAbufOffset |
| uint32_t | TransferCount |
| uint32_t | resvd |
| uint32_t | clb |
| uint32_t | clbu |
| uint32_t | fb |
| uint32_t | fbu |
| uint32_t | is |
| uint32_t | ie |
| uint32_t | cmd |
| uint32_t | tfd |
| uint32_t | sig |
| uint32_t | ssts |
| uint32_t | sctl |
| uint32_t | serr |
| uint32_t | sact |
| uint32_t | ci |
| uint32_t | sntf |
| uint32_t | fbs |
| uint32_t | vendor [4] |
| uint32_t | cap |
| uint32_t | ghc |
| uint32_t | pi |
| uint32_t | vs |
| uint32_t | ccc_ctl |
| uint32_t | ccc_pts |
| uint32_t | em_loc |
| uint32_t | em_ctl |
| uint32_t | cap2 |
| uint32_t | bohc |
| uint8_t | rsv [0xA0-0x2C] |
| ahci_hba_port_t | ports [1] |
| uint8_t | n |
| uint8_t | statusl |
| uint8_t | rsvd2 |
| uint8_t | statush |
| uint8_t | rsvd3 |
| ahci_fis_dma_setup_t | dsfis |
| uint8_t | pad0 [4] |
| ahci_fis_pio_setup_t | psfis |
| uint8_t | pad1 [12] |
| ahci_fis_reg_d2h_t | rfis |
| uint8_t | pad2 [4] |
| ahci_fis_dev_bits_t | sdbfis |
| uint8_t | ufis [64] |
| uint8_t | cfl |
| uint8_t | w |
| uint8_t | p |
| uint8_t | r |
| uint8_t | b |
| uint8_t | pmp |
| uint16_t | prdtl |
| volatile uint32_t | prdbc |
| uint32_t | ctba |
| uint32_t | ctbau |
| uint32_t | dba |
| uint32_t | dbau |
| uint32_t | dbc |
| uint8_t | cfis [64] |
| uint8_t | acmd [16] |
| ahci_hba_prdt_entry_t | prdt_entry [1] |
| #define AHCI_DEV_NULL 0 |
| #define AHCI_DEV_PM 3 |
| #define AHCI_DEV_SATA 1 |
| #define AHCI_DEV_SATAPI 4 |
| #define AHCI_DEV_SEMB 2 |
| #define ATA_CMD_READ_DMA_EX 0x25 |
| #define ATA_CMD_WRITE_DMA_EX 0x35 |
| #define ATA_DEV_BUSY 0x80 |
| #define ATA_DEV_DRQ 0x08 |
| #define ATA_IDENT_CAPABILITIES 98 |
| #define ATA_IDENT_COMMANDSETS 164 |
| #define ATA_IDENT_CYLINDERS 2 |
| #define ATA_IDENT_DEVICETYPE 0 |
| #define ATA_IDENT_FIELDVALID 106 |
| #define ATA_IDENT_HEADS 6 |
| #define ATA_IDENT_MAX_LBA 120 |
| #define ATA_IDENT_MAX_LBA_EXT 200 |
| #define ATA_IDENT_MODEL 54 |
| #define ATA_IDENT_SECTORS 12 |
| #define ATA_IDENT_SERIAL 20 |
| #define HBA_PORT_DET_PRESENT 3 |
| #define HBA_PORT_IPM_ACTIVE 1 |
| #define HBA_PxCMD_CR 0x8000 |
| #define HBA_PxCMD_FR 0x4000 |
| #define HBA_PxCMD_FRE 0x0010 |
| #define HBA_PxCMD_ST 0x0001 |
| #define HBA_PxIS_TFES (1 << 30) |
| #define SATA_SIG_ATA 0x00000101 |
| #define SATA_SIG_ATAPI 0xEB140101 |
| #define SATA_SIG_PM 0x96690101 |
| #define SATA_SIG_SEMB 0xC33C0101 |
| enum ahci_fis_type_t |
| struct ahci_fis_reg_h2d_t __attribute__ | ( | (packed) | ) |
| void init_ahci | ( | ) |
| uint8_t a |
| uint8_t acmd[16] |
| uint8_t b |
| uint32_t bohc |
| uint8_t c |
| uint32_t cap |
| uint32_t cap2 |
| uint32_t ccc_ctl |
| uint32_t ccc_pts |
| uint8_t cfis[64] |
| uint8_t cfl |
| uint32_t ci |
| uint32_t clb |
| uint32_t clbu |
| uint32_t cmd |
| uint8_t command |
| uint8_t control |
| uint8_t counth |
| uint8_t countl |
| uint32_t ctba |
| uint32_t ctbau |
| uint8_t d |
| uint32_t data[] |
| uint32_t dba |
| uint32_t dbau |
| uint32_t dbc |
| uint8_t device |
| uint64_t DMAbufferID |
| uint32_t DMAbufOffset |
| ahci_fis_dma_setup_t dsfis |
| uint8_t e_status |
| uint32_t em_ctl |
| uint32_t em_loc |
| uint8_t error |
| uint32_t fb |
| uint32_t fbs |
| uint32_t fbu |
| uint8_t featureh |
| uint8_t featurel |
| uint8_t fis_type |
| uint32_t ghc |
| uint32_t i |
| uint8_t icc |
| uint32_t ie |
| uint32_t is |
| uint8_t lba0 |
| uint8_t lba1 |
| uint8_t lba2 |
| uint8_t lba3 |
| uint8_t lba4 |
| uint8_t lba5 |
| uint8_t n |
| uint8_t p |
| uint8_t pad0[4] |
| uint8_t pad1[12] |
| uint8_t pad2[4] |
| uint32_t pi |
| uint8_t pmp |
| uint8_t pmport |
| ahci_hba_port_t ports[1] |
| volatile uint32_t prdbc |
| ahci_hba_prdt_entry_t prdt_entry[1] |
| uint16_t prdtl |
| ahci_fis_pio_setup_t psfis |
| uint8_t r |
| uint32_t resvd |
| ahci_fis_reg_d2h_t rfis |
| uint8_t rsv |
| uint32_t rsv0 |
| uint32_t rsv1 |
| uint8_t rsv2 |
| uint8_t rsv3 |
| uint8_t rsv4 |
| uint8_t rsvd |
| uint8_t rsvd2 |
| uint8_t rsvd3 |
| uint8_t rsved[2] |
| uint32_t sact |
| uint32_t sctl |
| ahci_fis_dev_bits_t sdbfis |
| uint32_t serr |
| uint32_t sig |
| uint32_t sntf |
| uint32_t ssts |
| volatile uint8_t status |
| uint8_t statush |
| uint8_t statusl |
| uint16_t tc |
| uint32_t tfd |
| uint32_t TransferCount |
| uint8_t ufis[64] |
| uint8_t vendor |
| uint32_t vs |
| uint8_t w |