forked from OSchip/llvm-project
Host::GetOSBuildString
This commit is contained in:
parent
49e1753c5e
commit
8b8070e234
|
@ -18,7 +18,7 @@ namespace lldb_private {
|
|||
class HostInfoFreeBSD : public HostInfoPosix {
|
||||
public:
|
||||
static llvm::VersionTuple GetOSVersion();
|
||||
static bool GetOSBuildString(std::string &s);
|
||||
static llvm::Optional<std::string> GetOSBuildString();
|
||||
static bool GetOSKernelDescription(std::string &s);
|
||||
static FileSpec GetProgramFileSpec();
|
||||
};
|
||||
|
|
|
@ -26,7 +26,7 @@ public:
|
|||
static void Terminate();
|
||||
|
||||
static llvm::VersionTuple GetOSVersion();
|
||||
static bool GetOSBuildString(std::string &s);
|
||||
static llvm::Optional<std::string> GetOSBuildString();
|
||||
static bool GetOSKernelDescription(std::string &s);
|
||||
static llvm::StringRef GetDistributionId();
|
||||
static FileSpec GetProgramFileSpec();
|
||||
|
|
|
@ -24,7 +24,7 @@ class HostInfoMacOSX : public HostInfoPosix {
|
|||
public:
|
||||
static llvm::VersionTuple GetOSVersion();
|
||||
static llvm::VersionTuple GetMacCatalystVersion();
|
||||
static bool GetOSBuildString(std::string &s);
|
||||
static llvm::Optional<std::string> GetOSBuildString();
|
||||
static bool GetOSKernelDescription(std::string &s);
|
||||
static FileSpec GetProgramFileSpec();
|
||||
static FileSpec GetXcodeContentsDirectory();
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace lldb_private {
|
|||
class HostInfoNetBSD : public HostInfoPosix {
|
||||
public:
|
||||
static llvm::VersionTuple GetOSVersion();
|
||||
static bool GetOSBuildString(std::string &s);
|
||||
static llvm::Optional<std::string> GetOSBuildString();
|
||||
static bool GetOSKernelDescription(std::string &s);
|
||||
static FileSpec GetProgramFileSpec();
|
||||
};
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace lldb_private {
|
|||
class HostInfoOpenBSD : public HostInfoPosix {
|
||||
public:
|
||||
static llvm::VersionTuple GetOSVersion();
|
||||
static bool GetOSBuildString(std::string &s);
|
||||
static llvm::Optional<std::string> GetOSBuildString();
|
||||
static bool GetOSKernelDescription(std::string &s);
|
||||
static FileSpec GetProgramFileSpec();
|
||||
};
|
||||
|
|
|
@ -27,7 +27,7 @@ public:
|
|||
static UserIDResolver &GetUserIDResolver();
|
||||
|
||||
static llvm::VersionTuple GetOSVersion();
|
||||
static bool GetOSBuildString(std::string &s);
|
||||
static llvm::Optional<std::string> GetOSBuildString();
|
||||
static bool GetOSKernelDescription(std::string &s);
|
||||
static bool GetHostname(std::string &s);
|
||||
static FileSpec GetProgramFileSpec();
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "lldb/Host/freebsd/HostInfoFreeBSD.h"
|
||||
|
||||
#include "llvm/Support/FormatVariadic.h"
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
#include <sys/sysctl.h>
|
||||
|
@ -30,20 +30,16 @@ llvm::VersionTuple HostInfoFreeBSD::GetOSVersion() {
|
|||
return llvm::VersionTuple();
|
||||
}
|
||||
|
||||
bool HostInfoFreeBSD::GetOSBuildString(std::string &s) {
|
||||
llvm::Optional<std::string> HostInfoFreeBSD::GetOSBuildString() {
|
||||
int mib[2] = {CTL_KERN, KERN_OSREV};
|
||||
char osrev_str[12];
|
||||
uint32_t osrev = 0;
|
||||
size_t osrev_len = sizeof(osrev);
|
||||
|
||||
if (::sysctl(mib, 2, &osrev, &osrev_len, NULL, 0) == 0) {
|
||||
::snprintf(osrev_str, sizeof(osrev_str), "%-8.8u", osrev);
|
||||
s.assign(osrev_str);
|
||||
return true;
|
||||
}
|
||||
if (::sysctl(mib, 2, &osrev, &osrev_len, NULL, 0) == 0)
|
||||
return llvm::formatv("{0,8:8}", osrev).str();
|
||||
|
||||
s.clear();
|
||||
return false;
|
||||
return llvm::None;
|
||||
}
|
||||
|
||||
bool HostInfoFreeBSD::GetOSKernelDescription(std::string &s) {
|
||||
|
|
|
@ -65,16 +65,14 @@ llvm::VersionTuple HostInfoLinux::GetOSVersion() {
|
|||
return g_fields->m_os_version;
|
||||
}
|
||||
|
||||
bool HostInfoLinux::GetOSBuildString(std::string &s) {
|
||||
llvm::Optional<std::string> HostInfoLinux::GetOSBuildString() {
|
||||
struct utsname un;
|
||||
::memset(&un, 0, sizeof(utsname));
|
||||
s.clear();
|
||||
|
||||
if (uname(&un) < 0)
|
||||
return false;
|
||||
return llvm::None;
|
||||
|
||||
s.assign(un.release);
|
||||
return true;
|
||||
return std::string(un.release);
|
||||
}
|
||||
|
||||
bool HostInfoLinux::GetOSKernelDescription(std::string &s) {
|
||||
|
|
|
@ -55,17 +55,14 @@
|
|||
|
||||
using namespace lldb_private;
|
||||
|
||||
bool HostInfoMacOSX::GetOSBuildString(std::string &s) {
|
||||
llvm::Optional<std::string> HostInfoMacOSX::GetOSBuildString() {
|
||||
int mib[2] = {CTL_KERN, KERN_OSVERSION};
|
||||
char cstr[PATH_MAX];
|
||||
size_t cstr_len = sizeof(cstr);
|
||||
if (::sysctl(mib, 2, cstr, &cstr_len, NULL, 0) == 0) {
|
||||
s.assign(cstr, cstr_len);
|
||||
return true;
|
||||
}
|
||||
if (::sysctl(mib, 2, cstr, &cstr_len, NULL, 0) == 0)
|
||||
return std::string(cstr, cstr_len);
|
||||
|
||||
s.clear();
|
||||
return false;
|
||||
return llvm::None;
|
||||
}
|
||||
|
||||
bool HostInfoMacOSX::GetOSKernelDescription(std::string &s) {
|
||||
|
|
|
@ -42,20 +42,16 @@ llvm::VersionTuple HostInfoNetBSD::GetOSVersion() {
|
|||
return llvm::VersionTuple();
|
||||
}
|
||||
|
||||
bool HostInfoNetBSD::GetOSBuildString(std::string &s) {
|
||||
llvm::Optional<std::string> HostInfoNetBSD::GetOSBuildString() {
|
||||
int mib[2] = {CTL_KERN, KERN_OSREV};
|
||||
char osrev_str[12];
|
||||
int osrev = 0;
|
||||
size_t osrev_len = sizeof(osrev);
|
||||
|
||||
if (::sysctl(mib, 2, &osrev, &osrev_len, NULL, 0) == 0) {
|
||||
::snprintf(osrev_str, sizeof(osrev_str), "%-10.10d", osrev);
|
||||
s.assign(osrev_str);
|
||||
return true;
|
||||
}
|
||||
if (::sysctl(mib, 2, &osrev, &osrev_len, NULL, 0) == 0)
|
||||
return llvm::formatv("{0,10:10}", osrev).str();
|
||||
|
||||
s.clear();
|
||||
return false;
|
||||
return llvm::None;
|
||||
}
|
||||
|
||||
bool HostInfoNetBSD::GetOSKernelDescription(std::string &s) {
|
||||
|
|
|
@ -267,12 +267,12 @@ GDBRemoteCommunicationServerCommon::Handle_qHostInfo(
|
|||
}
|
||||
#endif
|
||||
|
||||
std::string s;
|
||||
if (HostInfo::GetOSBuildString(s)) {
|
||||
if (llvm::Optional<std::string> s = HostInfo::GetOSBuildString()) {
|
||||
response.PutCString("os_build:");
|
||||
response.PutStringAsRawHex8(s);
|
||||
response.PutStringAsRawHex8(*s);
|
||||
response.PutChar(';');
|
||||
}
|
||||
std::string s;
|
||||
if (HostInfo::GetOSKernelDescription(s)) {
|
||||
response.PutCString("os_kernel:");
|
||||
response.PutStringAsRawHex8(s);
|
||||
|
|
|
@ -487,10 +487,12 @@ llvm::VersionTuple Platform::GetOSVersion(Process *process) {
|
|||
}
|
||||
|
||||
bool Platform::GetOSBuildString(std::string &s) {
|
||||
if (IsHost()) {
|
||||
llvm::Optional<std::string> str = HostInfo::GetOSBuildString();
|
||||
s = str.getValueOr("");
|
||||
return str.hasValue();
|
||||
}
|
||||
s.clear();
|
||||
|
||||
if (IsHost())
|
||||
return HostInfo::GetOSBuildString(s);
|
||||
return GetRemoteOSBuildString(s);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue