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