mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
util: typedparam: Move and unexport virTypedParameterAssignFromStr
The function is only used as a helper in virTypedParamsAddFromString. Make it static and move it to virtypedparam-public.c. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
e13c551e9f
commit
e532aa6170
@ -3229,7 +3229,6 @@ virTPMSwtpmSetupFeatureTypeFromString;
|
||||
|
||||
# util/virtypedparam.h
|
||||
virTypedParameterAssign;
|
||||
virTypedParameterAssignFromStr;
|
||||
virTypedParameterToString;
|
||||
virTypedParameterTypeFromString;
|
||||
virTypedParameterTypeToString;
|
||||
|
@ -25,6 +25,101 @@
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_NONE
|
||||
|
||||
/* Assign name, type, and convert the argument from a const string.
|
||||
* In case of a string, the string is copied.
|
||||
* Return 0 on success, -1 after an error message on failure. */
|
||||
static int
|
||||
virTypedParameterAssignFromStr(virTypedParameterPtr param,
|
||||
const char *name,
|
||||
int type,
|
||||
const char *val)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
if (!val) {
|
||||
virReportError(VIR_ERR_INVALID_ARG, _("NULL value for field '%s'"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStrcpyStatic(param->field, name) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, _("Field name '%s' too long"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
param->type = type;
|
||||
switch (type) {
|
||||
case VIR_TYPED_PARAM_INT:
|
||||
if (virStrToLong_i(val, NULL, 10, ¶m->value.i) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': expected int"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_UINT:
|
||||
if (virStrToLong_ui(val, NULL, 10, ¶m->value.ui) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected unsigned int"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_LLONG:
|
||||
if (virStrToLong_ll(val, NULL, 10, ¶m->value.l) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected long long"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_ULLONG:
|
||||
if (virStrToLong_ull(val, NULL, 10, ¶m->value.ul) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected unsigned long long"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_DOUBLE:
|
||||
if (virStrToDouble(val, NULL, ¶m->value.d) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected double"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_BOOLEAN:
|
||||
if (STRCASEEQ(val, "true") || STREQ(val, "1")) {
|
||||
param->value.b = true;
|
||||
} else if (STRCASEEQ(val, "false") || STREQ(val, "0")) {
|
||||
param->value.b = false;
|
||||
} else {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid boolean value for field '%s'"), name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_STRING:
|
||||
if (VIR_STRDUP(param->value.s, val) < 0)
|
||||
goto cleanup;
|
||||
break;
|
||||
default:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unexpected type %d for field %s"), type, name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* The following APIs are public and their signature may never change. */
|
||||
|
||||
/**
|
||||
|
@ -260,99 +260,6 @@ virTypedParameterAssign(virTypedParameterPtr param, const char *name,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Assign name, type, and convert the argument from a const string.
|
||||
* In case of a string, the string is copied.
|
||||
* Return 0 on success, -1 after an error message on failure. */
|
||||
int
|
||||
virTypedParameterAssignFromStr(virTypedParameterPtr param, const char *name,
|
||||
int type, const char *val)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
if (!val) {
|
||||
virReportError(VIR_ERR_INVALID_ARG, _("NULL value for field '%s'"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStrcpyStatic(param->field, name) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, _("Field name '%s' too long"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
param->type = type;
|
||||
switch (type) {
|
||||
case VIR_TYPED_PARAM_INT:
|
||||
if (virStrToLong_i(val, NULL, 10, ¶m->value.i) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': expected int"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_UINT:
|
||||
if (virStrToLong_ui(val, NULL, 10, ¶m->value.ui) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected unsigned int"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_LLONG:
|
||||
if (virStrToLong_ll(val, NULL, 10, ¶m->value.l) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected long long"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_ULLONG:
|
||||
if (virStrToLong_ull(val, NULL, 10, ¶m->value.ul) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected unsigned long long"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_DOUBLE:
|
||||
if (virStrToDouble(val, NULL, ¶m->value.d) < 0) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid value for field '%s': "
|
||||
"expected double"),
|
||||
name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_BOOLEAN:
|
||||
if (STRCASEEQ(val, "true") || STREQ(val, "1")) {
|
||||
param->value.b = true;
|
||||
} else if (STRCASEEQ(val, "false") || STREQ(val, "0")) {
|
||||
param->value.b = false;
|
||||
} else {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Invalid boolean value for field '%s'"), name);
|
||||
goto cleanup;
|
||||
}
|
||||
break;
|
||||
case VIR_TYPED_PARAM_STRING:
|
||||
if (VIR_STRDUP(param->value.s, val) < 0)
|
||||
goto cleanup;
|
||||
break;
|
||||
default:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unexpected type %d for field %s"), type, name);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virTypedParamsReplaceString:
|
||||
|
@ -85,12 +85,6 @@ int virTypedParameterAssign(virTypedParameterPtr param, const char *name,
|
||||
int type, /* TYPE arg */ ...)
|
||||
ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
int virTypedParameterAssignFromStr(virTypedParameterPtr param,
|
||||
const char *name,
|
||||
int type,
|
||||
const char *val)
|
||||
ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
int virTypedParamsReplaceString(virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
const char *name,
|
||||
|
Loading…
x
Reference in New Issue
Block a user