| 12345678910111213141516171819202122232425262728293031323334 | // Host side SCSI physical interface.// Used in initiator to interface to an SCSI drive.#pragma once#include <stdint.h>#include <stdbool.h>// Request to stop activity and reset the busextern volatile int g_scsiHostPhyReset;// Release bus and pulse RST signal, initialize PHY to host mode.void scsiHostPhyReset(void);// Select a device, id 0-7.// Returns true if the target answers to selection request.bool scsiHostPhySelect(int target_id, int initiator_id);// Read the current communication phase as signaled by the target// Matches SCSI_PHASE enumeration from scsi.h.int scsiHostPhyGetPhase();// Returns true if the device has asserted REQ signal, i.e. data waitingbool scsiHostRequestWaiting();// Blocking data transfer// These return the actual number of bytes transferred.uint32_t scsiHostWrite(const uint8_t *data, uint32_t count);uint32_t scsiHostRead(uint8_t *data, uint32_t count);// Release all bus signalsvoid scsiHostPhyRelease();void setInitiatorModeParityCheck(bool checkParity);
 |