aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2008-02-07 03:15:26 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-07 11:42:25 -0500
commitd1bc8e95445224276d7896b8b08cbb0b28a0ca80 (patch)
tree2742bf56000c4af02314d753b2416b5cabc520d5 /include/linux
parentae5e29798afa2b11a01fcb4fab8b58fee47fe155 (diff)
Add an ERR_CAST() function to complement ERR_PTR and co.
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>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/err.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/err.h b/include/linux/err.h
index 1ab1d44f8d3b..ec87f3142bf3 100644
--- a/include/linux/err.h
+++ b/include/linux/err.h
@@ -34,6 +34,19 @@ static inline long IS_ERR(const void *ptr)
34 return IS_ERR_VALUE((unsigned long)ptr); 34 return IS_ERR_VALUE((unsigned long)ptr);
35} 35}
36 36
37/**
38 * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type
39 * @ptr: The pointer to cast.
40 *
41 * Explicitly cast an error-valued pointer to another pointer type in such a
42 * way as to make it clear that's what's going on.
43 */
44static inline void *ERR_CAST(const void *ptr)
45{
46 /* cast away the const */
47 return (void *) ptr;
48}
49
37#endif 50#endif
38 51
39#endif /* _LINUX_ERR_H */ 52#endif /* _LINUX_ERR_H */