2012-01-10 21:31:21 +04:00
/*
* virt - host - validate - common . h : Sanity check helper APIs
*
* Copyright ( C ) 2012 Red Hat , Inc .
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2.1 of the License , or ( at your option ) any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
2012-09-21 02:30:55 +04:00
* License along with this library . If not , see
2012-07-21 14:06:23 +04:00
* < http : //www.gnu.org/licenses/>.
2012-01-10 21:31:21 +04:00
*
*/
2019-06-18 19:13:15 +03:00
# pragma once
2012-01-10 21:31:21 +04:00
2019-06-18 19:13:15 +03:00
# include "internal.h"
# include "virbitmap.h"
# include "virenum.h"
2012-01-10 21:31:21 +04:00
typedef enum {
VIR_HOST_VALIDATE_FAIL ,
VIR_HOST_VALIDATE_WARN ,
VIR_HOST_VALIDATE_NOTE ,
VIR_HOST_VALIDATE_LAST ,
} virHostValidateLevel ;
2016-03-29 17:38:28 +03:00
typedef enum {
VIR_HOST_VALIDATE_CPU_FLAG_VMX = 0 ,
VIR_HOST_VALIDATE_CPU_FLAG_SVM ,
2016-05-03 09:10:54 +03:00
VIR_HOST_VALIDATE_CPU_FLAG_SIE ,
2020-06-15 11:28:09 +03:00
VIR_HOST_VALIDATE_CPU_FLAG_FACILITY_158 ,
2020-06-15 11:28:10 +03:00
VIR_HOST_VALIDATE_CPU_FLAG_SEV ,
2016-03-29 17:38:28 +03:00
VIR_HOST_VALIDATE_CPU_FLAG_LAST ,
} virHostValidateCPUFlag ;
VIR_ENUM_DECL ( virHostValidateCPUFlag ) ;
2021-06-07 19:22:18 +03:00
/**
* VIR_HOST_VALIDATE_FAILURE
* @ level : the virHostValidateLevel to be checked
*
* This macro is to be used in to return a failures based on the
* virHostValidateLevel use in the function .
*
* If the virHostValidateLevel is VIR_HOST_VALIDATE_FAIL , - 1 is returned .
* 0 is returned otherwise ( as the virHosValidateLevel is then either a
* Warn or a Note ) .
*/
# define VIR_HOST_VALIDATE_FAILURE(level) (level == VIR_HOST_VALIDATE_FAIL) ? -1 : 0
2016-05-10 14:37:32 +03:00
void virHostMsgSetQuiet ( bool quietFlag ) ;
2012-01-10 21:31:21 +04:00
2016-05-10 14:37:32 +03:00
void virHostMsgCheck ( const char * prefix ,
const char * format ,
2019-10-15 14:35:07 +03:00
. . . ) G_GNUC_PRINTF ( 2 , 3 ) ;
2012-01-10 21:31:21 +04:00
2016-05-10 14:37:32 +03:00
void virHostMsgPass ( void ) ;
void virHostMsgFail ( virHostValidateLevel level ,
const char * format ,
2019-10-15 14:35:07 +03:00
. . . ) G_GNUC_PRINTF ( 2 , 3 ) ;
2012-01-10 21:31:21 +04:00
2016-05-10 14:37:32 +03:00
int virHostValidateDeviceExists ( const char * hvname ,
const char * dev_name ,
virHostValidateLevel level ,
const char * hint ) ;
2015-10-07 19:02:31 +03:00
2016-05-10 14:37:32 +03:00
int virHostValidateDeviceAccessible ( const char * hvname ,
const char * dev_name ,
virHostValidateLevel level ,
const char * hint ) ;
2012-01-10 21:31:21 +04:00
2021-03-11 10:16:13 +03:00
virBitmap * virHostValidateGetCPUFlags ( void ) ;
2012-01-10 21:31:21 +04:00
2016-05-10 14:37:32 +03:00
int virHostValidateLinuxKernel ( const char * hvname ,
int version ,
virHostValidateLevel level ,
const char * hint ) ;
2012-01-10 21:31:21 +04:00
2016-05-10 14:37:32 +03:00
int virHostValidateNamespace ( const char * hvname ,
const char * ns_name ,
virHostValidateLevel level ,
const char * hint ) ;
2015-10-07 18:58:39 +03:00
2018-09-29 22:37:22 +03:00
int virHostValidateCGroupControllers ( const char * hvname ,
int controllers ,
virHostValidateLevel level ) ;
2015-10-07 19:36:37 +03:00
2016-05-10 14:37:32 +03:00
int virHostValidateIOMMU ( const char * hvname ,
virHostValidateLevel level ) ;
2020-03-13 20:48:03 +03:00
2020-06-15 11:28:09 +03:00
int virHostValidateSecureGuests ( const char * hvname ,
virHostValidateLevel level ) ;
2020-03-13 20:48:03 +03:00
bool virHostKernelModuleIsLoaded ( const char * module ) ;