alarm: Force unset_alarm to grab the CV lock
[akaros.git] / kern / include / error.h
index 7bcd98a..e5ba6e5 100644 (file)
@@ -1,17 +1,14 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifndef ROS_INC_ERROR_H
-#define ROS_INC_ERROR_H
+#pragma once
 
 #include <ros/errno.h>
 
 typedef int error_t;
 
-#define ERR_PTR(err)  ((void *)((uintptr_t)(err)))
-#define PTR_ERR(ptr)  ((uintptr_t)(ptr))
-#define IS_ERR(ptr)   ((uintptr_t)-(uintptr_t)(ptr) < 512)
+#define MAX_ERRNO              4095
 
-extern const char *const errno_strings[];
-extern const int MAX_ERRNO;
-
-#endif // !ROS_INC_ERROR_H */
+#define ERR_PTR(err)  ((void *)((intptr_t)(err)))
+#define PTR_ERR(ptr)  ((intptr_t)(ptr))
+#define IS_ERR(ptr)   (-(intptr_t)(ptr) <= MAX_ERRNO)
+#define IS_ERR_OR_NULL(ptr) (!(ptr) || IS_ERR(ptr))