iPXE
xenver.h
Go to the documentation of this file.
00001 #ifndef _IPXE_XENVER_H
00002 #define _IPXE_VENVER_H
00003 
00004 /** @file
00005  *
00006  * Xen version
00007  *
00008  */
00009 
00010 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
00011 
00012 #include <ipxe/xen.h>
00013 #include <xen/version.h>
00014 
00015 /**
00016  * Get Xen version
00017  *
00018  * @v xen               Xen hypervisor
00019  * @ret version         Version (major.minor: 16 bits each)
00020  */
00021 static inline __attribute__ (( always_inline )) uint32
00022 xenver_version ( struct xen_hypervisor *xen ) {
00023 
00024         return xen_hypercall_2 ( xen, __HYPERVISOR_xen_version,
00025                                  XENVER_version, 0 );
00026 }
00027 
00028 /**
00029  * Get Xen extra version string
00030  *
00031  * @v xen               Xen hypervisor
00032  * @v extraversion      Extra version string to fill in
00033  * @ret xenrc           Xen status code
00034  */
00035 static inline __attribute__ (( always_inline )) int
00036 xenver_extraversion ( struct xen_hypervisor *xen,
00037                       xen_extraversion_t *extraversion ) {
00038 
00039         return xen_hypercall_2 ( xen, __HYPERVISOR_xen_version,
00040                                  XENVER_extraversion,
00041                                  virt_to_phys ( extraversion ) );
00042 }
00043 
00044 #endif /* _IPXE_XENVER_H */