162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci/****************************************************************************** 362306a36Sopenharmony_ci * version.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Xen version, type, and compile information. 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright (c) 2005, Nguyen Anh Quynh <aquynh@gmail.com> 862306a36Sopenharmony_ci * Copyright (c) 2005, Keir Fraser <keir@xensource.com> 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef __XEN_PUBLIC_VERSION_H__ 1262306a36Sopenharmony_ci#define __XEN_PUBLIC_VERSION_H__ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/* NB. All ops return zero on success, except XENVER_version. */ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/* arg == NULL; returns major:minor (16:16). */ 1762306a36Sopenharmony_ci#define XENVER_version 0 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci/* arg == xen_extraversion_t. */ 2062306a36Sopenharmony_ci#define XENVER_extraversion 1 2162306a36Sopenharmony_cistruct xen_extraversion { 2262306a36Sopenharmony_ci char extraversion[16]; 2362306a36Sopenharmony_ci}; 2462306a36Sopenharmony_ci#define XEN_EXTRAVERSION_LEN (sizeof(struct xen_extraversion)) 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci/* arg == xen_compile_info_t. */ 2762306a36Sopenharmony_ci#define XENVER_compile_info 2 2862306a36Sopenharmony_cistruct xen_compile_info { 2962306a36Sopenharmony_ci char compiler[64]; 3062306a36Sopenharmony_ci char compile_by[16]; 3162306a36Sopenharmony_ci char compile_domain[32]; 3262306a36Sopenharmony_ci char compile_date[32]; 3362306a36Sopenharmony_ci}; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci#define XENVER_capabilities 3 3662306a36Sopenharmony_cistruct xen_capabilities_info { 3762306a36Sopenharmony_ci char info[1024]; 3862306a36Sopenharmony_ci}; 3962306a36Sopenharmony_ci#define XEN_CAPABILITIES_INFO_LEN (sizeof(struct xen_capabilities_info)) 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#define XENVER_changeset 4 4262306a36Sopenharmony_cistruct xen_changeset_info { 4362306a36Sopenharmony_ci char info[64]; 4462306a36Sopenharmony_ci}; 4562306a36Sopenharmony_ci#define XEN_CHANGESET_INFO_LEN (sizeof(struct xen_changeset_info)) 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#define XENVER_platform_parameters 5 4862306a36Sopenharmony_cistruct xen_platform_parameters { 4962306a36Sopenharmony_ci xen_ulong_t virt_start; 5062306a36Sopenharmony_ci}; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci#define XENVER_get_features 6 5362306a36Sopenharmony_cistruct xen_feature_info { 5462306a36Sopenharmony_ci unsigned int submap_idx; /* IN: which 32-bit submap to return */ 5562306a36Sopenharmony_ci uint32_t submap; /* OUT: 32-bit submap */ 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci/* Declares the features reported by XENVER_get_features. */ 5962306a36Sopenharmony_ci#include <xen/interface/features.h> 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci/* arg == NULL; returns host memory page size. */ 6262306a36Sopenharmony_ci#define XENVER_pagesize 7 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci/* arg == xen_domain_handle_t. */ 6562306a36Sopenharmony_ci#define XENVER_guest_handle 8 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci#define XENVER_commandline 9 6862306a36Sopenharmony_cistruct xen_commandline { 6962306a36Sopenharmony_ci char buf[1024]; 7062306a36Sopenharmony_ci}; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci/* 7362306a36Sopenharmony_ci * Return value is the number of bytes written, or XEN_Exx on error. 7462306a36Sopenharmony_ci * Calling with empty parameter returns the size of build_id. 7562306a36Sopenharmony_ci */ 7662306a36Sopenharmony_ci#define XENVER_build_id 10 7762306a36Sopenharmony_cistruct xen_build_id { 7862306a36Sopenharmony_ci uint32_t len; /* IN: size of buf[]. */ 7962306a36Sopenharmony_ci unsigned char buf[]; 8062306a36Sopenharmony_ci}; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci#endif /* __XEN_PUBLIC_VERSION_H__ */ 83