[PATCH v4 75/79] include/uapi/xen/privcmd.h: fix compilation in userspace

David Vrabel david.vrabel at citrix.com
Thu Oct 15 03:29:12 PDT 2015

On 15/10/15 06:56, Mikko Rapeli wrote:
> xen/interface/xen.h is not exported from kernel headers so remove the
> dependency and provide needed defines for domid_t and xen_pfn_t if they
> are not already defined by some other e.g. Xen specific headers.
> Suggested by Andrew Cooper <andrew.cooper3 at citrix.com> on lkml message
> <5569F9C9.8000607 at citrix.com>.
> The ifdef for ARM is ugly but did not find better solutions for it.
> Fixes userspace compilation error:
> xen/privcmd.h:38:31: fatal error: xen/interface/xen.h: No such file or directory
> --- a/include/uapi/xen/privcmd.h
> +++ b/include/uapi/xen/privcmd.h
> @@ -35,7 +35,19 @@
>  #include <linux/types.h>
>  #include <linux/compiler.h>
> -#include <xen/interface/xen.h>
> +
> +/* Might be defined by Xen specific headers, but if not */
> +#ifndef domid_t
> +typedef __u16 domid_t;
> +#endif /* domid_t */

As the kbuild bot points out, this does not work since the existence of
a typedef cannot be checked with #ifdef.

I'm not really sure what problem you're trying to solve.  A user space
program making use of this interface gets the domid_t and xen_pfn_t etc
typedefs from the headers provided as part of the libxenctrl library.


More information about the linux-arm-kernel mailing list