Example #1
0
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;
  }
}
Example #2
0
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);
}
Example #3
0
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);
}
Example #4
0
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);
}