summaryrefslogtreecommitdiffstats
path: root/kernel/version/version.h
blob: 818d939d6d5ec686f37a83f5911a5f5d16dc32f2 (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
#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;
};

/* 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_ */