Proc data structure management, env gutting
[akaros.git] / kern / include / ros / error.h
1 /* See COPYRIGHT for copyright information. */
2
3 #ifndef ROS_INC_ERROR_H
4 #define ROS_INC_ERROR_H
5
6 #include <ros/common.h>
7
8 #define DECLARE_ERROR_CODE(e, s)
9
10 // define this to prevent conflicts with newlib's errno.h
11 #define __error_t_defined
12 #if 0
13 #define ESUCCESS                         0              // Success
14 #define EFAIL                            1              // Generic Failure
15 #define EPERM                            2              // Wrong permissions
16 #define EDEADLOCK                        3              // Would cause deadlock
17 #define EBUSY                            4              // Currently busy, try again later
18 #define ENOMEM                           5              // No memory available
19 #define ENOCACHE                         6              // No memory available
20 #define EINVAL                           7              // Invalid arguments
21 #define EFAULT                           8              // Segmentation fault
22 #define EBADPROC                         9              // Bad process
23 #define ENOFREEPID                      10              // No free pid
24 #define EUNSPECIFIED            11              // Unspecified
25 #define EMORON                          12              // Moron
26 #define NUMERRORS                       13              // Total number of error codes
27 #endif
28
29 /* this enum is ghetto, but #defining collides with newlib.  right now, we
30  * collide on names *and* numbers, which needs to be sorted.  (TODO) */
31 enum {
32         ESUCCESS,
33         EFAIL,
34         EPERM,
35         EDEADLOCK,
36         EBUSY,
37         ENOMEM,
38         ENOCACHE,
39         EINVAL,
40         EFAULT,
41         EBADPROC,
42         ENOFREEPID,
43         EUNSPECIFIED,
44         EMORON,
45         NUMERRORS,
46 };
47
48 typedef int error_t;
49
50 /* The special format for printk %e takes an integer
51  * error code and prints a string describing the error.
52  * The integer may be positive or negative,
53  * so that -ENOMEM and ENOMEM are equivalent.
54  */
55
56 static const char *NTS const (RO error_string)[NUMERRORS] =
57 {
58         "Success",
59         "Generic Failure",
60         "Wrong permissions",
61         "Would cause deadlock",
62         "Currently busy, try again later",
63         "No memory available",
64         "No cache available",
65         "Invalid arguments",
66         "Segmentation fault",
67         "Bad process",
68         "No free pid",
69         "Unspecified",
70         "You are a moron",
71 };
72
73 #endif  // !ROS_INC_ERROR_H */