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