1*6777b538SAndroid Build Coastguard Worker // Copyright 2023 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_POSIX_SYSCTL_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_POSIX_SYSCTL_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <initializer_list> 9*6777b538SAndroid Build Coastguard Worker #include <optional> 10*6777b538SAndroid Build Coastguard Worker #include <string> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h" 13*6777b538SAndroid Build Coastguard Worker #include "build/build_config.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker // NB: While a BSD utility file, this lives in /base/posix/ for simplicity as 16*6777b538SAndroid Build Coastguard Worker // there is no /base/bsd/. 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker namespace base { 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker // Returns the value returned by `sysctl` as a std::string, or nullopt on error. 21*6777b538SAndroid Build Coastguard Worker BASE_EXPORT std::optional<std::string> StringSysctl( 22*6777b538SAndroid Build Coastguard Worker const std::initializer_list<int>& mib); 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker #if !BUILDFLAG(IS_OPENBSD) 25*6777b538SAndroid Build Coastguard Worker // Returns the value returned by `sysctlbyname` as a std::string, or nullopt 26*6777b538SAndroid Build Coastguard Worker // on error. 27*6777b538SAndroid Build Coastguard Worker BASE_EXPORT std::optional<std::string> StringSysctlByName(const char* name); 28*6777b538SAndroid Build Coastguard Worker #endif 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker } // namespace base 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker #endif // BASE_POSIX_SYSCTL_H_ 33