00001
00002
00003
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
00026 #endif
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
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,
00045 &dummy_2,
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
00056 # endif
00057 #else
00058 ACE_UNUSED_ARG (who);
00059 ACE_UNUSED_ARG (ru);
00060 ACE_NOTSUP_RETURN (-1);
00061 #endif
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
00085 # else
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
00092 # endif
00093 #endif
00094 }
00095
00096 ACE_END_VERSIONED_NAMESPACE_DECL