diff options
Diffstat (limited to 'ACE/ace/OS_NS_unistd.inl')
-rw-r--r-- | ACE/ace/OS_NS_unistd.inl | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/ACE/ace/OS_NS_unistd.inl b/ACE/ace/OS_NS_unistd.inl index 9019916acae..035f19baf11 100644 --- a/ACE/ace/OS_NS_unistd.inl +++ b/ACE/ace/OS_NS_unistd.inl @@ -28,6 +28,10 @@ # endif #endif +#ifdef ACE_MQX +# include "ace/MQX_Filesystem.h" +#endif + ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE int @@ -191,6 +195,8 @@ ACE_OS::close (ACE_HANDLE handle) ACE_OS_TRACE ("ACE_OS::close"); #if defined (ACE_WIN32) ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (handle), ace_result_), int, -1); +#elif defined (ACE_MQX) + return MQX_Filesystem::inst ().close (handle); #else ACE_OSCALL_RETURN (::close (handle), int, -1); #endif /* ACE_WIN32 */ @@ -397,6 +403,8 @@ ACE_OS::ftruncate (ACE_HANDLE handle, ACE_OFF_T offset) ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetEndOfFile (handle), ace_result_), int, -1); else ACE_FAIL_RETURN (-1); +#elif defined (ACE_LACKS_FTRUNCATE) + ACE_NOTSUP_RETURN (-1); #else ACE_OSCALL_RETURN (::ftruncate (handle, offset), int, -1); #endif /* ACE_WIN32 */ @@ -410,12 +418,10 @@ ACE_OS::getcwd (char *buf, size_t size) ACE_UNUSED_ARG (buf); ACE_UNUSED_ARG (size); ACE_NOTSUP_RETURN (0); -#elif defined (ACE_WIN32) -# if defined (ACE_GETCWD_EQUIVALENT) +#elif defined (ACE_GETCWD_EQUIVALENT) return ACE_GETCWD_EQUIVALENT (buf, static_cast<int> (size)); -# else +#elif defined (ACE_WIN32) return ::getcwd (buf, static_cast<int> (size)); -# endif #else ACE_OSCALL_RETURN (::getcwd (buf, size), char *, 0); #endif /* ACE_LACKS_GETCWD */ @@ -573,6 +579,17 @@ ACE_OS::hostname (char name[], size_t maxnamelen) LPDWORD (&maxnamelen)), ace_result_), int, -1); } +#elif defined (ACE_MQX) + const int enet_device = 0; + IPCFG_IP_ADDRESS_DATA ip_data; + if (ipcfg_get_ip (enet_device, &ip_data)) + { + ACE_OS::snprintf(name, maxnamelen, "%d.%d.%d.%d", IPBYTES(ip_data.ip)); + return 0; + } + return -1; +#elif defined (ACE_LACKS_GETHOSTNAME) + ACE_NOTSUP_RETURN (-1); #else /* ACE_HAS_PHARLAP */ ACE_utsname host_info; @@ -675,6 +692,23 @@ ACE_OS::lseek (ACE_HANDLE handle, ACE_OFF_T offset, int whence) ACE_FAIL_RETURN (static_cast<ACE_OFF_T> (-1)); else return result; +#elif defined (ACE_MQX) + switch (whence) + { + case SEEK_SET: + whence = IO_SEEK_SET; + break; + case SEEK_CUR: + whence = IO_SEEK_CUR; + break; + case SEEK_END: + whence = IO_SEEK_END; + break; + default: + errno = EINVAL; + return static_cast<ACE_OFF_T> (-1); + } + return static_cast<ACE_OFF_T> (MQX_Filesystem::inst ().lseek (handle, offset, whence)); #else ACE_OSCALL_RETURN (::lseek (handle, offset, whence), ACE_OFF_T, -1); #endif /* ACE_WIN32 */ @@ -737,6 +771,10 @@ ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len) return (ssize_t) ok_len; else ACE_FAIL_RETURN (-1); + +#elif defined (ACE_MQX) + return MQX_Filesystem::inst ().read (handle, reinterpret_cast<unsigned char *> (buf), len); + #else ssize_t result; @@ -945,6 +983,9 @@ ACE_OS::sleep (u_int seconds) #elif defined (ACE_WIN32) ::Sleep (seconds * ACE_ONE_SECOND_IN_MSECS); return 0; +#elif defined (ACE_MQX) + _time_delay (seconds * ACE_ONE_SECOND_IN_MSECS); + return 0; #else ACE_OSCALL_RETURN (::sleep (seconds), int, -1); #endif /* ACE_WIN32 */ @@ -957,6 +998,9 @@ ACE_OS::sleep (const ACE_Time_Value &tv) #if defined (ACE_WIN32) ::Sleep (tv.msec ()); return 0; +#elif defined (ACE_MQX) + _time_delay (tv.msec ()); + return 0; #elif defined (ACE_HAS_CLOCK_GETTIME) timespec_t rqtp = tv; //FUZZ: disable check_for_lack_ACE_OS @@ -1220,6 +1264,8 @@ ACE_OS::write (ACE_HANDLE handle, const void *buf, size_t nbyte) return (ssize_t) bytes_written; else ACE_FAIL_RETURN (-1); +#elif defined (ACE_MQX) + return MQX_Filesystem::inst ().write (handle, reinterpret_cast<const unsigned char *> (buf), nbyte); #else # if defined (ACE_HAS_CHARPTR_SOCKOPT) ACE_OSCALL_RETURN (::write (handle, static_cast <char *> (const_cast <void *> (buf)), nbyte), ssize_t, -1); |