#ifndef __SWAP_COMMON_H__
#define __SWAP_COMMON_H__
+#include <stdio.h>
+#include "resourced.h"
#include "memory-common.h"
#define SWAP_ZRAM_SYSFILE "/sys/block/zram0/"
+#define SWAP_CONF_FILE RD_CONFIG_FILE(swap)
enum swap_state {
SWAP_ARG_START = -1,
SWAP_ARG_END,
};
+enum swap_type {
+ SWAP_TYPE_NONE = 0x0,
+ SWAP_TYPE_ZRAM = 0x1,
+ SWAP_TYPE_MAX,
+};
+
struct swap_status_msg {
enum memcg_type type;
struct memcg_info *info;
}
#endif
+struct swap_module_ops {
+ char *name;
+ enum swap_type type;
+ char *path;
+ int priority;
+ unsigned int k_size;
+ int (*init)(void *data);
+ int (*exit) (void *data);
+ int (*activate)(void *data);
+ int (*reclaim)(void *data);
+};
+
+void swap_add(const struct swap_module_ops *swap);
+void swap_remove(const struct swap_module_ops *swap);
+
+#define SWAP_MODLE_REGISTER(swap) \
+static void __attribute__ ((constructor)) swap_module_register(void) \
+{ \
+ swap_add(swap); \
+} \
+static void __attribute__ ((destructor)) swap_module_unregister(void) \
+{ \
+ swap_remove(swap); \
+}
+
#endif /* __SWAP_COMMON_H__ */
#define SWAP_OFF_EXEC_PATH "/sbin/swapoff"
#define SWAP_MKSWAP_EXEC_PATH "/sbin/mkswap"
-#define SWAP_CONF_FILE RD_CONFIG_FILE(swap)
#define SWAP_CONTROL_SECTION "CONTROL"
#define SWAP_CONF_ENABLE "SWAP_ENABLE"
#define SWAP_CONF_STREAMS "MAX_COMP_STREAMS"