Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
18static inline void *ERR_PTR(long error)
19{
20 return (void *) error;
21}
22
23static inline long PTR_ERR(const void *ptr)
24{
25 return (long) ptr;
26}
27
28static inline long IS_ERR(const void *ptr)
29{
30 return IS_ERR_VALUE((unsigned long)ptr);
31}
32
33#endif /* _LINUX_ERR_H */