1*9e2b3e83SJuergen Gross /* SPDX-License-Identifier: MIT */ 2a42089ddSJeremy Fitzhardinge /****************************************************************************** 3a42089ddSJeremy Fitzhardinge * version.h 4a42089ddSJeremy Fitzhardinge * 5a42089ddSJeremy Fitzhardinge * Xen version, type, and compile information. 6a42089ddSJeremy Fitzhardinge * 7a42089ddSJeremy Fitzhardinge * Copyright (c) 2005, Nguyen Anh Quynh <[email protected]> 8a42089ddSJeremy Fitzhardinge * Copyright (c) 2005, Keir Fraser <[email protected]> 9a42089ddSJeremy Fitzhardinge */ 10a42089ddSJeremy Fitzhardinge 11a42089ddSJeremy Fitzhardinge #ifndef __XEN_PUBLIC_VERSION_H__ 12a42089ddSJeremy Fitzhardinge #define __XEN_PUBLIC_VERSION_H__ 13a42089ddSJeremy Fitzhardinge 14a42089ddSJeremy Fitzhardinge /* NB. All ops return zero on success, except XENVER_version. */ 15a42089ddSJeremy Fitzhardinge 16a42089ddSJeremy Fitzhardinge /* arg == NULL; returns major:minor (16:16). */ 17a42089ddSJeremy Fitzhardinge #define XENVER_version 0 18a42089ddSJeremy Fitzhardinge 19a42089ddSJeremy Fitzhardinge /* arg == xen_extraversion_t. */ 20a42089ddSJeremy Fitzhardinge #define XENVER_extraversion 1 21a42089ddSJeremy Fitzhardinge struct xen_extraversion { 22a42089ddSJeremy Fitzhardinge char extraversion[16]; 23a42089ddSJeremy Fitzhardinge }; 24a42089ddSJeremy Fitzhardinge #define XEN_EXTRAVERSION_LEN (sizeof(struct xen_extraversion)) 25a42089ddSJeremy Fitzhardinge 26a42089ddSJeremy Fitzhardinge /* arg == xen_compile_info_t. */ 27a42089ddSJeremy Fitzhardinge #define XENVER_compile_info 2 28a42089ddSJeremy Fitzhardinge struct xen_compile_info { 29a42089ddSJeremy Fitzhardinge char compiler[64]; 30a42089ddSJeremy Fitzhardinge char compile_by[16]; 31a42089ddSJeremy Fitzhardinge char compile_domain[32]; 32a42089ddSJeremy Fitzhardinge char compile_date[32]; 33a42089ddSJeremy Fitzhardinge }; 34a42089ddSJeremy Fitzhardinge 35a42089ddSJeremy Fitzhardinge #define XENVER_capabilities 3 36a42089ddSJeremy Fitzhardinge struct xen_capabilities_info { 37a42089ddSJeremy Fitzhardinge char info[1024]; 38a42089ddSJeremy Fitzhardinge }; 39a42089ddSJeremy Fitzhardinge #define XEN_CAPABILITIES_INFO_LEN (sizeof(struct xen_capabilities_info)) 40a42089ddSJeremy Fitzhardinge 41a42089ddSJeremy Fitzhardinge #define XENVER_changeset 4 42a42089ddSJeremy Fitzhardinge struct xen_changeset_info { 43a42089ddSJeremy Fitzhardinge char info[64]; 44a42089ddSJeremy Fitzhardinge }; 45a42089ddSJeremy Fitzhardinge #define XEN_CHANGESET_INFO_LEN (sizeof(struct xen_changeset_info)) 46a42089ddSJeremy Fitzhardinge 47a42089ddSJeremy Fitzhardinge #define XENVER_platform_parameters 5 48a42089ddSJeremy Fitzhardinge struct xen_platform_parameters { 49256f631fSStefano Stabellini xen_ulong_t virt_start; 50a42089ddSJeremy Fitzhardinge }; 51a42089ddSJeremy Fitzhardinge 52a42089ddSJeremy Fitzhardinge #define XENVER_get_features 6 53a42089ddSJeremy Fitzhardinge struct xen_feature_info { 54a42089ddSJeremy Fitzhardinge unsigned int submap_idx; /* IN: which 32-bit submap to return */ 55a42089ddSJeremy Fitzhardinge uint32_t submap; /* OUT: 32-bit submap */ 56a42089ddSJeremy Fitzhardinge }; 57a42089ddSJeremy Fitzhardinge 58a42089ddSJeremy Fitzhardinge /* Declares the features reported by XENVER_get_features. */ 59a1ce3928SDavid Howells #include <xen/interface/features.h> 60a42089ddSJeremy Fitzhardinge 61cff7e81bSJeremy Fitzhardinge /* arg == NULL; returns host memory page size. */ 62cff7e81bSJeremy Fitzhardinge #define XENVER_pagesize 7 63cff7e81bSJeremy Fitzhardinge 645c13f806SDaniel De Graaf /* arg == xen_domain_handle_t. */ 655c13f806SDaniel De Graaf #define XENVER_guest_handle 8 665c13f806SDaniel De Graaf 67a714c286SJuergen Gross #define XENVER_commandline 9 68a714c286SJuergen Gross struct xen_commandline { 69a714c286SJuergen Gross char buf[1024]; 70a714c286SJuergen Gross }; 71a714c286SJuergen Gross 72a714c286SJuergen Gross /* 73a714c286SJuergen Gross * Return value is the number of bytes written, or XEN_Exx on error. 74a714c286SJuergen Gross * Calling with empty parameter returns the size of build_id. 75a714c286SJuergen Gross */ 76a714c286SJuergen Gross #define XENVER_build_id 10 77a714c286SJuergen Gross struct xen_build_id { 78a714c286SJuergen Gross uint32_t len; /* IN: size of buf[]. */ 79a714c286SJuergen Gross unsigned char buf[]; 80a714c286SJuergen Gross }; 81a714c286SJuergen Gross 82a42089ddSJeremy Fitzhardinge #endif /* __XEN_PUBLIC_VERSION_H__ */ 83