diff --git a/libprocessgroup/cgrouprc/a_cgroup_controller.cpp b/libprocessgroup/cgrouprc/a_cgroup_controller.cpp index 5a326e55d..889b3becf 100644 --- a/libprocessgroup/cgrouprc/a_cgroup_controller.cpp +++ b/libprocessgroup/cgrouprc/a_cgroup_controller.cpp @@ -32,6 +32,11 @@ uint32_t ACgroupController_getFlags(const ACgroupController* controller) { return controller->flags(); } +uint32_t ACgroupController_getMaxActivationDepth(const ACgroupController* controller) { + CHECK(controller != nullptr); + return controller->max_activation_depth(); +} + const char* ACgroupController_getName(const ACgroupController* controller) { CHECK(controller != nullptr); return controller->name(); diff --git a/libprocessgroup/cgrouprc/include/android/cgrouprc.h b/libprocessgroup/cgrouprc/include/android/cgrouprc.h index e704a36aa..3a57df547 100644 --- a/libprocessgroup/cgrouprc/include/android/cgrouprc.h +++ b/libprocessgroup/cgrouprc/include/android/cgrouprc.h @@ -78,6 +78,14 @@ __attribute__((warn_unused_result)) uint32_t ACgroupController_getVersion(const __attribute__((warn_unused_result, weak)) uint32_t ACgroupController_getFlags( const ACgroupController*) __INTRODUCED_IN(30); +/** + * Returns the maximum activation depth of the given controller. + * Only applicable to cgroup v2 controllers. + * Returns UINT32_MAX if no maximum activation depth is set. + */ +__attribute__((warn_unused_result, weak)) uint32_t ACgroupController_getMaxActivationDepth( + const ACgroupController* controller) __INTRODUCED_IN(36); + /** * Returns the name of the given controller. * If the given controller is null, return nullptr. diff --git a/libprocessgroup/cgrouprc/libcgrouprc.map.txt b/libprocessgroup/cgrouprc/libcgrouprc.map.txt index b62b10f3b..30bd25f18 100644 --- a/libprocessgroup/cgrouprc/libcgrouprc.map.txt +++ b/libprocessgroup/cgrouprc/libcgrouprc.map.txt @@ -16,3 +16,10 @@ LIBCGROUPRC_30 { # introduced=30 local: *; }; + +LIBCGROUPRC_36 { # introduced=36 + global: + ACgroupController_getMaxActivationDepth; # llndk=202504 systemapi + local: + *; +};