ACgroupController_getFlags was reverted due to LLNDK breakage, however
it allows detection of cgroups that failed to mount in a more efficient
way. Revive the function as a weakly linked symbol to allow for it to
be missing in case older LLNDK library is being used with the new
system software. This effectively reverts the commit
aa1d54f0cc "Remove ACgroupController_getFlags to fix API breakage"'
except it declares ACgroupController_getFlags function as weak and
targets it for API level 30. If LLNKD library does not contain
ACgroupController_getFlags the behavior falls back to the current
way of identifying cgroups that failed to mount.
Test: build and verify correct operation with a missing cgroup
Change-Id: I9158ef53aba97972d41d71dd3396ac43796a7004
Merged-In: I9158ef53aba97972d41d71dd3396ac43796a7004
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
43 lines
1.4 KiB
C++
43 lines
1.4 KiB
C++
/*
|
|
* Copyright (C) 2019 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include <android-base/logging.h>
|
|
#include <android/cgrouprc.h>
|
|
|
|
#include "cgrouprc_internal.h"
|
|
|
|
// All ACgroupController_* functions implicitly convert the pointer back
|
|
// to the original CgroupController pointer before invoking the member functions.
|
|
|
|
uint32_t ACgroupController_getVersion(const ACgroupController* controller) {
|
|
CHECK(controller != nullptr);
|
|
return controller->version();
|
|
}
|
|
|
|
uint32_t ACgroupController_getFlags(const ACgroupController* controller) {
|
|
CHECK(controller != nullptr);
|
|
return controller->flags();
|
|
}
|
|
|
|
const char* ACgroupController_getName(const ACgroupController* controller) {
|
|
CHECK(controller != nullptr);
|
|
return controller->name();
|
|
}
|
|
|
|
const char* ACgroupController_getPath(const ACgroupController* controller) {
|
|
CHECK(controller != nullptr);
|
|
return controller->path();
|
|
}
|