4 #include <linux/device.h>
7 * Preferred API from 2.6.18 to 2.6.26+
9 #ifdef HAVE_DEVICE_CREATE
11 typedef struct class spl_class
;
12 typedef struct device spl_device
;
14 #define spl_class_create(mod, name) class_create(mod, name)
15 #define spl_class_destroy(cls) class_destroy(cls)
16 #define spl_device_create(cls, parent, devt, device, fmt, args...) \
17 device_create(cls, parent, devt, fmt, ## args)
18 #define spl_device_destroy(cls, cls_dev, devt) \
19 device_destroy(cls, devt)
22 * Preferred API from 2.6.13 to 2.6.17
23 * Depricated in 2.6.18
27 #ifdef HAVE_CLASS_DEVICE_CREATE
29 typedef struct class spl_class
;
30 typedef struct class_device spl_device
;
32 #define spl_class_create(mod, name) class_create(mod, name)
33 #define spl_class_destroy(cls) class_destroy(cls)
34 #define spl_device_create(cls, parent, devt, device, fmt, args...) \
35 class_device_create(cls, devt, device, fmt, ## args)
36 #define spl_device_destroy(cls, cls_dev, devt) \
37 class_device_unregister(cls_dev)
40 * Prefered API from 2.6.0 to 2.6.12
41 * Depricated in 2.6.13
44 #else /* Legacy API */
46 typedef struct class_simple spl_class
;
47 typedef struct class_device spl_class_device
;
49 #define spl_class_create(mod, name) class_simple_create(mod, name)
50 #define spl_class_destroy(cls) class_simple_destroy(cls)
51 #define spl_device_create(cls, parent, devt, device, fmt, args...) \
52 class_simple_device_add(cls, devt, device, fmt, ## args)
53 #define spl_device_destroy(cls, cls_dev, devt) \
54 class_simple_device_remove(devt)
59 #endif /* _SPL_DEVICE_H */