2012-01-10 17:31:21 +00: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-20 16:30:55 -06:00
* License along with this library . If not , see
2012-07-21 18:06:23 +08:00
* < http : //www.gnu.org/licenses/>.
2012-01-10 17:31:21 +00:00
*
*/
2019-06-18 11:13:15 -05:00
# pragma once
2012-01-10 17:31:21 +00:00
2019-06-18 11:13:15 -05:00
# include "internal.h"
# include "virbitmap.h"
# include "virenum.h"
2012-01-10 17:31:21 +00:00
typedef enum {
VIR_HOST_VALIDATE_FAIL ,
VIR_HOST_VALIDATE_WARN ,
VIR_HOST_VALIDATE_NOTE ,
VIR_HOST_VALIDATE_LAST ,
} virHostValidateLevel ;
2016-03-29 16:38:28 +02:00
typedef enum {
VIR_HOST_VALIDATE_CPU_FLAG_VMX = 0 ,
VIR_HOST_VALIDATE_CPU_FLAG_SVM ,
2016-05-03 08:10:54 +02:00
VIR_HOST_VALIDATE_CPU_FLAG_SIE ,
2020-06-15 10:28:09 +02:00
VIR_HOST_VALIDATE_CPU_FLAG_FACILITY_158 ,
2020-06-15 10:28:10 +02:00
VIR_HOST_VALIDATE_CPU_FLAG_SEV ,
2016-03-29 16:38:28 +02:00
VIR_HOST_VALIDATE_CPU_FLAG_LAST ,
} virHostValidateCPUFlag ;
VIR_ENUM_DECL ( virHostValidateCPUFlag ) ;
2021-06-07 18:22:18 +02: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 13:37:32 +02:00
void virHostMsgSetQuiet ( bool quietFlag ) ;
2012-01-10 17:31:21 +00:00
2016-05-10 13:37:32 +02:00
void virHostMsgCheck ( const char * prefix ,
const char * format ,
2019-10-15 13:35:07 +02:00
. . . ) G_GNUC_PRINTF ( 2 , 3 ) ;
2012-01-10 17:31:21 +00:00
2016-05-10 13:37:32 +02:00
void virHostMsgPass ( void ) ;
void virHostMsgFail ( virHostValidateLevel level ,
const char * format ,
2019-10-15 13:35:07 +02:00
. . . ) G_GNUC_PRINTF ( 2 , 3 ) ;
2012-01-10 17:31:21 +00:00
2016-05-10 13:37:32 +02:00
int virHostValidateDeviceExists ( const char * hvname ,
const char * dev_name ,
virHostValidateLevel level ,
const char * hint ) ;
2015-10-07 17:02:31 +01:00
2016-05-10 13:37:32 +02:00
int virHostValidateDeviceAccessible ( const char * hvname ,
const char * dev_name ,
virHostValidateLevel level ,
const char * hint ) ;
2012-01-10 17:31:21 +00:00
2021-03-11 08:16:13 +01:00
virBitmap * virHostValidateGetCPUFlags ( void ) ;
2012-01-10 17:31:21 +00:00
2016-05-10 13:37:32 +02:00
int virHostValidateLinuxKernel ( const char * hvname ,
int version ,
virHostValidateLevel level ,
const char * hint ) ;
2012-01-10 17:31:21 +00:00
2016-05-10 13:37:32 +02:00
int virHostValidateNamespace ( const char * hvname ,
const char * ns_name ,
virHostValidateLevel level ,
const char * hint ) ;
2015-10-07 16:58:39 +01:00
2018-09-29 21:37:22 +02:00
int virHostValidateCGroupControllers ( const char * hvname ,
int controllers ,
virHostValidateLevel level ) ;
2015-10-07 17:36:37 +01:00
2016-05-10 13:37:32 +02:00
int virHostValidateIOMMU ( const char * hvname ,
virHostValidateLevel level ) ;
2020-03-13 14:48:03 -03:00
2020-06-15 10:28:09 +02:00
int virHostValidateSecureGuests ( const char * hvname ,
virHostValidateLevel level ) ;
2020-03-13 14:48:03 -03:00
bool virHostKernelModuleIsLoaded ( const char * module ) ;