blob: b320dbf072813619e31a7e89c5a297eb8d5d5840 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#ifndef _VERSION_H_
#define _VERSION_H_
#include <linux/types.h>
/* Driver features */
enum driver_feature {
DRV_FEAT_VGPU_VFIO,
DRV_FEAT_MIGRATION,
DRV_FEAT_SCHEDULING,
DRV_FEAT_NOTIFICATIONS,
DRV_FEAT_WPR,
};
/* Driver interface definition */
struct driver_interface {
const char *version;
int major;
int minor;
bool has_vgpu_vfio;
bool has_migration;
bool has_scheduling;
bool has_notifications;
bool has_wpr;
size_t vgpu_vfio_ops_size;
size_t mdev_parent_ops_size;
};
/* Version registry */
struct driver_interface *version_get_interface(const char *version_str);
struct driver_interface *version_get_by_kernel_version(void);
/* Feature queries */
bool version_has_feature(struct driver_interface *iface, enum driver_feature feature);
const char *version_get_string(struct driver_interface *iface);
#endif /* _VERSION_H_ */
|