void ConstantPoolCacheEntry::set_parameter_size(int value) {
  // This routine is called only in corner cases where the CPCE is not yet initialized.
  // See AbstractInterpreter::deopt_continue_after_entry.
  assert(_flags == 0 || parameter_size() == 0 || parameter_size() == value,
         err_msg("size must not change: parameter_size=%d, value=%d", parameter_size(), value));
  // Setting the parameter size by itself is only safe if the
  // current value of _flags is 0, otherwise another thread may have
  // updated it and we don't want to overwrite that value.  Don't
  // bother trying to update it once it's nonzero but always make
  // sure that the final parameter size agrees with what was passed.
  if (_flags == 0) {
    Atomic::cmpxchg_ptr((value & parameter_size_mask), &_flags, 0);
  }
  guarantee(parameter_size() == value,
            err_msg("size must not change: parameter_size=%d, value=%d", parameter_size(), value));
}
int
assemble_send_targets(pdu_t *pdu, uint8_t *val)
{
	negotiation_parameter_t par;
	uint8_t *buf;
	int len;

	par.key = K_SendTargets;
	par.list_num = 1;
	par.val.sval = val;

	len = parameter_size(&par);

	if ((buf = malloc(len, M_TEMP, M_WAITOK)) == NULL) {
		DEBOUT(("*** Out of memory in assemble_send_targets\n"));
		return ISCSI_STATUS_NO_RESOURCES;
	}
	pdu->temp_data = buf;
	pdu->temp_data_len = len;

	if (put_parameter(buf, len, &par) == 0)
		return ISCSI_STATUS_PARAMETER_INVALID;

	return 0;
}
static __inline int
total_size(negotiation_parameter_t *pars, int n)
{
	int i, size;

	for (i = 0, size = 0; i < n; i++) {
		size += parameter_size(pars++);
	}
	return size;
}
Exemple #4
0
int main(int argc, char **argv)
{
    //int cmd = PARA_CMD_SYSTEM_GBSHM_MUTEX; 
    //int cmd = PARA_CMD_SYSTEM_TEST_VAR; 
    //int cmd = PARA_CMD_SYSTEM_VIDEO_ENC_PARAM; 
    int cmd = PARA_CMD_SYSTEM_NET_PARAM; 
    

    SYS_INFO("cmd index = %d.\r\n", parameter_indexfind(cmd));
    SYS_INFO("cmd argument count = %d.\r\n", parameter_argument_count(cmd));
    SYS_INFO("cmd offset = %d.\r\n", parameter_offset(cmd));
    SYS_INFO("cmd size = %d.\r\n", parameter_size(cmd));
    return 0;
}