13a9fd824SRoger Pau Monné /****************************************************************************** 23a9fd824SRoger Pau Monné * version.h 33a9fd824SRoger Pau Monné * 43a9fd824SRoger Pau Monné * Xen version, type, and compile information. 53a9fd824SRoger Pau Monné * 63a9fd824SRoger Pau Monné * Permission is hereby granted, free of charge, to any person obtaining a copy 73a9fd824SRoger Pau Monné * of this software and associated documentation files (the "Software"), to 83a9fd824SRoger Pau Monné * deal in the Software without restriction, including without limitation the 93a9fd824SRoger Pau Monné * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 103a9fd824SRoger Pau Monné * sell copies of the Software, and to permit persons to whom the Software is 113a9fd824SRoger Pau Monné * furnished to do so, subject to the following conditions: 123a9fd824SRoger Pau Monné * 133a9fd824SRoger Pau Monné * The above copyright notice and this permission notice shall be included in 143a9fd824SRoger Pau Monné * all copies or substantial portions of the Software. 153a9fd824SRoger Pau Monné * 163a9fd824SRoger Pau Monné * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 173a9fd824SRoger Pau Monné * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 183a9fd824SRoger Pau Monné * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 193a9fd824SRoger Pau Monné * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 203a9fd824SRoger Pau Monné * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 213a9fd824SRoger Pau Monné * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 223a9fd824SRoger Pau Monné * DEALINGS IN THE SOFTWARE. 233a9fd824SRoger Pau Monné * 243a9fd824SRoger Pau Monné * Copyright (c) 2005, Nguyen Anh Quynh <aquynh@gmail.com> 253a9fd824SRoger Pau Monné * Copyright (c) 2005, Keir Fraser <keir@xensource.com> 263a9fd824SRoger Pau Monné */ 273a9fd824SRoger Pau Monné 283a9fd824SRoger Pau Monné #ifndef __XEN_PUBLIC_VERSION_H__ 293a9fd824SRoger Pau Monné #define __XEN_PUBLIC_VERSION_H__ 303a9fd824SRoger Pau Monné 313a9fd824SRoger Pau Monné #include "xen.h" 323a9fd824SRoger Pau Monné 333a9fd824SRoger Pau Monné /* NB. All ops return zero on success, except XENVER_{version,pagesize} 343a9fd824SRoger Pau Monné * XENVER_{version,pagesize,build_id} */ 353a9fd824SRoger Pau Monné 363a9fd824SRoger Pau Monné /* arg == NULL; returns major:minor (16:16). */ 373a9fd824SRoger Pau Monné #define XENVER_version 0 383a9fd824SRoger Pau Monné 393a9fd824SRoger Pau Monné /* arg == xen_extraversion_t. */ 403a9fd824SRoger Pau Monné #define XENVER_extraversion 1 413a9fd824SRoger Pau Monné typedef char xen_extraversion_t[16]; 423a9fd824SRoger Pau Monné #define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t)) 433a9fd824SRoger Pau Monné 443a9fd824SRoger Pau Monné /* arg == xen_compile_info_t. */ 453a9fd824SRoger Pau Monné #define XENVER_compile_info 2 463a9fd824SRoger Pau Monné struct xen_compile_info { 473a9fd824SRoger Pau Monné char compiler[64]; 483a9fd824SRoger Pau Monné char compile_by[16]; 493a9fd824SRoger Pau Monné char compile_domain[32]; 503a9fd824SRoger Pau Monné char compile_date[32]; 513a9fd824SRoger Pau Monné }; 523a9fd824SRoger Pau Monné typedef struct xen_compile_info xen_compile_info_t; 533a9fd824SRoger Pau Monné 543a9fd824SRoger Pau Monné #define XENVER_capabilities 3 553a9fd824SRoger Pau Monné typedef char xen_capabilities_info_t[1024]; 563a9fd824SRoger Pau Monné #define XEN_CAPABILITIES_INFO_LEN (sizeof(xen_capabilities_info_t)) 573a9fd824SRoger Pau Monné 583a9fd824SRoger Pau Monné #define XENVER_changeset 4 593a9fd824SRoger Pau Monné typedef char xen_changeset_info_t[64]; 603a9fd824SRoger Pau Monné #define XEN_CHANGESET_INFO_LEN (sizeof(xen_changeset_info_t)) 613a9fd824SRoger Pau Monné 623a9fd824SRoger Pau Monné #define XENVER_platform_parameters 5 633a9fd824SRoger Pau Monné struct xen_platform_parameters { 643a9fd824SRoger Pau Monné xen_ulong_t virt_start; 653a9fd824SRoger Pau Monné }; 663a9fd824SRoger Pau Monné typedef struct xen_platform_parameters xen_platform_parameters_t; 673a9fd824SRoger Pau Monné 683a9fd824SRoger Pau Monné #define XENVER_get_features 6 693a9fd824SRoger Pau Monné struct xen_feature_info { 703a9fd824SRoger Pau Monné unsigned int submap_idx; /* IN: which 32-bit submap to return */ 713a9fd824SRoger Pau Monné uint32_t submap; /* OUT: 32-bit submap */ 723a9fd824SRoger Pau Monné }; 733a9fd824SRoger Pau Monné typedef struct xen_feature_info xen_feature_info_t; 743a9fd824SRoger Pau Monné 753a9fd824SRoger Pau Monné /* Declares the features reported by XENVER_get_features. */ 763a9fd824SRoger Pau Monné #include "features.h" 773a9fd824SRoger Pau Monné 783a9fd824SRoger Pau Monné /* arg == NULL; returns host memory page size. */ 793a9fd824SRoger Pau Monné #define XENVER_pagesize 7 803a9fd824SRoger Pau Monné 813a9fd824SRoger Pau Monné /* arg == xen_domain_handle_t. 823a9fd824SRoger Pau Monné * 833a9fd824SRoger Pau Monné * The toolstack fills it out for guest consumption. It is intended to hold 843a9fd824SRoger Pau Monné * the UUID of the guest. 853a9fd824SRoger Pau Monné */ 863a9fd824SRoger Pau Monné #define XENVER_guest_handle 8 873a9fd824SRoger Pau Monné 883a9fd824SRoger Pau Monné #define XENVER_commandline 9 893a9fd824SRoger Pau Monné typedef char xen_commandline_t[1024]; 903a9fd824SRoger Pau Monné 913a9fd824SRoger Pau Monné /* 923a9fd824SRoger Pau Monné * Return value is the number of bytes written, or XEN_Exx on error. 933a9fd824SRoger Pau Monné * Calling with empty parameter returns the size of build_id. 943a9fd824SRoger Pau Monné */ 953a9fd824SRoger Pau Monné #define XENVER_build_id 10 963a9fd824SRoger Pau Monné struct xen_build_id { 973a9fd824SRoger Pau Monné uint32_t len; /* IN: size of buf[]. */ 983a9fd824SRoger Pau Monné unsigned char buf[XEN_FLEX_ARRAY_DIM]; 993a9fd824SRoger Pau Monné /* OUT: Variable length buffer with build_id. */ 1003a9fd824SRoger Pau Monné }; 1013a9fd824SRoger Pau Monné typedef struct xen_build_id xen_build_id_t; 1023a9fd824SRoger Pau Monné 1033a9fd824SRoger Pau Monné #endif /* __XEN_PUBLIC_VERSION_H__ */ 1043a9fd824SRoger Pau Monné 1053a9fd824SRoger Pau Monné /* 1063a9fd824SRoger Pau Monné * Local variables: 1073a9fd824SRoger Pau Monné * mode: C 1083a9fd824SRoger Pau Monné * c-file-style: "BSD" 1093a9fd824SRoger Pau Monné * c-basic-offset: 4 1103a9fd824SRoger Pau Monné * tab-width: 4 1113a9fd824SRoger Pau Monné * indent-tabs-mode: nil 1123a9fd824SRoger Pau Monné * End: 1133a9fd824SRoger Pau Monné */ 114