X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Flinux%2Ferr.h;h=ec87f3142bf30940c31911e71e6638d749de8f04;hb=13c48c490208d9e70d8d66d56f96c5054db69af7;hp=cd3b367f7445e5aa0f25ddbf2f0b96c44a19b94f;hpb=0d1782144e81faf6203075c5fcd0a2f0db91af5b;p=linux-2.6 diff --git a/include/linux/err.h b/include/linux/err.h index cd3b367f74..ec87f3142b 100644 --- a/include/linux/err.h +++ b/include/linux/err.h @@ -15,6 +15,8 @@ */ #define MAX_ERRNO 4095 +#ifndef __ASSEMBLY__ + #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO) static inline void *ERR_PTR(long error) @@ -32,4 +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 */