18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/****************************************************************************** 38c2ecf20Sopenharmony_ci * version.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Xen version, type, and compile information. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Copyright (c) 2005, Nguyen Anh Quynh <aquynh@gmail.com> 88c2ecf20Sopenharmony_ci * Copyright (c) 2005, Keir Fraser <keir@xensource.com> 98c2ecf20Sopenharmony_ci */ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#ifndef __XEN_PUBLIC_VERSION_H__ 128c2ecf20Sopenharmony_ci#define __XEN_PUBLIC_VERSION_H__ 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci/* NB. All ops return zero on success, except XENVER_version. */ 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci/* arg == NULL; returns major:minor (16:16). */ 178c2ecf20Sopenharmony_ci#define XENVER_version 0 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci/* arg == xen_extraversion_t. */ 208c2ecf20Sopenharmony_ci#define XENVER_extraversion 1 218c2ecf20Sopenharmony_cistruct xen_extraversion { 228c2ecf20Sopenharmony_ci char extraversion[16]; 238c2ecf20Sopenharmony_ci}; 248c2ecf20Sopenharmony_ci#define XEN_EXTRAVERSION_LEN (sizeof(struct xen_extraversion)) 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci/* arg == xen_compile_info_t. */ 278c2ecf20Sopenharmony_ci#define XENVER_compile_info 2 288c2ecf20Sopenharmony_cistruct xen_compile_info { 298c2ecf20Sopenharmony_ci char compiler[64]; 308c2ecf20Sopenharmony_ci char compile_by[16]; 318c2ecf20Sopenharmony_ci char compile_domain[32]; 328c2ecf20Sopenharmony_ci char compile_date[32]; 338c2ecf20Sopenharmony_ci}; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci#define XENVER_capabilities 3 368c2ecf20Sopenharmony_cistruct xen_capabilities_info { 378c2ecf20Sopenharmony_ci char info[1024]; 388c2ecf20Sopenharmony_ci}; 398c2ecf20Sopenharmony_ci#define XEN_CAPABILITIES_INFO_LEN (sizeof(struct xen_capabilities_info)) 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#define XENVER_changeset 4 428c2ecf20Sopenharmony_cistruct xen_changeset_info { 438c2ecf20Sopenharmony_ci char info[64]; 448c2ecf20Sopenharmony_ci}; 458c2ecf20Sopenharmony_ci#define XEN_CHANGESET_INFO_LEN (sizeof(struct xen_changeset_info)) 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci#define XENVER_platform_parameters 5 488c2ecf20Sopenharmony_cistruct xen_platform_parameters { 498c2ecf20Sopenharmony_ci xen_ulong_t virt_start; 508c2ecf20Sopenharmony_ci}; 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci#define XENVER_get_features 6 538c2ecf20Sopenharmony_cistruct xen_feature_info { 548c2ecf20Sopenharmony_ci unsigned int submap_idx; /* IN: which 32-bit submap to return */ 558c2ecf20Sopenharmony_ci uint32_t submap; /* OUT: 32-bit submap */ 568c2ecf20Sopenharmony_ci}; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci/* Declares the features reported by XENVER_get_features. */ 598c2ecf20Sopenharmony_ci#include <xen/interface/features.h> 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci/* arg == NULL; returns host memory page size. */ 628c2ecf20Sopenharmony_ci#define XENVER_pagesize 7 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci/* arg == xen_domain_handle_t. */ 658c2ecf20Sopenharmony_ci#define XENVER_guest_handle 8 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci#define XENVER_commandline 9 688c2ecf20Sopenharmony_cistruct xen_commandline { 698c2ecf20Sopenharmony_ci char buf[1024]; 708c2ecf20Sopenharmony_ci}; 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci/* 738c2ecf20Sopenharmony_ci * Return value is the number of bytes written, or XEN_Exx on error. 748c2ecf20Sopenharmony_ci * Calling with empty parameter returns the size of build_id. 758c2ecf20Sopenharmony_ci */ 768c2ecf20Sopenharmony_ci#define XENVER_build_id 10 778c2ecf20Sopenharmony_cistruct xen_build_id { 788c2ecf20Sopenharmony_ci uint32_t len; /* IN: size of buf[]. */ 798c2ecf20Sopenharmony_ci unsigned char buf[]; 808c2ecf20Sopenharmony_ci}; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci#endif /* __XEN_PUBLIC_VERSION_H__ */ 83