From 2d94a303ec350feb13be9f92b0e726f4236945e6 Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Wed, 22 Feb 2012 12:11:23 +0000 Subject: sysfs channels: refactor compat macros * Refactor all kernel version compatibility macros that relate to sysfs and device files to new header: dahdi-sysfs.h * No functional change. * Preparing for a refactor channel device file handling into a new source file. Signed-off-by: Oron Peled Acked-by: Tzafrir Cohen Acked-by: Shaun Ruffell git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10462 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/dahdi-sysfs.c | 91 +---------------------------------------- drivers/dahdi/dahdi-sysfs.h | 98 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 90 deletions(-) create mode 100644 drivers/dahdi/dahdi-sysfs.h diff --git a/drivers/dahdi/dahdi-sysfs.c b/drivers/dahdi/dahdi-sysfs.c index b3b10d8..d14b15c 100644 --- a/drivers/dahdi/dahdi-sysfs.c +++ b/drivers/dahdi/dahdi-sysfs.c @@ -6,37 +6,7 @@ #include #include "dahdi.h" - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) -#define CLASS_DEV_CREATE(class, devt, device, name) \ - device_create(class, device, devt, NULL, "%s", name) -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26) -#define CLASS_DEV_CREATE(class, devt, device, name) \ - device_create(class, device, devt, name) -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 15) -#define CLASS_DEV_CREATE(class, devt, device, name) \ - class_device_create(class, NULL, devt, device, name) -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) -#define CLASS_DEV_CREATE(class, devt, device, name) \ - class_device_create(class, devt, device, name) -#else -#define CLASS_DEV_CREATE(class, devt, device, name) \ - class_simple_device_add(class, devt, device, name) -#endif - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26) -#define CLASS_DEV_DESTROY(class, devt) \ - device_destroy(class, devt) -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) -#define CLASS_DEV_DESTROY(class, devt) \ - class_device_destroy(class, devt) -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 9) -#define CLASS_DEV_DESTROY(class, devt) \ - class_simple_device_remove(devt) -#else -#define CLASS_DEV_DESTROY(class, devt) \ - class_simple_device_remove(class, devt) -#endif +#include "dahdi-sysfs.h" #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) static struct class *dahdi_class; @@ -46,65 +16,6 @@ static struct class_simple *dahdi_class; #define class_destroy class_simple_destroy #endif -/* - * Very old hotplug support - */ -#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 9) -#define OLD_HOTPLUG_SUPPORT /* for older kernels */ -#define OLD_HOTPLUG_SUPPORT_269 -#endif - -#ifdef OLD_HOTPLUG_SUPPORT_269 -/* Copy from new kernels lib/kobject_uevent.c */ -enum kobject_action { - KOBJ_ADD, - KOBJ_REMOVE, - KOBJ_CHANGE, - KOBJ_MOUNT, - KOBJ_UMOUNT, - KOBJ_OFFLINE, - KOBJ_ONLINE, -}; -#endif - -/* - * Hotplug replaced with uevent in 2.6.16 - */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) -#define OLD_HOTPLUG_SUPPORT /* for older kernels */ -#endif - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) -#define DEVICE_ATTR_READER(name, dev, buf) \ - ssize_t name(struct device *dev, \ - struct device_attribute *attr, \ - char *buf) -#define DEVICE_ATTR_WRITER(name, dev, buf, count) \ - ssize_t name(struct device *dev, \ - struct device_attribute *attr, \ - const char *buf, size_t count) -#define BUS_ATTR_READER(name, dev, buf) \ - ssize_t name(struct device *dev, \ - struct device_attribute *attr, \ - char *buf) -#define BUS_ATTR_WRITER(name, dev, buf, count) \ - ssize_t name(struct device *dev, \ - struct device_attribute *attr, \ - const char *buf, size_t count) -#else -#define DEVICE_ATTR_READER(name, dev, buf) \ - ssize_t name(struct device *dev, char *buf) -#define DEVICE_ATTR_WRITER(name, dev, buf, count) \ - ssize_t name(struct device *dev, const char *buf, size_t count) -#define BUS_ATTR_READER(name, dev, buf) \ - ssize_t name(struct device *dev, char *buf) -#define BUS_ATTR_WRITER(name, dev, buf, count) \ - ssize_t name(struct device *dev, const char *buf, size_t count) -#endif - -#define DRIVER_ATTR_READER(name, drv, buf) \ - ssize_t name(struct device_driver *drv, char * buf) - static char *initdir = "/usr/share/dahdi"; module_param(initdir, charp, 0644); diff --git a/drivers/dahdi/dahdi-sysfs.h b/drivers/dahdi/dahdi-sysfs.h new file mode 100644 index 0000000..92afbf4 --- /dev/null +++ b/drivers/dahdi/dahdi-sysfs.h @@ -0,0 +1,98 @@ +#ifndef DAHDI_SYSFS_H +#define DAHDI_SYSFS_H + +/* + * Very old hotplug support + */ +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 9) +#define OLD_HOTPLUG_SUPPORT /* for older kernels */ +#define OLD_HOTPLUG_SUPPORT_269 +#endif + +#ifdef OLD_HOTPLUG_SUPPORT_269 +/* Copy from new kernels lib/kobject_uevent.c */ +enum kobject_action { + KOBJ_ADD, + KOBJ_REMOVE, + KOBJ_CHANGE, + KOBJ_MOUNT, + KOBJ_UMOUNT, + KOBJ_OFFLINE, + KOBJ_ONLINE, +}; +#endif + +/* + * Hotplug replaced with uevent in 2.6.16 + */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) +#define OLD_HOTPLUG_SUPPORT /* for older kernels */ +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) +#define DEVICE_ATTR_READER(name, dev, buf) \ + ssize_t name(struct device *dev, \ + struct device_attribute *attr, \ + char *buf) +#define DEVICE_ATTR_WRITER(name, dev, buf, count) \ + ssize_t name(struct device *dev, \ + struct device_attribute *attr, \ + const char *buf, size_t count) +#define BUS_ATTR_READER(name, dev, buf) \ + ssize_t name(struct device *dev, \ + struct device_attribute *attr, \ + char *buf) +#define BUS_ATTR_WRITER(name, dev, buf, count) \ + ssize_t name(struct device *dev, \ + struct device_attribute *attr, \ + const char *buf, size_t count) +#else +#define DEVICE_ATTR_READER(name, dev, buf) \ + ssize_t name(struct device *dev, char *buf) +#define DEVICE_ATTR_WRITER(name, dev, buf, count) \ + ssize_t name(struct device *dev, const char *buf, size_t count) +#define BUS_ATTR_READER(name, dev, buf) \ + ssize_t name(struct device *dev, char *buf) +#define BUS_ATTR_WRITER(name, dev, buf, count) \ + ssize_t name(struct device *dev, const char *buf, size_t count) +#endif + +#define DRIVER_ATTR_READER(name, drv, buf) \ + ssize_t name(struct device_driver *drv, char * buf) + +/* Device file creation macros */ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) +#define CLASS_DEV_CREATE(class, devt, device, name) \ + device_create(class, device, devt, NULL, "%s", name) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26) +#define CLASS_DEV_CREATE(class, devt, device, name) \ + device_create(class, device, devt, name) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 15) +#define CLASS_DEV_CREATE(class, devt, device, name) \ + class_device_create(class, NULL, devt, device, name) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) +#define CLASS_DEV_CREATE(class, devt, device, name) \ + class_device_create(class, devt, device, name) +#else +#define CLASS_DEV_CREATE(class, devt, device, name) \ + class_simple_device_add(class, devt, device, name) +#endif + +/* Device file destruction macros */ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26) +#define CLASS_DEV_DESTROY(class, devt) \ + device_destroy(class, devt) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) +#define CLASS_DEV_DESTROY(class, devt) \ + class_device_destroy(class, devt) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 9) +#define CLASS_DEV_DESTROY(class, devt) \ + class_simple_device_remove(devt) +#else +#define CLASS_DEV_DESTROY(class, devt) \ + class_simple_device_remove(class, devt) +#endif + +#endif /* DAHDI_SYSFS_H */ -- cgit v1.2.3