OS_NS_sys_resource.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // OS_NS_sys_resource.inl,v 1.8 2006/03/28 15:08:36 schmidt Exp
00004 
00005 #include "ace/OS_NS_errno.h"
00006 #include "ace/OS_NS_macros.h"
00007 
00008 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00009 
00010 ACE_INLINE int
00011 ACE_OS::getrlimit (int resource, struct rlimit *rl)
00012 {
00013   ACE_OS_TRACE ("ACE_OS::getrlimit");
00014 
00015 #if defined (ACE_LACKS_RLIMIT)
00016   ACE_UNUSED_ARG (resource);
00017   ACE_UNUSED_ARG (rl);
00018 
00019   ACE_NOTSUP_RETURN (-1);
00020 #else
00021 # if defined (ACE_HAS_RLIMIT_RESOURCE_ENUM)
00022   ACE_OSCALL_RETURN (::getrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource, rl), int, -1);
00023 # else
00024   ACE_OSCALL_RETURN (::getrlimit (resource, rl), int, -1);
00025 # endif /* ACE_HAS_RLIMIT_RESOURCE_ENUM */
00026 #endif /* ACE_LACKS_RLIMIT */
00027 }
00028 
00029 ACE_INLINE int
00030 ACE_OS::getrusage (int who, struct rusage *ru)
00031 {
00032   ACE_OS_TRACE ("ACE_OS::getrusage");
00033 
00034 #if defined (ACE_HAS_SYSCALL_GETRUSAGE)
00035   // This nonsense is necessary for HP/UX...
00036   ACE_OSCALL_RETURN (::syscall (SYS_GETRUSAGE, who, ru), int, -1);
00037 #elif defined (ACE_HAS_GETRUSAGE)
00038 # if defined (ACE_WIN32)
00039   ACE_UNUSED_ARG (who);
00040 
00041   FILETIME dummy_1;
00042   FILETIME dummy_2;
00043   ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::GetProcessTimes (::GetCurrentProcess(),
00044                                                              &dummy_1,   // start
00045                                                              &dummy_2,     // exited
00046                                                              &ru->ru_stime,
00047                                                              &ru->ru_utime),
00048                                           ace_result_),
00049                         int, -1);
00050 # else
00051 #   if defined (ACE_HAS_RUSAGE_WHO_ENUM)
00052   ACE_OSCALL_RETURN (::getrusage ((ACE_HAS_RUSAGE_WHO_ENUM) who, ru), int, -1);
00053 #   else
00054   ACE_OSCALL_RETURN (::getrusage (who, ru), int, -1);
00055 #   endif /* ACE_HAS_RUSAGE_WHO_ENUM */
00056 # endif /* ACE_WIN32 */
00057 #else
00058   ACE_UNUSED_ARG (who);
00059   ACE_UNUSED_ARG (ru);
00060   ACE_NOTSUP_RETURN (-1);
00061 #endif /* ACE_HAS_SYSCALL_GETRUSAGE */
00062 }
00063 
00064 ACE_INLINE int
00065 ACE_OS::setrlimit (int resource, const struct rlimit *rl)
00066 {
00067   ACE_OS_TRACE ("ACE_OS::setrlimit");
00068 
00069 #if defined (ACE_LACKS_RLIMIT)
00070   ACE_UNUSED_ARG (resource);
00071   ACE_UNUSED_ARG (rl);
00072 
00073   ACE_NOTSUP_RETURN (-1);
00074 #else
00075 # if defined (ACE_HAS_RLIMIT_RESOURCE_ENUM)
00076 #  if defined (ACE_HAS_NONCONST_SETRLIMIT)
00077   ACE_OSCALL_RETURN (::setrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource,
00078                                   const_cast<struct rlimit *>(rl)
00079                                   ), int, -1);
00080 # else
00081   ACE_OSCALL_RETURN (::setrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource,
00082                                   rl
00083                                   ), int, -1);
00084 #  endif /* ACE_HAS_NONCONST_SETRLIMIT */
00085 # else /* ACE_HAS_RLIMIT_RESOURCE_ENUM */
00086 #  if defined (ACE_HAS_NONCONST_SETRLIMIT)
00087   ACE_OSCALL_RETURN (::setrlimit (resource, const_cast<struct rlimit *>(rl)
00088                                   ), int, -1);
00089 #  else
00090   ACE_OSCALL_RETURN (::setrlimit (resource, rl), int, -1);
00091 #  endif /* ACE_HAS_NONCONST_SETRLIMIT */
00092 # endif /* ACE_HAS_RLIMIT_RESOURCE_ENUM */
00093 #endif /* ACE_LACKS_RLIMIT */
00094 }
00095 
00096 ACE_END_VERSIONED_NAMESPACE_DECL

Generated on Thu Nov 9 09:41:58 2006 for ACE by doxygen 1.3.6