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