sata_pkt
sata_txlt_atapi_completion(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
uint8_t *rqsp = sata_pkt->satapkt_cmd.satacmd_rqsense;
if (sata_pkt->satapkt_reason == SATA_PKT_COMPLETED) {
if (sata_pkt->satapkt_cmd.satacmd_bp != NULL)
if (sata_pkt->satapkt_reason == SATA_PKT_DEV_ERROR) {
bcopy(sata_pkt->satapkt_cmd.satacmd_rqsense, sense,
switch (sata_pkt->satapkt_reason) {
sata_free_dma_resources(sata_pkt_t *sata_pkt)
if (sata_pkt == NULL)
spx = (sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
sata_free_error_retrieval_pkt(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
ASSERT(sata_pkt != NULL);
sata_free_rdwr_pmult_pkt(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
static void sata_txlt_apt_completion(sata_pkt_t *sata_pkt);
static void sata_txlt_unmap_completion(sata_pkt_t *sata_pkt);
sata_pkt_t *sata_pkt;
sata_pkt = kmem_zalloc(sizeof (sata_pkt_t), KM_NOSLEEP);
if (sata_pkt == NULL) {
sata_pkt->satapkt_rev = SATA_PKT_REV;
sata_pkt->satapkt_device = sata_device;
sata_pkt->satapkt_device.satadev_rev = SATA_DEVICE_REV;
sata_pkt = ((sata_pkt_txlate_t *)scsi_pkt->pkt_ha_private)->
(SATA_DIP(sata_hba_inst), sata_pkt,
kmem_free(sata_pkt, sizeof (sata_pkt_t));
kmem_free(sata_pkt, sizeof (sata_pkt_t));
struct sata_pkt *sata_pkt = spx->txlt_sata_pkt;
if (sata_pkt->satapkt_reason == SATA_PKT_COMPLETED) {
switch (sata_pkt->satapkt_reason) {
if (sata_pkt->satapkt_cmd.satacmd_status_reg &
sata_pkt->satapkt_reason));
sata_txlt_rw_completion(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
sata_cmd_t *scmd = &sata_pkt->satapkt_cmd;
if (sata_pkt->satapkt_reason == SATA_PKT_COMPLETED) {
if (sata_pkt->satapkt_reason == SATA_PKT_DEV_ERROR) {
switch (sata_pkt->satapkt_reason) {
if (sata_pkt->satapkt_cmd.satacmd_status_reg &
sata_txlt_nodata_cmd_completion(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
sata_set_arq_data(sata_pkt);
sata_txlt_apt_completion(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
sata_cmd_t *scmd = &sata_pkt->satapkt_cmd;
if (sata_pkt->satapkt_reason == SATA_PKT_COMPLETED) {
sata_fill_ata_return_desc(sata_pkt,
sata_fill_ata_return_desc(sata_pkt, sense_key, addl_sense_code,
sata_txlt_unmap_completion(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
sata_cmd_t *scmd = &sata_pkt->satapkt_cmd;
if (sata_pkt->satapkt_reason == SATA_PKT_COMPLETED) {
sata_fill_ata_return_desc(sata_pkt, sense_key, addl_sense_code,
sata_fill_ata_return_desc(sata_pkt_t *sata_pkt, uint8_t sense_key,
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
sata_cmd_t *scmd = &sata_pkt->satapkt_cmd;
sata_set_arq_data(sata_pkt_t *sata_pkt)
(sata_pkt_txlate_t *)sata_pkt->satapkt_framework_private;
if (sata_pkt->satapkt_reason == SATA_PKT_COMPLETED) {
switch (sata_pkt->satapkt_reason) {
if (sata_pkt->satapkt_cmd.satacmd_status_reg &
sata_pkt->satapkt_reason));
struct sata_pkt *txlt_sata_pkt;
void (*satapkt_comp)(struct sata_pkt *); /* callback */
typedef struct sata_pkt sata_pkt_t;
_NOTE(SCHEME_PROTECTS_DATA("unshared data", sata_pkt))