summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/hostinfo.cc29
-rw-r--r--base/hostinfo.hh4
2 files changed, 29 insertions, 4 deletions
diff --git a/base/hostinfo.cc b/base/hostinfo.cc
index 5efb77356..cb5c04efc 100644
--- a/base/hostinfo.cc
+++ b/base/hostinfo.cc
@@ -26,16 +26,37 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <math.h>
+#include <unistd.h>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <string>
+
+#include "base/misc.hh"
#include "sim/host.hh"
+using namespace std;
+
+string
+__get_hostname()
+{
+ char host[256];
+ if (gethostname(host, sizeof host) == -1)
+ warn("could not get host name!");
+ return host;
+}
+
+string &
+hostname()
+{
+ static string hostname = __get_hostname();
+ return hostname;
+}
+
uint64_t
procInfo(char *filename, char *target)
{
diff --git a/base/hostinfo.hh b/base/hostinfo.hh
index 2293d2b6a..453a1e69a 100644
--- a/base/hostinfo.hh
+++ b/base/hostinfo.hh
@@ -29,8 +29,12 @@
#ifndef __HOSTINFO_HH__
#define __HOSTINFO_HH__
+#include <string>
+
#include "sim/host.hh"
+std::string &hostname();
+
uint64_t procInfo(char *filename, char *target);
inline uint64_t memUsage()