chiark / gitweb /
swap: always track the current real device node of all swap devices, even when not...
[elogind.git] / src / core / swap.h
index 313a1959577208ffa40dcf05c6102c288ffac7f6..3005abb2d25bce64d4b5e7a5978b0cbdf937ed62 100644 (file)
@@ -22,6 +22,8 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <libudev.h>
+
 typedef struct Swap Swap;
 
 #include "unit.h"
 typedef struct Swap Swap;
 
 #include "unit.h"
@@ -71,6 +73,11 @@ struct Swap {
 
         char *what;
 
 
         char *what;
 
+        /* If the device has already shown up, this is the device
+         * node, which might be different from what, due to
+         * symlinks */
+        char *devnode;
+
         SwapParameters parameters_proc_swaps;
         SwapParameters parameters_fragment;
 
         SwapParameters parameters_proc_swaps;
         SwapParameters parameters_fragment;
 
@@ -103,11 +110,14 @@ struct Swap {
         different device nodes we might end up creating multiple
         devices for the same swap. We chain them up here. */
 
         different device nodes we might end up creating multiple
         devices for the same swap. We chain them up here. */
 
-        LIST_FIELDS(struct Swap, same_proc_swaps);
+        LIST_FIELDS(struct Swap, same_devnode);
 };
 
 extern const UnitVTable swap_vtable;
 
 };
 
 extern const UnitVTable swap_vtable;
 
+int swap_process_new_device(Manager *m, struct udev_device *dev);
+int swap_process_removed_device(Manager *m, struct udev_device *dev);
+
 const char* swap_state_to_string(SwapState i) _const_;
 SwapState swap_state_from_string(const char *s) _pure_;
 
 const char* swap_state_to_string(SwapState i) _const_;
 SwapState swap_state_from_string(const char *s) _pure_;