| 1 | #ifndef _LINUX_ERR_H
|
| 2 | #define _LINUX_ERR_H
|
| 3 |
|
| 4 | #include <linux/compiler.h>
|
| 5 |
|
| 6 | #include <asm/errno.h>
|
| 7 |
|
| 8 | |
| 9 | * Kernel pointers have redundant information, so we can use a
|
| 10 | * scheme where we can return either an error code or a dentry
|
| 11 | * pointer with the same return value.
|
| 12 | *
|
| 13 | * This should be a per-architecture thing, to allow different
|
| 14 | * error and pointer decisions.
|
| 15 |
|
| 16 | #define IS_ERR_VALUE(x) unlikely((x) > (unsigned long)-1000L)
|
| 17 |
|
| 18 | static inline void *ERR_PTR(long error)
|
| 19 | {
|
| 20 | return (void *) error;
|
| 21 | }
|
| 22 |
|
| 23 | static inline long PTR_ERR(const void *ptr)
|
| 24 | {
|
| 25 | return (long) ptr;
|
| 26 | }
|
| 27 |
|
| 28 | static inline long IS_ERR(const void *ptr)
|
| 29 | {
|
| 30 | return IS_ERR_VALUE((unsigned long)ptr);
|
| 31 | }
|
| 32 |
|
| 33 | #endif
|