xref: /dpdk/lib/eal/include/rte_hypervisor.h (revision d7e9c02ccad8928b6b804049ced9a3ce6172d81e)
199a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
299a2dd95SBruce Richardson  * Copyright 2017 Mellanox Technologies, Ltd
399a2dd95SBruce Richardson  */
499a2dd95SBruce Richardson 
599a2dd95SBruce Richardson #ifndef RTE_HYPERVISOR_H
699a2dd95SBruce Richardson #define RTE_HYPERVISOR_H
799a2dd95SBruce Richardson 
8*d7e9c02cSBrian Dooley #ifdef __cplusplus
9*d7e9c02cSBrian Dooley extern "C" {
10*d7e9c02cSBrian Dooley #endif
11*d7e9c02cSBrian Dooley 
1299a2dd95SBruce Richardson /**
1399a2dd95SBruce Richardson  * @file
1499a2dd95SBruce Richardson  * Hypervisor awareness.
1599a2dd95SBruce Richardson  */
1699a2dd95SBruce Richardson 
1799a2dd95SBruce Richardson enum rte_hypervisor {
1899a2dd95SBruce Richardson 	RTE_HYPERVISOR_NONE,
1999a2dd95SBruce Richardson 	RTE_HYPERVISOR_KVM,
2099a2dd95SBruce Richardson 	RTE_HYPERVISOR_HYPERV,
2199a2dd95SBruce Richardson 	RTE_HYPERVISOR_VMWARE,
2299a2dd95SBruce Richardson 	RTE_HYPERVISOR_UNKNOWN
2399a2dd95SBruce Richardson };
2499a2dd95SBruce Richardson 
2599a2dd95SBruce Richardson /**
2699a2dd95SBruce Richardson  * Get the id of hypervisor it is running on.
2799a2dd95SBruce Richardson  */
2899a2dd95SBruce Richardson enum rte_hypervisor
2999a2dd95SBruce Richardson rte_hypervisor_get(void);
3099a2dd95SBruce Richardson 
3199a2dd95SBruce Richardson /**
3299a2dd95SBruce Richardson  * Get the name of a given hypervisor id.
3399a2dd95SBruce Richardson  */
3499a2dd95SBruce Richardson const char *
3599a2dd95SBruce Richardson rte_hypervisor_get_name(enum rte_hypervisor id);
3699a2dd95SBruce Richardson 
37*d7e9c02cSBrian Dooley #ifdef __cplusplus
38*d7e9c02cSBrian Dooley }
39*d7e9c02cSBrian Dooley #endif
40*d7e9c02cSBrian Dooley 
4199a2dd95SBruce Richardson #endif /* RTE_HYPERVISOR_H */
42