xref: /openbsd/sys/dev/pci/drm/include/linux/err.h (revision a24c48f0)
17f4dd379Sjsg /* Public domain. */
27f4dd379Sjsg 
37f4dd379Sjsg #ifndef _LINUX_ERR_H
47f4dd379Sjsg #define _LINUX_ERR_H
57f4dd379Sjsg 
67f4dd379Sjsg #include <sys/errno.h>
77f4dd379Sjsg #include <linux/compiler.h>
87f4dd379Sjsg 
97f4dd379Sjsg #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-ELAST)
107f4dd379Sjsg 
117f4dd379Sjsg static inline void *
ERR_PTR(long error)127f4dd379Sjsg ERR_PTR(long error)
137f4dd379Sjsg {
147f4dd379Sjsg 	return (void *) error;
157f4dd379Sjsg }
167f4dd379Sjsg 
177f4dd379Sjsg static inline long
PTR_ERR(const void * ptr)187f4dd379Sjsg PTR_ERR(const void *ptr)
197f4dd379Sjsg {
207f4dd379Sjsg 	return (long) ptr;
217f4dd379Sjsg }
227f4dd379Sjsg 
23*a24c48f0Sjsg static inline bool
IS_ERR(const void * ptr)247f4dd379Sjsg IS_ERR(const void *ptr)
257f4dd379Sjsg {
267f4dd379Sjsg         return IS_ERR_VALUE((unsigned long)ptr);
277f4dd379Sjsg }
287f4dd379Sjsg 
29*a24c48f0Sjsg static inline bool
IS_ERR_OR_NULL(const void * ptr)307f4dd379Sjsg IS_ERR_OR_NULL(const void *ptr)
317f4dd379Sjsg {
327f4dd379Sjsg         return !ptr || IS_ERR_VALUE((unsigned long)ptr);
337f4dd379Sjsg }
347f4dd379Sjsg 
357f4dd379Sjsg static inline void *
ERR_CAST(const void * ptr)367f4dd379Sjsg ERR_CAST(const void *ptr)
377f4dd379Sjsg {
387f4dd379Sjsg 	return (void *)ptr;
397f4dd379Sjsg }
407f4dd379Sjsg 
417f4dd379Sjsg static inline int
PTR_ERR_OR_ZERO(const void * ptr)427f4dd379Sjsg PTR_ERR_OR_ZERO(const void *ptr)
437f4dd379Sjsg {
447f4dd379Sjsg 	return IS_ERR(ptr)? PTR_ERR(ptr) : 0;
457f4dd379Sjsg }
467f4dd379Sjsg 
477f4dd379Sjsg #endif
48