Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sysctl.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
2/******************************************************************************
3 * sysctl.h
4 *
5 * System management operations. For use by node control stack.
6 *
7 * Copyright (c) 2002-2006, K Fraser
8 * Copyright (c) 2025 EPAM Systems
9 *
10 */
11
12#ifndef __XEN_PUBLIC_SYSCTL_H__
13#define __XEN_PUBLIC_SYSCTL_H__
14
15#if !defined(CONFIG_XEN_DOM0)
16#error "sysctl operations are intended for use by node control tools only"
17#endif
18
20#include "xen.h"
21#include "domctl.h"
22
23/*
24 * Get physical information about the host machine
25 */
26/* XEN_SYSCTL_physinfo */
27 /* The platform supports HVM guests. */
28#define _XEN_SYSCTL_PHYSCAP_hvm 0
29#define XEN_SYSCTL_PHYSCAP_hvm BIT(_XEN_SYSCTL_PHYSCAP_hvm)
30 /* The platform supports PV guests. */
31#define _XEN_SYSCTL_PHYSCAP_pv 1
32#define XEN_SYSCTL_PHYSCAP_pv BIT(_XEN_SYSCTL_PHYSCAP_pv)
33 /* The platform supports direct access to I/O devices with IOMMU. */
34#define _XEN_SYSCTL_PHYSCAP_directio 2
35#define XEN_SYSCTL_PHYSCAP_directio BIT(_XEN_SYSCTL_PHYSCAP_directio)
36/* The platform supports Hardware Assisted Paging. */
37#define _XEN_SYSCTL_PHYSCAP_hap 3
38#define XEN_SYSCTL_PHYSCAP_hap BIT(_XEN_SYSCTL_PHYSCAP_hap)
39/* The platform supports software paging. */
40#define _XEN_SYSCTL_PHYSCAP_shadow 4
41#define XEN_SYSCTL_PHYSCAP_shadow BIT(_XEN_SYSCTL_PHYSCAP_shadow)
42/* The platform supports sharing of HAP page tables with the IOMMU. */
43#define _XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share 5
44#define XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share BIT(_XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share)
45#define XEN_SYSCTL_PHYSCAP_vmtrace BIT(6)
46/* The platform supports vPMU. */
47#define XEN_SYSCTL_PHYSCAP_vpmu BIT(7)
48
49/* Xen supports the Grant v1 and/or v2 ABIs. */
50#define XEN_SYSCTL_PHYSCAP_gnttab_v1 BIT(8)
51#define XEN_SYSCTL_PHYSCAP_gnttab_v2 BIT(9)
52
53/* Max XEN_SYSCTL_PHYSCAP_* constant. Used for ABI checking. */
54#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_gnttab_v2
55
59 uint32_t nr_cpus; /* # CPUs currently online */
60 uint32_t max_cpu_id; /* Largest possible CPU ID on this host */
61 uint32_t nr_nodes; /* # nodes currently online */
62 uint32_t max_node_id; /* Largest possible node ID on this host */
64 uint32_t capabilities;/* XEN_SYSCTL_PHYSCAP_??? */
65 uint32_t arch_capabilities;/* XEN_SYSCTL_PHYSCAP_{X86,ARM,...}_??? */
71 uint64_aligned_t max_mfn; /* Largest possible MFN on this host */
73};
74
75/* XEN_SYSCTL_getdomaininfolist */
77 /* IN variables. */
80
81 XEN_GUEST_HANDLE_64(xen_domctl_getdomaininfo_t) buffer;
82 /* OUT variables. */
84};
85
86/* Get physical CPU information. */
87/* XEN_SYSCTL_getcpuinfo */
91
94
96 /* IN variables. */
98
99 XEN_GUEST_HANDLE_64(xen_sysctl_cpuinfo_t) info;
100 /* OUT variables. */
102};
103
106#define XEN_SYSCTL_readconsole 1
107#define XEN_SYSCTL_tbuf_op 2
108#define XEN_SYSCTL_physinfo 3
109#define XEN_SYSCTL_sched_id 4
110#define XEN_SYSCTL_perfc_op 5
111#define XEN_SYSCTL_getdomaininfolist 6
112#define XEN_SYSCTL_debug_keys 7
113#define XEN_SYSCTL_getcpuinfo 8
114#define XEN_SYSCTL_availheap 9
115#define XEN_SYSCTL_get_pmstat 10
116#define XEN_SYSCTL_cpu_hotplug 11
117#define XEN_SYSCTL_pm_op 12
118#define XEN_SYSCTL_page_offline_op 14
119#define XEN_SYSCTL_lockprof_op 15
120#define XEN_SYSCTL_cputopoinfo 16
121#define XEN_SYSCTL_numainfo 17
122#define XEN_SYSCTL_cpupool_op 18
123#define XEN_SYSCTL_scheduler_op 19
124#define XEN_SYSCTL_coverage_op 20
125#define XEN_SYSCTL_psr_cmt_op 21
126#define XEN_SYSCTL_pcitopoinfo 22
127#define XEN_SYSCTL_psr_alloc 23
128/* #define XEN_SYSCTL_tmem_op 24 */
129#define XEN_SYSCTL_get_cpu_levelling_caps 25
130#define XEN_SYSCTL_get_cpu_featureset 26
131#define XEN_SYSCTL_livepatch_op 27
132/* #define XEN_SYSCTL_set_parameter 28 */
133#define XEN_SYSCTL_get_cpu_policy 29
134 uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
135 union {
140 } u;
141};
142
145
146#endif /* __XEN_PUBLIC_SYSCTL_H__ */
#define uint64_aligned_t
Definition arch-arm.h:173
#define DEFINE_XEN_GUEST_HANDLE(name)
Definition arch-arm.h:192
struct xen_domctl_getdomaininfo xen_domctl_getdomaininfo_t
Definition domctl.h:148
struct xen_sysctl xen_sysctl_t
Definition sysctl.h:143
struct xen_sysctl_cpuinfo xen_sysctl_cpuinfo_t
Definition sysctl.h:92
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Definition sysctl.h:88
uint64_t idletime
Definition sysctl.h:89
Definition sysctl.h:95
uint32_t max_cpus
Definition sysctl.h:97
info
Definition sysctl.h:99
uint32_t nr_cpus
Definition sysctl.h:101
Definition sysctl.h:76
buffer
Definition sysctl.h:81
domid_t first_domain
Definition sysctl.h:78
uint32_t num_domains
Definition sysctl.h:83
uint32_t max_domains
Definition sysctl.h:79
Definition sysctl.h:56
uint64_t max_mfn
Definition sysctl.h:71
uint64_t total_pages
Definition sysctl.h:67
uint32_t hw_cap[8]
Definition sysctl.h:72
uint64_t outstanding_pages
Definition sysctl.h:70
uint32_t cores_per_socket
Definition sysctl.h:58
uint32_t arch_capabilities
Definition sysctl.h:65
uint32_t threads_per_core
Definition sysctl.h:57
uint32_t nr_cpus
Definition sysctl.h:59
uint32_t cpu_khz
Definition sysctl.h:63
uint64_t free_pages
Definition sysctl.h:68
uint32_t nr_nodes
Definition sysctl.h:61
uint32_t pad
Definition sysctl.h:66
uint32_t capabilities
Definition sysctl.h:64
uint32_t max_node_id
Definition sysctl.h:62
uint32_t max_cpu_id
Definition sysctl.h:60
uint64_t scrub_pages
Definition sysctl.h:69
Definition sysctl.h:104
uint32_t cmd
Definition sysctl.h:105
struct xen_sysctl_getcpuinfo getcpuinfo
Definition sysctl.h:138
struct xen_sysctl_physinfo physinfo
Definition sysctl.h:136
uint8_t pad[128]
Definition sysctl.h:139
union xen_sysctl::@055031026373377124267022011267164040040110100342 u
uint32_t interface_version
Definition sysctl.h:134
struct xen_sysctl_getdomaininfolist getdomaininfolist
Definition sysctl.h:137
Macro utilities.
uint16_t domid_t
Definition xen.h:217