classRegular
4.4: ✅struct class {
const char *name;
struct module *owner;
struct class_attribute *class_attrs;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*suspend)(struct device *, pm_message_t);
int (*resume)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
4.8: ✅struct class {
const char *name;
struct module *owner;
struct class_attribute *class_attrs;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*suspend)(struct device *, pm_message_t);
int (*resume)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
4.10: ✅struct class {
const char *name;
struct module *owner;
struct class_attribute *class_attrs;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*suspend)(struct device *, pm_message_t);
int (*resume)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
4.13: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*suspend)(struct device *, pm_message_t);
int (*resume)(struct device *);
int (*shutdown)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
4.15: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
4.18: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.0: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.3: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.4: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.8: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.11: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.13: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.15: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
5.19: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
6.2: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(const struct device *, struct kobj_uevent_env *);
char * (*devnode)(const struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(const struct device *);
void (*get_ownership)(const struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
6.5: ✅struct class {
const char *name;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
int (*dev_uevent)(const struct device *, struct kobj_uevent_env *);
char * (*devnode)(const struct device *, umode_t *);
void (*class_release)(const struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(const struct device *);
void (*get_ownership)(const struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
};
6.8: ✅struct class {
const char *name;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
int (*dev_uevent)(const struct device *, struct kobj_uevent_env *);
char * (*devnode)(const struct device *, umode_t *);
void (*class_release)(const struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(const struct device *);
void (*get_ownership)(const struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
};
arm64: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
armhf: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
ppc64el: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
riscv64: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
aws: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
azure: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
gcp: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
lowlatency: ✅struct class {
const char *name;
struct module *owner;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
struct kobject *dev_kobj;
int (*dev_uevent)(struct device *, struct kobj_uevent_env *);
char * (*devnode)(struct device *, umode_t *);
void (*class_release)(struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(struct device *);
void (*get_ownership)(struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
struct subsys_private *p;
};
Regular
4.4 and 4.8 ✅
4.8 and 4.10 ⚠️const struct attribute_group **class_groups
4.10 and 4.13 ⚠️int (*shutdown)(struct device *)
struct class_attribute *class_attrs
4.13 and 4.15 ⚠️int (*shutdown_pre)(struct device *)
int (*suspend)(struct device *, pm_message_t)
int (*resume)(struct device *)
int (*shutdown)(struct device *)
4.15 and 4.18 ⚠️void (*get_ownership)(struct device *, kuid_t *, kgid_t *)
4.18 and 5.0 ✅
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ✅
5.8 and 5.11 ✅
5.11 and 5.13 ✅
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ⚠️int (*dev_uevent)(struct device *, struct kobj_uevent_env *) ➡️ int (*dev_uevent)(const struct device *, struct kobj_uevent_env *)
char * (*devnode)(struct device *, umode_t *) ➡️ char * (*devnode)(const struct device *, umode_t *)
const void * (*namespace)(struct device *) ➡️ const void * (*namespace)(const struct device *)
void (*get_ownership)(struct device *, kuid_t *, kgid_t *) ➡️ void (*get_ownership)(const struct device *, kuid_t *, kgid_t *)
6.2 and 6.5 ⚠️struct module *owner
struct kobject *dev_kobj
struct subsys_private *p
void (*class_release)(struct class *) ➡️ void (*class_release)(const struct class *)
6.5 and 6.8 ✅
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅