summaryrefslogtreecommitdiff
path: root/ACE/ace/OS_NS_sys_utsname.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/OS_NS_sys_utsname.cpp')
-rw-r--r--ACE/ace/OS_NS_sys_utsname.cpp51
1 files changed, 25 insertions, 26 deletions
diff --git a/ACE/ace/OS_NS_sys_utsname.cpp b/ACE/ace/OS_NS_sys_utsname.cpp
index f2e6db46560..00ae563e431 100644
--- a/ACE/ace/OS_NS_sys_utsname.cpp
+++ b/ACE/ace/OS_NS_sys_utsname.cpp
@@ -2,8 +2,9 @@
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_errno.h"
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_UNAME)
+#if defined (ACE_VXWORKS) && defined (ACE_LACKS_UNAME) && !defined (__RTP__)
// for sysBspRev(), sysModel()
# include /**/ <sysLib.h>
// for kernelVersion()
@@ -65,14 +66,14 @@ ACE_OS::uname (ACE_utsname *name)
os = "Windows NT %d.%d";
else
os = "Windows CE %d.%d";
- ACE_OS::sprintf (name->release,
- os,
- (int) vinfo.dwMajorVersion,
- (int) vinfo.dwMinorVersion);
- ACE_OS::sprintf (name->version,
- "Build %d %s",
- (int) vinfo.dwBuildNumber,
- ACE_TEXT_ALWAYS_CHAR (vinfo.szCSDVersion));
+ ACE_OS::snprintf (name->release, maxnamelen,
+ os,
+ (int) vinfo.dwMajorVersion,
+ (int) vinfo.dwMinorVersion);
+ ACE_OS::snprintf (name->version, maxnamelen,
+ "Build %d %s",
+ (int) vinfo.dwBuildNumber,
+ ACE_TEXT_ALWAYS_CHAR (vinfo.szCSDVersion));
// We have to make sure that the size of (processor + subtype)
// is not greater than the size of name->machine. So we give
@@ -83,7 +84,7 @@ ACE_OS::uname (ACE_utsname *name)
char processor[bufsize] = "Unknown";
char subtype[bufsize] = "Unknown";
- WORD arch = sinfo.wProcessorArchitecture;
+ WORD arch = sinfo.wProcessorArchitecture;
switch (arch)
{
@@ -100,7 +101,7 @@ ACE_OS::uname (ACE_utsname *name)
else if (sinfo.wProcessorLevel == 7) // I'm guessing here
ACE_OS::strcpy (subtype, "Pentium II");
else
- ACE_OS::sprintf (subtype, "%d", sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
case PROCESSOR_ARCHITECTURE_MIPS:
ACE_OS::strcpy (processor, "MIPS");
@@ -109,11 +110,11 @@ ACE_OS::uname (ACE_utsname *name)
else if (sinfo.wProcessorLevel == 4)
ACE_OS::strcpy (subtype, "R4000");
else
- ACE_OS::sprintf (subtype, "%d", sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
case PROCESSOR_ARCHITECTURE_ALPHA:
ACE_OS::strcpy (processor, "Alpha");
- ACE_OS::sprintf (subtype, "%d", sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
case PROCESSOR_ARCHITECTURE_PPC:
ACE_OS::strcpy (processor, "PPC");
@@ -133,29 +134,25 @@ ACE_OS::uname (ACE_utsname *name)
# if defined PROCESSOR_ARCHITECTURE_IA64
case PROCESSOR_ARCHITECTURE_IA64:
ACE_OS::strcpy (processor, "Itanium");
- ACE_OS::sprintf (subtype, "%d",
- sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
# endif
# if defined PROCESSOR_ARCHITECTURE_AMD64
case PROCESSOR_ARCHITECTURE_AMD64:
ACE_OS::strcpy (processor, "x64");
- ACE_OS::sprintf (subtype, "%d",
- sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
# endif
# if defined PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
ACE_OS::strcpy (processor, "WOW64");
- ACE_OS::sprintf (subtype, "%d",
- sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
# endif
# if defined PROCESSOR_ARCHITECTURE_ARM
case PROCESSOR_ARCHITECTURE_ARM:
ACE_OS::strcpy (processor, "ARM");
- ACE_OS::sprintf (subtype, "%d",
- sinfo.wProcessorLevel);
+ ACE_OS::snprintf (subtype, bufsize, "%d", sinfo.wProcessorLevel);
break;
# endif
case PROCESSOR_ARCHITECTURE_UNKNOWN:
@@ -165,9 +162,7 @@ ACE_OS::uname (ACE_utsname *name)
ACE_OS::strcpy (processor, "Unknown");
break;
}
- ACE_OS::sprintf (name->machine,
- "%s %s",
- processor, subtype);
+ ACE_OS::snprintf (name->machine, maxnamelen, "%s %s", processor, subtype);
}
else if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
@@ -192,7 +187,8 @@ ACE_OS::uname (ACE_utsname *name)
ACE_OS::strcpy (name->release, unknown);
}
- ACE_OS::sprintf (name->version, "%d", LOWORD (vinfo.dwBuildNumber));
+ ACE_OS::snprintf (name->version, maxnamelen, "%d",
+ LOWORD (vinfo.dwBuildNumber));
if (sinfo.dwProcessorType == PROCESSOR_INTEL_386)
ACE_OS::strcpy (name->machine, "Intel 80386");
else if (sinfo.dwProcessorType == PROCESSOR_INTEL_486)
@@ -218,7 +214,7 @@ ACE_OS::uname (ACE_utsname *name)
return ACE_OS::hostname (name->nodename, maxnamelen);
# endif /* ACE_LACKS_HOSTNAME */
-#elif defined (ACE_VXWORKS)
+#elif defined (ACE_VXWORKS) && !defined (__RTP__)
size_t const maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname, "VxWorks");
ACE_OS::strcpy (name->release, kernelVersion());
@@ -237,6 +233,9 @@ ACE_OS::uname (ACE_utsname *name)
strcpy(name->version,"4.0.9");
strcpy(name->machine,"a standard name");
return status;
+#else
+ ACE_UNUSED_ARG (name);
+ ACE_NOTSUP_RETURN (-1);
#endif /* ACE_WIN32 */
}