(define-module (glicid system file-systems)
  #:use-module (gnu system file-systems)
  #:export (%control-groups)
)

(define %control-groups
  (let
    ((parent (file-system
      (device "cgroup")
      (mount-point "/sys/fs/cgroup")
      (type "tmpfs")
      (check? #f)
    )))
    (cons parent
      (map (lambda (subsystem)
                    (file-system
                      (device "cgroup")
                      (mount-point (string-append "/sys/fs/cgroup/" subsystem))
                      (type "cgroup")
                      (check? #f)
                      (options subsystem)
                      (create-mount-point? #t)
                      (dependencies (list parent))
                    )
          )
          '("blkio" "cpu" "cpuacct" "cpuset" "devices" "freezer" "hugetlb"
            "memory" "net_cls" "net_prio" "perf_event" "pids" "systemd")
      )
    )
  )
)

