void knox_print_phyerr(int sg_fd) { unsigned char buf[KNOX_PHYERR_BUFFER_LENGTH]; int i; char json_key[16]; IF_PRINT_NONE_JSON printf("PHY\tInvalid Dword\tRunning Disparity\tLoss of Dword Sync" "\tPhy Reset Problem\n"); for (i = 0; i < phyerr_buffer_phy_count; i ++) { scsi_read_buffer(sg_fd, KNOX_PHYERR_BUFFER_ID, i, buf, KNOX_PHYERR_BUFFER_LENGTH); IF_PRINT_NONE_JSON printf("%d\t%d\t%d\t%d\t%d\n", i, four_byte_to_int(buf + 0), four_byte_to_int(buf + 4), four_byte_to_int(buf + 8), four_byte_to_int(buf + 12) ); if (i) PRINT_JSON_MORE_GROUP; snprintf(json_key, 16, "Phy_%d", i); PRINT_JSON_GROUP_HEADER(json_key); PRINT_JSON_ITEM("Invalid Dword", "%d", four_byte_to_int(buf + 0)); PRINT_JSON_ITEM("Running Disparity", "%d", four_byte_to_int(buf + 4)); PRINT_JSON_ITEM("Loss of Dword Sync", "%d", four_byte_to_int(buf + 8)); PRINT_JSON_LAST_ITEM("Phy Reset Problem", "%d", four_byte_to_int(buf + 12)); PRINT_JSON_GROUP_ENDING; } }
void knox_identify_enclosure(int sg_fd, int val) { unsigned char buf[KNOX_LED_BUFFER_LENGTH]; scsi_read_buffer(sg_fd, KNOX_LED_BUFFER_ID, 0, buf, KNOX_LED_BUFFER_LENGTH); if (val == 1) { buf[0] = 1; buf[8] = 2; scsi_write_buffer(sg_fd, KNOX_LED_BUFFER_ID, 0, buf, KNOX_LED_BUFFER_LENGTH); } else if (val == 0) { buf[0] = 0; buf[8] = 1; scsi_write_buffer(sg_fd, KNOX_LED_BUFFER_ID, 0, buf, KNOX_LED_BUFFER_LENGTH); } knox_print_sys_led(sg_fd); }
void honeybadger_identify_enclosure(int sg_fd, int val) { unsigned char buf[HONEYBADGER_LED_BUFFER_LENGTH]; scsi_read_buffer(sg_fd, HONEYBADGER_LED_BUFFER_ID, 0, buf, HONEYBADGER_LED_BUFFER_LENGTH); /* if (val == 1) { buf[0] = 1; buf[8] = 2; scsi_write_buffer(sg_fd, HONEYBADGER_LED_BUFFER_ID, 0, buf, HONEYBADGER_LED_BUFFER_LENGTH); } else if (val == 0) { buf[0] = 0; buf[8] = 1; scsi_write_buffer(sg_fd, HONEYBADGER_LED_BUFFER_ID, 0, buf, HONEYBADGER_LED_BUFFER_LENGTH); } */ perr("Identify is not yet implemented for Honey Badger. \n"); honeybadger_print_sys_led(sg_fd); }
static int safte_fill_read_buf_io(enc_softc_t *enc, struct enc_fsm_state *state, union ccb *ccb, uint8_t *buf) { if (state->page_code != SAFTE_RD_RDCFG && enc->enc_cache.nelms == 0) { enc_update_request(enc, SAFTE_UPDATE_READCONFIG); return (-1); } if (enc->enc_type == ENC_SEMB_SAFT) { semb_read_buffer(&ccb->ataio, /*retries*/5, NULL, MSG_SIMPLE_Q_TAG, state->page_code, buf, state->buf_size, state->timeout); } else { scsi_read_buffer(&ccb->csio, /*retries*/5, NULL, MSG_SIMPLE_Q_TAG, 1, state->page_code, 0, buf, state->buf_size, SSD_FULL_SIZE, state->timeout); } return (0); }