Exemple #1
0
int file_thread_done(int thread_id)
{
  if (file_io_mode == FILE_IO_MODE_ASYNC && aio_ctxts[thread_id].nrequests > 0)
    return file_wait(thread_id, aio_ctxts[thread_id].nrequests);

  return 0;
}
Exemple #2
0
int file_submit_or_wait(struct iocb *iocb, sb_file_op_t type, ssize_t len,
                        int thread_id)
{
  sb_aio_oper_t   *oper;
  struct iocb     *iocbp;

  oper = (sb_aio_oper_t *)malloc(sizeof(sb_aio_oper_t));
  if (oper == NULL)
  {
    log_text(LOG_FATAL, "Failed to allocate AIO operation!");
    return 1;
  }

  memcpy(&oper->iocb, iocb, sizeof(*iocb));
  oper->type = type;
  oper->len = len;
  iocbp = &oper->iocb;

  if (io_submit(aio_ctxts[thread_id].io_ctxt, 1, &iocbp) < 1)
  {
    log_errno(LOG_FATAL, "io_submit() failed!");
    return 1;
  }
  
  aio_ctxts[thread_id].nrequests++;
  if (aio_ctxts[thread_id].nrequests < file_async_backlog)
    return 0;
  
  return file_wait(thread_id, 1);
}
Exemple #3
0
static int modem_power_enable(void)
{
	int ret;

	ret = file_write(MODEM_POWER_PATH, "off", 3);
	if (ret < 0)
	{
#ifdef CAVAN_DEBUG
		error_msg("write file \"%s\"", MODEM_POWER_PATH);
#endif
		return ret;
	}

	visual_ssleep(5);

	ret = file_write(MODEM_POWER_PATH, "on", 2);
	if (ret < 0)
	{
#ifdef CAVAN_DEBUG
		error_msg("write file \"%s\"", MODEM_POWER_PATH);
#endif
		return ret;
	}

	visual_ssleep(5);

	ret = file_wait(MODEM_TTY_DEVICE, "c", 10);
	if (ret < 0)
	{
#ifdef CAVAN_DEBUG
		error_msg("modem power enable failed");
#endif
		return ret;
	}

	visual_ssleep(5);

	return set_usb_power();
}