int pakfire_cgroup_fd(struct pakfire_cgroup* cgroup) {
return cgroup->fd;
}
+
+// Memory
+
+int pakfire_cgroup_set_guaranteed_memory(struct pakfire_cgroup* cgroup, size_t mem) {
+ int r;
+
+ // Enable memory controller
+ r = pakfire_cgroup_enable_controllers(cgroup, PAKFIRE_CGROUP_CONTROLLER_MEMORY);
+ if (r)
+ return r;
+
+ DEBUG(cgroup->pakfire, "%s: Setting guaranteed memory to %zu byte(s)\n",
+ pakfire_cgroup_name(cgroup), mem);
+
+ // Set value
+ r = pakfire_cgroup_write(cgroup, "memory.min", "%zu\n", mem);
+ if (r)
+ ERROR(cgroup->pakfire, "%s: Could not set guaranteed memory: %m\n",
+ pakfire_cgroup_name(cgroup));
+
+ return r;
+}
+
+int pakfire_cgroup_set_memory_limit(struct pakfire_cgroup* cgroup, size_t mem) {
+ int r;
+
+ // Enable memory controller
+ r = pakfire_cgroup_enable_controllers(cgroup, PAKFIRE_CGROUP_CONTROLLER_MEMORY);
+ if (r)
+ return r;
+
+ DEBUG(cgroup->pakfire, "%s: Setting memory limit to %zu byte(s)\n",
+ pakfire_cgroup_name(cgroup), mem);
+
+ // Set value
+ r = pakfire_cgroup_write(cgroup, "memory.max", "%zu\n", mem);
+ if (r)
+ ERROR(cgroup->pakfire, "%s: Could not set memory limit: %m\n",
+ pakfire_cgroup_name(cgroup));
+
+ return r;
+}
int pakfire_cgroup_fd(struct pakfire_cgroup* cgroup);
+// Memory
+int pakfire_cgroup_set_guaranteed_memory(struct pakfire_cgroup* cgroup, size_t mem);
+int pakfire_cgroup_set_memory_limit(struct pakfire_cgroup* cgroup, size_t mem);
+
#endif /* PAKFIRE_PRIVATE */
#endif /* PAKFIRE_CGROUP_H */