version.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. #ifndef __XEN_PUBLIC_VERSION_H__
  11. #define __XEN_PUBLIC_VERSION_H__
  12. #include "xen.h"
  13. /* NB. All ops return zero on success, except XENVER_{version,pagesize}
  14. * XENVER_{version,pagesize,build_id} */
  15. /* arg == NULL; returns major:minor (16:16). */
  16. #define XENVER_version 0
  17. /* arg == xen_extraversion_t. */
  18. #define XENVER_extraversion 1
  19. typedef char xen_extraversion_t[16];
  20. #define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t))
  21. /* arg == xen_compile_info_t. */
  22. #define XENVER_compile_info 2
  23. struct xen_compile_info {
  24. char compiler[64];
  25. char compile_by[16];
  26. char compile_domain[32];
  27. char compile_date[32];
  28. };
  29. typedef struct xen_compile_info xen_compile_info_t;
  30. #define XENVER_capabilities 3
  31. typedef char xen_capabilities_info_t[1024];
  32. #define XEN_CAPABILITIES_INFO_LEN (sizeof(xen_capabilities_info_t))
  33. #define XENVER_changeset 4
  34. typedef char xen_changeset_info_t[64];
  35. #define XEN_CHANGESET_INFO_LEN (sizeof(xen_changeset_info_t))
  36. #define XENVER_platform_parameters 5
  37. struct xen_platform_parameters {
  38. xen_ulong_t virt_start;
  39. };
  40. typedef struct xen_platform_parameters xen_platform_parameters_t;
  41. #define XENVER_get_features 6
  42. struct xen_feature_info {
  43. unsigned int submap_idx; /* IN: which 32-bit submap to return */
  44. uint32_t submap; /* OUT: 32-bit submap */
  45. };
  46. typedef struct xen_feature_info xen_feature_info_t;
  47. /* Declares the features reported by XENVER_get_features. */
  48. #include "features.h"
  49. /* arg == NULL; returns host memory page size. */
  50. #define XENVER_pagesize 7
  51. /* arg == xen_domain_handle_t.
  52. *
  53. * The toolstack fills it out for guest consumption. It is intended to hold
  54. * the UUID of the guest.
  55. */
  56. #define XENVER_guest_handle 8
  57. #define XENVER_commandline 9
  58. typedef char xen_commandline_t[1024];
  59. /*
  60. * Return value is the number of bytes written, or XEN_Exx on error.
  61. * Calling with empty parameter returns the size of build_id.
  62. */
  63. #define XENVER_build_id 10
  64. struct xen_build_id {
  65. uint32_t len; /* IN: size of buf[]. */
  66. unsigned char buf[XEN_FLEX_ARRAY_DIM];
  67. /* OUT: Variable length buffer with build_id. */
  68. };
  69. typedef struct xen_build_id xen_build_id_t;
  70. #endif /* __XEN_PUBLIC_VERSION_H__ */
  71. /*
  72. * Local variables:
  73. * mode: C
  74. * c-file-style: "BSD"
  75. * c-basic-offset: 4
  76. * tab-width: 4
  77. * indent-tabs-mode: nil
  78. * End:
  79. */