Lines Matching full:ahci

5  * AHCI qtest library functions and definitions
40 /*** Recognized AHCI Device Types ***/
44 /*** AHCI/HBA Register Offsets and Bitmasks ***/
308 /* AHCI Command Header Flags & Masks*/
475 /* Opaque, defined within ahci.c */
505 /* Helpers for reading/writing AHCI HBA register values */
507 static inline uint32_t ahci_mread(AHCIQState *ahci, size_t offset) in ahci_mread() argument
509 return qpci_io_readl(ahci->dev, ahci->hba_bar, offset); in ahci_mread()
512 static inline void ahci_mwrite(AHCIQState *ahci, size_t offset, uint32_t value) in ahci_mwrite() argument
514 qpci_io_writel(ahci->dev, ahci->hba_bar, offset, value); in ahci_mwrite()
517 static inline uint32_t ahci_rreg(AHCIQState *ahci, uint32_t reg_num) in ahci_rreg() argument
519 return ahci_mread(ahci, 4 * reg_num); in ahci_rreg()
522 static inline void ahci_wreg(AHCIQState *ahci, uint32_t reg_num, uint32_t value) in ahci_wreg() argument
524 ahci_mwrite(ahci, 4 * reg_num, value); in ahci_wreg()
527 static inline void ahci_set(AHCIQState *ahci, uint32_t reg_num, uint32_t mask) in ahci_set() argument
529 ahci_wreg(ahci, reg_num, ahci_rreg(ahci, reg_num) | mask); in ahci_set()
532 static inline void ahci_clr(AHCIQState *ahci, uint32_t reg_num, uint32_t mask) in ahci_clr() argument
534 ahci_wreg(ahci, reg_num, ahci_rreg(ahci, reg_num) & ~mask); in ahci_clr()
542 static inline uint32_t ahci_px_rreg(AHCIQState *ahci, uint8_t port, in ahci_px_rreg() argument
545 return ahci_rreg(ahci, ahci_px_offset(port, reg_num)); in ahci_px_rreg()
548 static inline void ahci_px_wreg(AHCIQState *ahci, uint8_t port, in ahci_px_wreg() argument
551 ahci_wreg(ahci, ahci_px_offset(port, reg_num), value); in ahci_px_wreg()
554 static inline void ahci_px_set(AHCIQState *ahci, uint8_t port, in ahci_px_set() argument
557 ahci_px_wreg(ahci, port, reg_num, in ahci_px_set()
558 ahci_px_rreg(ahci, port, reg_num) | mask); in ahci_px_set()
561 static inline void ahci_px_clr(AHCIQState *ahci, uint8_t port, in ahci_px_clr() argument
564 ahci_px_wreg(ahci, port, reg_num, in ahci_px_clr()
565 ahci_px_rreg(ahci, port, reg_num) & ~mask); in ahci_px_clr()
569 uint64_t ahci_alloc(AHCIQState *ahci, size_t bytes);
570 void ahci_free(AHCIQState *ahci, uint64_t addr);
571 void ahci_clean_mem(AHCIQState *ahci);
576 void ahci_pci_enable(AHCIQState *ahci);
577 void start_ahci_device(AHCIQState *ahci);
578 void ahci_hba_enable(AHCIQState *ahci);
581 unsigned ahci_port_select(AHCIQState *ahci);
582 void ahci_port_clear(AHCIQState *ahci, uint8_t port);
585 unsigned ahci_pick_cmd(AHCIQState *ahci, uint8_t port);
586 void ahci_get_command_header(AHCIQState *ahci, uint8_t port,
588 void ahci_set_command_header(AHCIQState *ahci, uint8_t port,
590 void ahci_destroy_command(AHCIQState *ahci, uint8_t port, uint8_t slot);
592 /* AHCI sanity check routines */
593 void ahci_port_check_error(AHCIQState *ahci, AHCICommand *cmd);
594 void ahci_port_check_interrupts(AHCIQState *ahci, AHCICommand *cmd);
595 void ahci_port_check_nonbusy(AHCIQState *ahci, AHCICommand *cmd);
596 void ahci_port_check_d2h_sanity(AHCIQState *ahci, uint8_t port, uint8_t slot);
597 void ahci_port_check_pio_sanity(AHCIQState *ahci, AHCICommand *cmd);
598 void ahci_port_check_cmd_sanity(AHCIQState *ahci, AHCICommand *cmd);
601 bool is_atapi(AHCIQState *ahci, uint8_t port);
604 void ahci_guest_io(AHCIQState *ahci, uint8_t port, uint8_t ide_cmd,
606 AHCICommand *ahci_guest_io_halt(AHCIQState *ahci, uint8_t port, uint8_t ide_cmd,
608 void ahci_guest_io_resume(AHCIQState *ahci, AHCICommand *cmd);
609 void ahci_io(AHCIQState *ahci, uint8_t port, uint8_t ide_cmd,
611 void ahci_exec(AHCIQState *ahci, uint8_t port,
613 void ahci_atapi_test_ready(AHCIQState *ahci, uint8_t port, bool ready,
615 void ahci_atapi_get_sense(AHCIQState *ahci, uint8_t port,
617 void ahci_atapi_eject(AHCIQState *ahci, uint8_t port);
618 void ahci_atapi_load(AHCIQState *ahci, uint8_t port);
623 void ahci_command_commit(AHCIQState *ahci, AHCICommand *cmd, uint8_t port);
624 void ahci_command_issue(AHCIQState *ahci, AHCICommand *cmd);
625 void ahci_command_issue_async(AHCIQState *ahci, AHCICommand *cmd);
626 void ahci_command_wait(AHCIQState *ahci, AHCICommand *cmd);
627 void ahci_command_verify(AHCIQState *ahci, AHCICommand *cmd);
646 void ahci_write_fis(AHCIQState *ahci, AHCICommand *cmd);