1 #ifndef __GSK_ERROR_H_
2 #define __GSK_ERROR_H_
3 
4 #include <glib-object.h>
5 
6 G_BEGIN_DECLS
7 
8 /* --- the error domain for internal gsk errors (private) --- */
9 extern GQuark gsk_g_error_domain_quark;
10 extern GType gsk_error_code_type;
11 
12 /* public macros for accessing the above */
13 #define GSK_G_ERROR_DOMAIN	(gsk_g_error_domain_quark)
14 #define GSK_TYPE_ERROR_CODE	(gsk_error_code_type)
15 
16 /* --- types of errors that can occur in gsk --- */
17 typedef enum
18 {
19   GSK_ERROR_NONE,
20 
21   GSK_ERROR_ALREADY_ATTACHED,
22   GSK_ERROR_BUFFER_UNBUFFER_MIXED,
23   GSK_ERROR_STREAM_ATTACH_NOT_READABLE,
24   GSK_ERROR_STREAM_ATTACH_NOT_WRITABLE,
25   GSK_ERROR_READ_POLL_FAILED,
26   GSK_ERROR_WRITE_POLL_FAILED,
27   GSK_ERROR_SHUTDOWN_READ_FAILED,
28   GSK_ERROR_SHUTDOWN_WRITE_FAILED,
29   GSK_ERROR_OPEN_FAILED,
30   GSK_ERROR_UNEXPECTED_PARTIAL_WRITE,
31   GSK_ERROR_UNEXPECTED_PARTIAL_READ,
32   GSK_ERROR_FOREIGN_ADDRESS,
33   GSK_ERROR_ACCEPTED_SOCKET_FAILED,
34   GSK_ERROR_BIND_FAILED,
35   GSK_ERROR_BIND_UNAVAILABLE,
36   GSK_ERROR_END_OF_FILE,
37   GSK_ERROR_NOT_READY,
38   GSK_ERROR_IO,
39   GSK_ERROR_UNKNOWN,
40   GSK_ERROR_FULL,
41   GSK_ERROR_VERSION,
42   GSK_ERROR_INTERNAL,
43   GSK_ERROR_INVALID_STATE,
44   GSK_ERROR_LINGERING_DATA,		/* close lost data */
45   GSK_ERROR_MULTIPLE_PROBLEMS,
46   GSK_ERROR_PARSE,
47 
48   /* resolver errors */
49   GSK_ERROR_RESOLVER_NOT_FOUND,
50   GSK_ERROR_RESOLVER_NO_NAME_SERVERS,
51   GSK_ERROR_RESOLVER_TOO_MANY_FAILURES,
52   GSK_ERROR_RESOLVER_NO_DATA,
53   GSK_ERROR_RESOLVER_ACCESS,
54   GSK_ERROR_RESOLVER_SOCKET_DIED,
55   GSK_ERROR_RESOLVER_FORMAT,
56   GSK_ERROR_RESOLVER_SERVER_PROBLEM,
57 
58   /* http errors */
59   GSK_ERROR_HTTP_PARSE,
60   GSK_ERROR_HTTP_NOT_FOUND,
61 
62   /* regex errors */
63   GSK_ERROR_REGEX_SYNTAX,
64 
65   /* errno imports */
66   GSK_ERROR_TOO_MANY_SYSTEM_FDS,
67   GSK_ERROR_TOO_MANY_PROCESS_FDS,
68   GSK_ERROR_ADDRESS_ALREADY_IN_USE,
69   GSK_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED_BY_PROTOCOL_FAMILY,
70   GSK_ERROR_ARG_LIST_TOO_LONG,
71   GSK_ERROR_BAD_ADDRESS,
72   GSK_ERROR_BAD_FD,
73   GSK_ERROR_BAD_FORMAT,
74   GSK_ERROR_BAD_PROCEDURE_FOR_PROGRAM,
75   GSK_ERROR_BLOCK_DEVICE_REQUIRED,
76   GSK_ERROR_BROKEN_PIPE,
77   GSK_ERROR_CANNOT_ASSIGN_REQUESTED_ADDRESS,
78   GSK_ERROR_CANNOT_SEND_AFTER_SOCKET_SHUTDOWN,
79   GSK_ERROR_CONNECTION_REFUSED,
80   GSK_ERROR_CONNECTION_RESET_BY_PEER,
81   GSK_ERROR_CROSS_DEVICE_LINK,
82   GSK_ERROR_DESTINATION_ADDRESS_REQUIRED,
83   GSK_ERROR_DEVICE_BUSY,
84   GSK_ERROR_DEVICE_FAILED,
85   GSK_ERROR_DEVICE_NOT_CONFIGURED,
86   GSK_ERROR_DIRECTORY_NOT_EMPTY,
87   GSK_ERROR_DISC_QUOTA_EXCEEDED,
88   GSK_ERROR_FILE_EXISTS,
89   GSK_ERROR_FILE_NAME_TOO_LONG,
90   GSK_ERROR_FILE_NOT_FOUND,
91   GSK_ERROR_FILE_TOO_LARGE,
92   GSK_ERROR_FUNCTION_NOT_IMPLEMENTED,
93   GSK_ERROR_HOST_IS_DOWN,
94   GSK_ERROR_ILLEGAL_SEEK,
95   GSK_ERROR_INAPPROPRIATE_IOCTL_FOR_DEVICE,
96   GSK_ERROR_INTERRUPTED_SYSTEM_CALL,
97   GSK_ERROR_INVALID_ARGUMENT,
98   GSK_ERROR_IS_A_DIRECTORY,
99   GSK_ERROR_MESSAGE_TOO_LONG,
100   GSK_ERROR_NETWORK_DROPPED_CONNECTION_ON_RESET,
101   GSK_ERROR_NETWORK_IS_DOWN,
102   GSK_ERROR_NETWORK_IS_UNREACHABLE,
103   GSK_ERROR_NOT_A_DIRECTORY,
104   GSK_ERROR_NO_BUFFER_SPACE_AVAILABLE,
105   GSK_ERROR_NO_CHILD_PROCESSES,
106   GSK_ERROR_NO_LOCKS_AVAILABLE,
107   GSK_ERROR_NO_ROUTE_TO_HOST,
108   GSK_ERROR_NO_SPACE_LEFT_ON_DEVICE,
109   GSK_ERROR_NUMERICAL_ARGUMENT_OUT_OF_DOMAIN,
110   GSK_ERROR_OPERATION_ALREADY_IN_PROGRESS,
111   GSK_ERROR_OPERATION_NOT_SUPPORTED,
112   GSK_ERROR_OPERATION_NOW_IN_PROGRESS,
113   GSK_ERROR_OPERATION_TIMED_OUT,
114   GSK_ERROR_OUT_OF_MEMORY,
115   GSK_ERROR_PERMISSION_DENIED,
116   GSK_ERROR_PROCESS_NOT_FOUND,
117   GSK_ERROR_PROGRAM_VERSION_WRONG,
118   GSK_ERROR_PROTOCOL_FAMILY_NOT_SUPPORTED,
119   GSK_ERROR_PROTOCOL_NOT_AVAILABLE,
120   GSK_ERROR_PROTOCOL_NOT_SUPPORTED,
121   GSK_ERROR_PROTOCOL_WRONG_TYPE_FOR_SOCKET,
122   GSK_ERROR_READ_ONLY_FILE_SYSTEM,
123   GSK_ERROR_RESOURCE_DEADLOCK,
124   GSK_ERROR_RESOURCE_TEMPORARILY_UNAVAILABLE,
125   GSK_ERROR_RESULT_TOO_LARGE,
126   GSK_ERROR_RPC_PROG_NOT_AVAIL,
127   GSK_ERROR_RPC_STRUCT_IS_BAD,
128   GSK_ERROR_RPC_VERSION_WRONG,
129   GSK_ERROR_SOCKET_IS_ALREADY_CONNECTED,
130   GSK_ERROR_SOCKET_IS_NOT_CONNECTED,
131   GSK_ERROR_SOCKET_OPERATION_ON_NON_SOCKET,
132   GSK_ERROR_SOCKET_TYPE_NOT_SUPPORTED,
133   GSK_ERROR_SOFTWARE_CAUSED_CONNECTION_ABORT,
134   GSK_ERROR_STALE_NFS_FILE_HANDLE,
135   GSK_ERROR_TEXT_FILE_BUSY,
136   GSK_ERROR_TOO_MANY_LEVELS_OF_REMOTE_IN_PATH,
137   GSK_ERROR_TOO_MANY_LEVELS_OF_SYMBOLIC_LINKS,
138   GSK_ERROR_TOO_MANY_LINKS,
139   GSK_ERROR_TOO_MANY_OPEN_FILES,
140   GSK_ERROR_TOO_MANY_OPEN_FILES_IN_SYSTEM,
141   GSK_ERROR_TOO_MANY_PROCESSES,
142   GSK_ERROR_TOO_MANY_REFERENCES_CANNOT_SPLICE,
143   GSK_ERROR_TOO_MANY_USERS,
144 
145   /* xml related errors */
146   GSK_ERROR_MULTIPLE_DOCUMENTS,
147   GSK_ERROR_NO_DOCUMENT,
148 
149   GSK_ERROR_COMPILE,
150   GSK_ERROR_LINK,
151   GSK_ERROR_OPEN_MODULE,
152   GSK_ERROR_CIRCULAR,
153 
154   GSK_ERROR_FILE_STAT,
155   GSK_ERROR_FILE_MMAP,
156   GSK_ERROR_FILE_CREATE,
157   GSK_ERROR_FILE_OPEN,
158   GSK_ERROR_FILE_TRUNCATE,
159   GSK_ERROR_FILE_SEEK,
160   GSK_ERROR_FILE_READ,
161   GSK_ERROR_FILE_WRITE,
162   GSK_ERROR_FILE_PREAD,
163   GSK_ERROR_FILE_PWRITE,
164   GSK_ERROR_FILE_RENAME,
165   GSK_ERROR_PREMATURE_EOF,
166   GSK_ERROR_CORRUPT,
167   GSK_ERROR_EXISTS,
168 } GskErrorCode;
169 
170 
171 GskErrorCode gsk_error_code_from_errno (int errno_number);
172 
173 /* private */
174 void _gsk_error_init (void);
175 
176 G_END_DECLS
177 
178 #endif
179