summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-07-21 10:04:48 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-07-21 10:04:48 +0000
commitd9258f154a2bf078a36ac2f049a6a4e5243352c4 (patch)
treecc45c037a934a7b7f735f9e20efde3e5d3fc96bf
parent3401e77c12c35436c4afb280af16f07dfbc013a8 (diff)
Fix building zaptel with kernel 2.6.26. Taken from DAHDI-linux rev.
4522. For issue #12944 . Merged revisions 4424 via svnmerge from http://svn.digium.com/svn/zaptel/branches/1.2 git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@4426 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r--kernel/zaptel-base.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/kernel/zaptel-base.c b/kernel/zaptel-base.c
index 21fef71..088bb5b 100644
--- a/kernel/zaptel-base.c
+++ b/kernel/zaptel-base.c
@@ -163,12 +163,29 @@ static devfs_handle_t timer;
/* udev necessary data structures. Yeah! */
#ifdef CONFIG_ZAP_UDEV
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
+#if 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)
-#else
+#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)
+#else
+#define CLASS_DEV_DESTROY(class, devt) \
+ class_simple_device_remove(class, devt)
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13)
@@ -177,8 +194,6 @@ static struct class *zap_class = NULL;
static struct class_simple *zap_class = NULL;
#define class_create class_simple_create
#define class_destroy class_simple_destroy
-#define class_device_create class_simple_device_add
-#define class_device_destroy(a, b) class_simple_device_remove(b)
#endif
#endif /* CONFIG_ZAP_UDEV */
@@ -5285,7 +5300,7 @@ int zt_unregister(struct zt_span *span)
#ifdef CONFIG_ZAP_UDEV
for (x = 0; x < span->channels; x++) {
if (span->chans[x].channo < 250)
- class_device_destroy(zap_class, MKDEV(ZT_MAJOR, span->chans[x].channo));
+ CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, span->chans[x].channo));
}
#endif /* CONFIG_ZAP_UDEV */
@@ -7706,7 +7721,7 @@ int zt_register_chardev(struct zt_chardev *dev)
int zt_unregister_chardev(struct zt_chardev *dev)
{
#ifdef CONFIG_ZAP_UDEV
- class_device_destroy(zap_class, MKDEV(ZT_MAJOR, dev->minor));
+ CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, dev->minor));
#endif /* CONFIG_ZAP_UDEV */
#ifdef CONFIG_DEVFS_FS
@@ -7785,10 +7800,10 @@ static void __exit zt_cleanup(void) {
devfs_unregister_chrdev(ZT_MAJOR, "zaptel");
#else
#ifdef CONFIG_ZAP_UDEV
- class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 253)); /* timer */
- class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 254)); /* channel */
- class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 255)); /* pseudo */
- class_device_destroy(zap_class, MKDEV(ZT_MAJOR, 0)); /* ctl */
+ CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 253)); /* timer */
+ CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 254)); /* channel */
+ CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 255)); /* pseudo */
+ CLASS_DEV_DESTROY(zap_class, MKDEV(ZT_MAJOR, 0)); /* ctl */
class_destroy(zap_class);
#endif /* CONFIG_ZAP_UDEV */
unregister_chrdev(ZT_MAJOR, "zaptel");