xref: /linux-6.15/include/xen/interface/version.h (revision 9e2b3e83)
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