]> err.no Git - linux-2.6/commitdiff
Add an ERR_CAST() function to complement ERR_PTR and co.
authorDavid Howells <dhowells@redhat.com>
Thu, 7 Feb 2008 08:15:26 +0000 (00:15 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 7 Feb 2008 16:42:25 +0000 (08:42 -0800)
Add an ERR_CAST() function to complement ERR_PTR and co.  for the purposes
of casting an error entyped as one pointer type to an error of another
pointer type whilst making it explicit as to what is going on.

This provides a replacement for the ERR_PTR(PTR_ERR(p)) construct.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/err.h

index 1ab1d44f8d3be7a28c8a1a849c72e1f841424015..ec87f3142bf30940c31911e71e6638d749de8f04 100644 (file)
@@ -34,6 +34,19 @@ static inline long IS_ERR(const void *ptr)
        return IS_ERR_VALUE((unsigned long)ptr);
 }
 
+/**
+ * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type
+ * @ptr: The pointer to cast.
+ *
+ * Explicitly cast an error-valued pointer to another pointer type in such a
+ * way as to make it clear that's what's going on.
+ */
+static inline void *ERR_CAST(const void *ptr)
+{
+       /* cast away the const */
+       return (void *) ptr;
+}
+
 #endif
 
 #endif /* _LINUX_ERR_H */