Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.3.49 /kernel/resource.c

Filename:/kernel/resource.c
Lines Added:35
Lines Deleted:11
Also changed in: (Previous) 2.3.33  2.3.30  2.3.29  2.3.27  2.3.18  2.3.16 
(Following) 2.5.54  2.5.63  2.5.68-bk8  2.5.68-bk9  2.5.68-bk10  2.5.68-bk11 

Location
[  2.3.49
  [  kernel
     o  resource.c

Patch

diff -u --recursive --new-file v2.3.48/linux/kernel/resource.c linux/kernel/resource.c
--- v2.3.48/linux/kernel/resource.c   Wed Dec 15 10:43:17 1999
+++ linux/kernel/resource.c   Tue Feb 29 15:28:46 2000
@@ -92,17 +92,7 @@
    }
 }
 
-int request_resource(struct resource *root, struct resource *new)
-{
-   struct resource *conflict;
-
-   write_lock(&resource_lock);
-   conflict = __request_resource(root, new);
-   write_unlock(&resource_lock);
-   return conflict ? -EBUSY : 0;
-}
-
-int release_resource(struct resource *old)
+static int __release_resource(struct resource *old)
 {
    struct resource *tmp, **p;
 
@@ -119,6 +109,40 @@
       p = &tmp->sibling;
    }
    return -EINVAL;
+}
+
+int request_resource(struct resource *root, struct resource *new)
+{
+   struct resource *conflict;
+
+   write_lock(&resource_lock);
+   conflict = __request_resource(root, new);
+   write_unlock(&resource_lock);
+   return conflict ? -EBUSY : 0;
+}
+
+int release_resource(struct resource *old)
+{
+   int retval;
+
+   write_lock(&resource_lock);
+   retval = __release_resource(old);
+   write_unlock(&resource_lock);
+   return retval;
+}
+
+int check_resource(struct resource *root, unsigned long start, unsigned long len)
+{
+   struct resource *conflict, tmp;
+
+   tmp.start = start;
+   tmp.end = start + len - 1;
+   write_lock(&resource_lock);
+   conflict = __request_resource(root, &tmp);
+   if (!conflict)
+      __release_resource(&tmp);
+   write_unlock(&resource_lock);
+   return conflict ? -EBUSY : 0;
 }
 
 /*


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.