Changeset View
Changeset View
Standalone View
Standalone View
sys/cam/cam_ccb.h
Context not available. | |||||
#include <cam/cam_debug.h> | #include <cam/cam_debug.h> | ||||
#include <cam/scsi/scsi_all.h> | #include <cam/scsi/scsi_all.h> | ||||
#include <cam/ata/ata_all.h> | #include <cam/ata/ata_all.h> | ||||
#include <cam/mmc/mmc_all.h> | |||||
/* General allocation length definitions for CCB structures */ | /* General allocation length definitions for CCB structures */ | ||||
#define IOCDBLEN CAM_MAX_CDBLEN /* Space for CDB bytes/pointer */ | #define IOCDBLEN CAM_MAX_CDBLEN /* Space for CDB bytes/pointer */ | ||||
Context not available. | |||||
/* Notify Host Target driver of event */ | /* Notify Host Target driver of event */ | ||||
XPT_NOTIFY_ACKNOWLEDGE = 0x37 | XPT_FC_QUEUED | XPT_FC_USER_CCB, | XPT_NOTIFY_ACKNOWLEDGE = 0x37 | XPT_FC_QUEUED | XPT_FC_USER_CCB, | ||||
/* Acknowledgement of event */ | /* Acknowledgement of event */ | ||||
XPT_MMC_IO = 0x38 | XPT_FC_DEV_QUEUED, | |||||
/* Execute the requested ATA I/O operation */ | |||||
/* Vendor Unique codes: 0x80->0x8F */ | /* Vendor Unique codes: 0x80->0x8F */ | ||||
XPT_VUNIQUE = 0x80 | XPT_VUNIQUE = 0x80 | ||||
Context not available. | |||||
PROTO_ATAPI, /* AT Attachment Packetized Interface */ | PROTO_ATAPI, /* AT Attachment Packetized Interface */ | ||||
PROTO_SATAPM, /* SATA Port Multiplier */ | PROTO_SATAPM, /* SATA Port Multiplier */ | ||||
PROTO_SEMB, /* SATA Enclosure Management Bridge */ | PROTO_SEMB, /* SATA Enclosure Management Bridge */ | ||||
PROTO_MMCSD, /* MMC, SD, SDIO */ | |||||
} cam_proto; | } cam_proto; | ||||
typedef enum { | typedef enum { | ||||
Context not available. | |||||
XPORT_SATA, /* Serial AT Attachment */ | XPORT_SATA, /* Serial AT Attachment */ | ||||
XPORT_ISCSI, /* iSCSI */ | XPORT_ISCSI, /* iSCSI */ | ||||
XPORT_SRP, /* SCSI RDMA Protocol */ | XPORT_SRP, /* SCSI RDMA Protocol */ | ||||
XPORT_MMCSD, /* MMC, SD, SDIO card */ | |||||
} cam_xport; | } cam_xport; | ||||
#define XPORT_IS_ATA(t) ((t) == XPORT_ATA || (t) == XPORT_SATA) | #define XPORT_IS_ATA(t) ((t) == XPORT_ATA || (t) == XPORT_SATA) | ||||
Context not available. | |||||
u_int init_id; /* initiator id of who selected */ | u_int init_id; /* initiator id of who selected */ | ||||
}; | }; | ||||
/* | |||||
* MMC I/O Request CCB used for the XPT_MMC_IO function code. | |||||
*/ | |||||
struct ccb_mmcio { | |||||
struct ccb_hdr ccb_h; | |||||
union ccb *next_ccb; /* Ptr for next CCB for action */ | |||||
struct mmc_command cmd; | |||||
}; | |||||
struct ccb_accept_tio { | struct ccb_accept_tio { | ||||
struct ccb_hdr ccb_h; | struct ccb_hdr ccb_h; | ||||
cdb_t cdb_io; /* Union for CDB bytes/pointer */ | cdb_t cdb_io; /* Union for CDB bytes/pointer */ | ||||
Context not available. | |||||
#define CTS_SATA_CAPS_D_APST 0x00020000 | #define CTS_SATA_CAPS_D_APST 0x00020000 | ||||
}; | }; | ||||
/* | |||||
* Basically, what earlier was done with updating IOS | |||||
* now can be done using SET_TRAN_SETTINGS | |||||
*/ | |||||
#include <cam/mmc/mmc_bus.h> | |||||
struct ccb_trans_settings_mmc { | |||||
struct mmc_ios ios; | |||||
#define MMC_CLK (1 << 1) | |||||
#define MMC_VDD (1 << 2) | |||||
#define MMC_CS (1 << 3) | |||||
#define MMC_BW (1 << 4) | |||||
#define MMC_PM (1 << 5) | |||||
#define MMC_BT (1 << 6) | |||||
#define MMC_BM (1 << 7) | |||||
uint32_t ios_valid; | |||||
/* The folowing is used only for GET_TRAN_SETTINGS */ | |||||
uint32_t host_ocr; | |||||
}; | |||||
/* Get/Set transfer rate/width/disconnection/tag queueing settings */ | /* Get/Set transfer rate/width/disconnection/tag queueing settings */ | ||||
struct ccb_trans_settings { | struct ccb_trans_settings { | ||||
struct ccb_hdr ccb_h; | struct ccb_hdr ccb_h; | ||||
Context not available. | |||||
u_int valid; /* Which fields to honor */ | u_int valid; /* Which fields to honor */ | ||||
struct ccb_trans_settings_ata ata; | struct ccb_trans_settings_ata ata; | ||||
struct ccb_trans_settings_scsi scsi; | struct ccb_trans_settings_scsi scsi; | ||||
struct ccb_trans_settings_mmc mmc; | |||||
} proto_specific; | } proto_specific; | ||||
union { | union { | ||||
u_int valid; /* Which fields to honor */ | u_int valid; /* Which fields to honor */ | ||||
Context not available. | |||||
struct ccb_ataio ataio; | struct ccb_ataio ataio; | ||||
struct ccb_dev_advinfo cdai; | struct ccb_dev_advinfo cdai; | ||||
struct ccb_async casync; | struct ccb_async casync; | ||||
struct ccb_mmcio mmcio; | |||||
}; | }; | ||||
__BEGIN_DECLS | __BEGIN_DECLS | ||||
Context not available. |