chiark / gitweb /
swap: replace failure boolean by result enum
[elogind.git] / src / swap.h
index ea98bc2a6f8f3c7f1c4ce593093c1a2b0b08bb76..62d08da30b81f5649e4af04d1254d875df650894 100644 (file)
@@ -56,6 +56,17 @@ typedef struct SwapParameters {
         bool handle:1;
 } SwapParameters;
 
+typedef enum SwapResult {
+        SWAP_SUCCESS,
+        SWAP_FAILURE_RESOURCES,
+        SWAP_FAILURE_TIMEOUT,
+        SWAP_FAILURE_EXIT_CODE,
+        SWAP_FAILURE_SIGNAL,
+        SWAP_FAILURE_CORE_DUMP,
+        _SWAP_RESULT_MAX,
+        _SWAP_RESULT_INVALID = -1
+} SwapResult;
+
 struct Swap {
         Unit meta;
 
@@ -69,13 +80,13 @@ struct Swap {
         bool from_proc_swaps:1;
         bool from_fragment:1;
 
-        bool failure:1;
-
         /* Used while looking for swaps that vanished or got added
          * from/to /proc/swaps */
         bool is_active:1;
         bool just_activated:1;
 
+        SwapResult result;
+
         usec_t timeout_usec;
 
         ExecCommand exec_command[_SWAP_EXEC_COMMAND_MAX];
@@ -111,4 +122,7 @@ SwapState swap_state_from_string(const char *s);
 const char* swap_exec_command_to_string(SwapExecCommand i);
 SwapExecCommand swap_exec_command_from_string(const char *s);
 
+const char* swap_result_to_string(SwapResult i);
+SwapResult swap_result_from_string(const char *s);
+
 #endif