|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V5 02/32] xl / libxl: push parsing of SSID and CPU pool ID down to libxl
On Tue, 2014-05-13 at 22:53 +0100, Wei Liu wrote:
> @@ -619,6 +625,11 @@ static int cpupool_info(libxl__gc *gc,
> }
>
> info->poolid = xcinfo->cpupool_id;
> + info->pool_name = libxl_cpupoolid_to_name(CTX, info->poolid);
> + if (!info->pool_name) {
> + rc = ERROR_NOMEM;
libxl_cpupooid_to_name also fails if the pool doesn't exist. ERROR_FAIL
might be more appropriate?
> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
> index 84f9c0e..2b06094 100644
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h
> @@ -469,6 +469,30 @@
> #define LIBXL_EXTERNAL_CALLERS_ONLY /* disappears for callers outside libxl
> */
> #endif
>
> +/*
> + * LIBXL_HAVE_SSID_LABEL
> + *
> + * If this is defined, then libxl IDL contains string of XSM security
> + * label in all XSM related structures.
> + *
> + * If this string is not NULL, libxl will overwrite the numeric
> + * representation of this configuration regardless if it has been
> + * set by the caller, because libxl will do the parsing by itself.
A more natural to say this would be:
"If set this string takes precedence over the numeric field"
I think...
> + */
> +#define LIBXL_HAVE_SSID_LABEL 1
> +
> +/*
> + * LIBXL_HAVE_CPUPOOL_NAME
> + *
> + * If this is defined, then libxl IDL contains string of CPU pool
> + * name in all CPU pool related structures.
> + *
> + * If this string is not NULL, libxl will overwrite the numeric
> + * representation of this configuration regardless if it has been
> + * set by the caller, because libxl will do the parsing by itself.
Similarly.
> + */
> +#define LIBXL_HAVE_CPUPOOL_NAME 1
> +
> typedef uint8_t libxl_mac[6];
> #define LIBXL_MAC_FMT "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx"
> #define LIBXL_MAC_FMTLEN ((2*6)+5) /* 6 hex bytes plus 5 colons */
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index d015cf4..fe3bdd2 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -724,6 +724,63 @@ static void initiate_domain_create(libxl__egc *egc,
>
> domid = 0;
>
> + if (d_config->c_info.ssid_label) {
> + char *s = d_config->c_info.ssid_label;
> + ret = libxl_flask_context_to_sid(ctx, s, strlen(s),
> + &d_config->c_info.ssidref);
> + if (ret) {
> + if (errno == ENOSYS) {
> + LOG(WARN, "XSM Disabled: init_seclabel not supported");
Should you set ssidref to the explicit invalid value here? I suppose it
isn't going to matter much?
> + ret = 0;
> + } else {
> + LOG(ERROR, "Invalid init_seclabel: %s", s);
> + goto error_out;
> + }
> + }
> + }
> +
> + if (d_config->b_info.exec_ssid_label) {
> + char *s = d_config->b_info.exec_ssid_label;
> + ret = libxl_flask_context_to_sid(ctx, s, strlen(s),
> + &d_config->b_info.exec_ssidref);
> + if (ret) {
> + if (errno == ENOSYS) {
> + LOG(WARN, "XSM Disabled: seclabel not supported");
Same Again.
> + ret = 0;
> + } else {
> + LOG(ERROR, "Invalid seclabel: %s", s);
> + goto error_out;
> + }
> + }
> + }
> +
> + if (d_config->b_info.device_model_ssid_label) {
> + char *s = d_config->b_info.device_model_ssid_label;
> + ret = libxl_flask_context_to_sid(ctx, s, strlen(s),
> +
> &d_config->b_info.device_model_ssidref);
> + if (ret) {
> + if (errno == ENOSYS) {
> + LOG(WARN,"XSM Disabled: device_model_stubdomain_seclabel not
> supported");
Again.
> + ret = 0;
> + } else {
> + LOG(ERROR, "Invalid device_model_stubdomain_seclabel: %s",
> s);
> + goto error_out;
> + }
> + }
> + }
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |