summaryrefslogtreecommitdiff
path: root/ace/OS_NS_sys_utsname.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/OS_NS_sys_utsname.cpp')
-rw-r--r--ace/OS_NS_sys_utsname.cpp54
1 files changed, 17 insertions, 37 deletions
diff --git a/ace/OS_NS_sys_utsname.cpp b/ace/OS_NS_sys_utsname.cpp
index ea4e96c1348..be9c24a089c 100644
--- a/ace/OS_NS_sys_utsname.cpp
+++ b/ace/OS_NS_sys_utsname.cpp
@@ -1,27 +1,32 @@
+// -*- C++ -*-
// $Id$
#include "ace/OS_NS_sys_utsname.h"
ACE_RCSID(ace, OS_NS_sys_utsname, "$Id$")
+#if !defined (ACE_HAS_INLINED_OSCALLS)
+# include "ace/OS_NS_sys_utsname.inl"
+#endif /* ACE_HAS_INLINED_OS_CALLS */
+
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_UNAME)
+#if defined (VXWORKS)
// for sysBspRev(), sysModel()
-# include /**/ <sysLib.h>
-#endif /* ACE_VXWORKS && ACE_LACKS_UNAME */
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+# include /**/ <sysLib.h>
+#endif /* VXWORKS */
+#if defined (ACE_WIN32) || defined (VXWORKS) || defined (CHORUS) || defined (ACE_PSOS)
+// Don't inline on those platforms because this function contains
+// string literals, and some compilers, e.g., g++, don't handle those
+// efficiently in unused inline functions.
int
ACE_OS::uname (ACE_utsname *name)
{
ACE_OS_TRACE ("ACE_OS::uname");
-#if !defined (ACE_LACKS_UNAME)
- ACE_OSCALL_RETURN (::uname (name), int, -1);
-#elif defined (ACE_WIN32)
+# if defined (ACE_WIN32)
size_t maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname,
ACE_LIB_TEXT ("Win32"));
@@ -133,20 +138,6 @@ ACE_OS::uname (ACE_utsname *name)
sinfo.wProcessorLevel);
break;
# endif
-# if defined PROCESSOR_ARCHITECTURE_AMD64
- case PROCESSOR_ARCHITECTURE_AMD64:
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("x64"));
- ACE_OS::sprintf (subtype, ACE_LIB_TEXT ("%d"),
- sinfo.wProcessorLevel);
- break;
-# endif
-# if defined PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
- case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
- ACE_OS::strcpy (processor, ACE_LIB_TEXT ("WOW64"));
- ACE_OS::sprintf (subtype, ACE_LIB_TEXT ("%d"),
- sinfo.wProcessorLevel);
- break;
-# endif
# if defined PROCESSOR_ARCHITECTURE_ARM
case PROCESSOR_ARCHITECTURE_ARM:
ACE_OS::strcpy (processor, ACE_LIB_TEXT ("ARM"));
@@ -214,7 +205,7 @@ ACE_OS::uname (ACE_utsname *name)
return ACE_OS::hostname (name->nodename, maxnamelen);
# endif /* ACE_LACKS_HOSTNAME */
-#elif defined (ACE_VXWORKS)
+# elif defined (VXWORKS)
size_t maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname, "VxWorks");
ACE_OS::strcpy (name->release, "???");
@@ -222,7 +213,7 @@ ACE_OS::uname (ACE_utsname *name)
ACE_OS::strcpy (name->machine, sysModel ());
return ACE_OS::hostname (name->nodename, maxnamelen);
-#elif defined (CHORUS)
+# elif defined (CHORUS)
size_t maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname, "CHORUS/ClassiX");
ACE_OS::strcpy (name->release, "???");
@@ -239,18 +230,7 @@ ACE_OS::uname (ACE_utsname *name)
ACE_OS::strcpy (name->release, "???");
ACE_OS::strcpy (name->version, buf);
ACE_OS::strcpy (name->machine, "PPC 405"); // a bit of a hack
-#elif defined (INTEGRITY)
- if(!name) {
- errno = EFAULT;
- return -1;
- }
- strcpy(name->sysname,"INTEGRITY");
- int status = gethostname(name->nodename,_SYS_NMLN);
- strcpy(name->release,"4.0");
- strcpy(name->version,"4.0.9");
- strcpy(name->machine,"a standard name");
- return status;
+
#endif /* ACE_WIN32 */
}
-
-ACE_END_VERSIONED_NAMESPACE_DECL
+#endif /* ACE_WIN32 || VXWORKS */