pmcs.c revision 658280b6253b61dbb155f43d0e3cbcffa85ccb90
0N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0N/Atypedef struct per_iport_setting {
1638N/Atypedef struct wserno_list {
4134N/Astatic int target_idx;
1638N/A int msec_per_tick;
1638N/A msec_per_tick = 0;
1638N/A if (msec_per_tick == 0) {
2414N/A sizeof (struct mdi_pathinfo)) {
5136N/A sizeof (struct pmcs_iport)) {
1638N/A case UA_INACTIVE:
1638N/A case UA_PEND_ACTIVATE:
1638N/A case UA_PEND_DEACTIVATE:
1638N/A if (m.iports_attached) {
868N/A case PMCS_FW_TYPE_RELEASED:
0N/A case PMCS_FW_TYPE_DEVELOPMENT:
2086N/A case PMCS_FW_TYPE_ALPHA:
0N/A case PMCS_FW_TYPE_BETA:
0N/A if (m.fwlog_file == 0) {
0N/A if (!totals_only) {
1615N/A if (totals_only) {
2414N/A if (!totals_only) {
2624N/A char *state_string;
3853N/A case PMCS_WORK_STATE_NIL:
1638N/A case PMCS_WORK_STATE_READY:
1638N/A case PMCS_WORK_STATE_INTR:
1638N/A return (state_string);
while (sp) {
goto out;
if (verbose) {
if (verbose) {
out:
if (printhdr) {
if (verbose) {
if (verbose) {
sizeof (struct scsi_pkt)) {
int first, i;
while (sp) {
if (first) {
first = 0;
while (sp) {
if (first) {
first = 0;
for (i = 0; i < max_dev; i++) {
while (sp) {
if (first) {
first = 0;
while (sp) {
if (first) {
first = 0;
while (sp) {
if (first) {
first = 0;
switch (qnum) {
case PMCS_OQ_IODONE:
case PMCS_OQ_GENERAL:
case PMCS_OQ_EVENTS:
switch (cat) {
case PMCS_IOMB_CAT_NET:
case PMCS_IOMB_CAT_FC:
case PMCS_IOMB_CAT_SAS:
case PMCS_IOMB_CAT_SCSI:
switch (event) {
case IOP_EVENT_SAS_PHY_UP:
case IOP_EVENT_SATA_PHY_UP:
case IOP_EVENT_PHY_DOWN:
case IOP_EVENT_BROADCAST_SES:
case IOP_EVENT_BROADCAST_EXP:
case IOP_EVENT_PORT_RECOVER:
case IOP_EVENT_IT_NEXUS_LOSS:
switch (opcode) {
case PMCIN_ECHO:
case PMCIN_GET_INFO:
case PMCIN_GET_VPD:
case PMCIN_PHY_START:
case PMCIN_PHY_STOP:
case PMCIN_SSP_INI_IO_START:
case PMCIN_SSP_INI_TM_START:
case PMCIN_SSP_TGT_IO_START:
case PMCIN_SSP_ABORT:
case PMCIN_GET_DEVICE_HANDLE:
case PMCIN_SMP_REQUEST:
case PMCIN_SMP_RESPONSE:
case PMCIN_SMP_ABORT:
case PMCIN_ASSISTED_DISCOVERY:
case PMCIN_REGISTER_DEVICE:
case PMCIN_SATA_HOST_IO_START:
case PMCIN_SATA_ABORT:
case PMCIN_LOCAL_PHY_CONTROL:
case PMCIN_GET_DEVICE_INFO:
case PMCIN_TWI:
case PMCIN_FW_FLASH_UPDATE:
case PMCIN_SET_VPD:
case PMCIN_GPIO:
case PMCIN_SAS_DIAG_EXECUTE:
case PMCIN_SAW_HW_EVENT_ACK:
case PMCIN_GET_TIME_STAMP:
case PMCIN_PORT_CONTROL:
case PMCIN_GET_NVMD_DATA:
case PMCIN_SET_NVMD_DATA:
case PMCIN_SET_DEVICE_STATE:
case PMCIN_GET_DEVICE_STATE:
switch (opcode) {
case PMCOUT_ECHO:
case PMCOUT_GET_INFO:
case PMCOUT_GET_VPD:
case PMCOUT_SAS_HW_EVENT:
case PMCOUT_SSP_COMPLETION:
case PMCOUT_SMP_COMPLETION:
case PMCOUT_LOCAL_PHY_CONTROL:
case PMCOUT_GET_DEVICE_HANDLE:
case PMCOUT_SATA_COMPLETION:
case PMCOUT_SATA_EVENT:
case PMCOUT_SSP_EVENT:
case PMCOUT_DEVICE_INFO:
case PMCOUT_FW_FLASH_UPDATE:
case PMCOUT_SET_VPD:
case PMCOUT_GPIO:
case PMCOUT_GPIO_EVENT:
case PMCOUT_GENERAL_EVENT:
case PMCOUT_TWI:
case PMCOUT_SSP_ABORT:
case PMCOUT_SATA_ABORT:
case PMCOUT_SAS_DIAG_EXECUTE:
case PMCOUT_GET_TIME_STAMP:
case PMCOUT_PORT_CONTROL:
case PMCOUT_SKIP_ENTRIES:
case PMCOUT_SMP_ABORT:
case PMCOUT_GET_NVMD_DATA:
case PMCOUT_SET_NVMD_DATA:
case PMCOUT_SET_DEVICE_STATE:
case PMCOUT_GET_DEVICE_STATE:
case PMCOUT_SET_DEVICE_INFO:
int qeidx;
qidx);
if (!verbose) {
last_consumed)));
int qeidx;
qidx);
if (iqci == 0) {
if (!verbose) {
last_consumed)));
int totals_only)
case NOTHING:
case SATA:
++sata_phys;
case SAS:
++sas_phys;
case EXPANDER:
++exp_phys;
empty_phys++;
if (totals_only) {
case SAS_LINK_RATE_1_5GBIT:
case SAS_LINK_RATE_3GBIT:
case SAS_LINK_RATE_6GBIT:
if (verbose) {
case SMP_ROUTING_DIRECT:
case SMP_ROUTING_SUBTRACTIVE:
case SMP_ROUTING_TABLE:
case SMP_ROUTING_DIRECT:
case SMP_ROUTING_SUBTRACTIVE:
case SMP_ROUTING_TABLE:
if (verbose) {
case EXPANDER:
rg_resp)));
case SAS:
case SATA:
disc_resp)));
int totals_only)
if (level == 0) {
sas_phys = 0;
sata_phys = 0;
exp_phys = 0;
num_expanders = 0;
empty_phys = 0;
if (!totals_only) {
if (level == 0) {
if (verbose) {
while (pphy) {
if (!totals_only) {
if (level == 0) {
if (verbose) {
char *bufp;
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_ERR);
#if defined(_LITTLE_ENDIAN)
if (wrap) {
if (tail_lines) {
tbuf_idx);
if (tail_lines) {
start_idx = 0;
while (elems_to_print != 0) {
return (DCMD_ERR);
if (filter) {
bufp++;
ei_idx = 0;
bufp++;
PMCS_TBUF_UA_MAX_SIZE) == 0) {
if (sas_address != 0) {
if (!elem_filtered) {
idx = 0;
return (DCMD_OK);
return (WALK_ERR);
sizeof (pmcs_hw_t)) {
return (WALK_ERR);
return (WALK_ERR);
target_idx = 0;
return (WALK_NEXT);
int status;
return (WALK_DONE);
return (WALK_DONE);
return (WALK_DONE);
return (status);
static pmcs_phy_t *
return (NULL);
return (NULL);
return (NULL);
return (WALK_ERR);
sizeof (pmcs_hw_t)) {
return (WALK_ERR);
return (WALK_NEXT);
int status;
return (WALK_DONE);
return (WALK_DONE);
return (status);
int idx;
char *match_type;
switch (tag_type) {
case PMCS_TAG_TYPE_NONE:
case PMCS_TAG_TYPE_CBACK:
case PMCS_TAG_TYPE_WAIT:
if (tag_type) {
if (!printed_header) {
int args = 0;
void *pmcs_state;
char *state_str;
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_OK);
return (DCMD_USAGE);
args++;
return (DCMD_USAGE);
args++;
switch (tag_type) {
case PMCS_TAG_TYPE_NONE:
case PMCS_TAG_TYPE_CBACK:
case PMCS_TAG_TYPE_WAIT:
return (DCMD_USAGE);
args++;
return (DCMD_USAGE);
return (DCMD_USAGE);
return (DCMD_ERR);
return (DCMD_ERR);
case STATE_NIL:
case STATE_PROBING:
case STATE_RUNNING:
case STATE_UNPROBING:
case STATE_DEAD:
case STATE_IN_RESET:
return (DCMD_OK);
#ifndef _KMDB
instance);
return (DCMD_OK);
MAXPATHLEN) {
instance);
return (DCMD_ERR);
goto cleanup;
if (ofilefd < 0) {
goto cleanup;
goto cleanup;
if (ofilefd >= 0) {
return (rval);
void *pmcs_state;
return (DCMD_USAGE);
return (DCMD_USAGE);
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_OK);
return (DCMD_ERR);
return (DCMD_ERR);
void *pmcs_state;
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_OK);
return (DCMD_USAGE);
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_OK);
void *pmcs_state;
char *state_str;
return (DCMD_ERR);
return (DCMD_ERR);
return (DCMD_OK);
return (DCMD_USAGE);
return (DCMD_ERR);
return (DCMD_ERR);
unconfigured) {
case STATE_NIL:
case STATE_PROBING:
case STATE_RUNNING:
case STATE_UNPROBING:
case STATE_DEAD:
case STATE_IN_RESET:
if (waitqs_info)
if (hw_info)
if (ic_info)
if (ibq)
if (obq)
if (iport_info)
if (compq)
if (unconfigured)
return (rv);
#ifndef _KMDB
{ NULL }
{ NULL }
const mdb_modinfo_t *
_mdb_init(void)
return (&modinfo);