mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Add llvm::sys::{osName,osVersion} for retrieving operating system name
& version as strings. - Win32 code is untested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56942 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0b3baaa7fb
commit
bb14672097
@ -14,6 +14,8 @@
|
|||||||
#ifndef LLVM_SYSTEM_HOST_H
|
#ifndef LLVM_SYSTEM_HOST_H
|
||||||
#define LLVM_SYSTEM_HOST_H
|
#define LLVM_SYSTEM_HOST_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
namespace sys {
|
namespace sys {
|
||||||
|
|
||||||
@ -30,6 +32,13 @@ namespace sys {
|
|||||||
return !littleEndianHost();
|
return !littleEndianHost();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// osName() - Return the name of the host operating system or "" if
|
||||||
|
/// unknown.
|
||||||
|
std::string osName();
|
||||||
|
|
||||||
|
/// osVersion() - Return the operating system version as a string or
|
||||||
|
/// "" if unknown.
|
||||||
|
std::string osVersion();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
24
lib/System/Host.cpp
Normal file
24
lib/System/Host.cpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
//===-- Host.cpp - Implement OS Host Concept --------------------*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This header file implements the operating system Host concept.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "llvm/System/Host.h"
|
||||||
|
#include "llvm/Config/config.h"
|
||||||
|
|
||||||
|
// Include the platform-specific parts of this class.
|
||||||
|
#ifdef LLVM_ON_UNIX
|
||||||
|
#include "Unix/Host.inc"
|
||||||
|
#endif
|
||||||
|
#ifdef LLVM_ON_WIN32
|
||||||
|
#include "Win32/Host.inc"
|
||||||
|
#endif
|
||||||
|
|
42
lib/System/Unix/Host.inc
Normal file
42
lib/System/Unix/Host.inc
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
//===- llvm/System/Unix/Host.inc --------------------------------*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file implements the UNIX Host support.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//=== WARNING: Implementation here must contain only generic UNIX code that
|
||||||
|
//=== is guaranteed to work on *all* UNIX variants.
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include <llvm/Config/config.h>
|
||||||
|
#include "Unix.h"
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
std::string llvm::sys::osName() {
|
||||||
|
struct utsname info;
|
||||||
|
|
||||||
|
if (uname(&info))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
return info.sysname;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string llvm::sys::osVersion() {
|
||||||
|
struct utsname info;
|
||||||
|
|
||||||
|
if (uname(&info))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
return info.release;
|
||||||
|
}
|
35
lib/System/Win32/Host.inc
Normal file
35
lib/System/Win32/Host.inc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
//===- llvm/System/Win32/Host.inc -------------------------------*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file implements the Win32 Host support.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "Win32.h"
|
||||||
|
#include <cstdio>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
std::string sys::osName() {
|
||||||
|
return "Windows";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string sys::osVersion() {
|
||||||
|
OSVERSIONINFO osvi = { 0 };
|
||||||
|
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||||
|
|
||||||
|
if (!GetVersionEx(&osvi))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
char buf[64];
|
||||||
|
sprintf(buf, "%d.%d", osvi.dwMajorVersion, osvi.dwMinorVersion);
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user