00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef ACE_OS_NS_MACROS_H
00018 # define ACE_OS_NS_MACROS_H
00019 
00020 # include  "ace/pre.h"
00021 
00022 # include "ace/config-all.h"
00023 
00024 # if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 #  pragma once
00026 # endif 
00027 
00028 #if defined (ACE_WIN32)
00029 # define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) \
00030   do { TYPE ace_result_ = (TYPE) OP; \
00031       if (ace_result_ == FAILVALUE) { int ___ = ::WSAGetLastError (); errno = ___; return (TYPE) FAILVALUE; } else return ace_result_; \
00032   } while (0)
00033 # define ACE_SOCKCALL(OP,TYPE,FAILVALUE,RESULT) \
00034   do { RESULT = (TYPE) OP; \
00035       if (RESULT == FAILVALUE) { int ___ = ::WSAGetLastError (); errno = ___; RESULT = FAILVALUE; } \
00036   } while (0)
00037 #else
00038 # define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE)
00039 # define ACE_SOCKCALL(OP,TYPE,FAILVALUE,RESULT) ACE_OSCALL(OP,TYPE,FAILVALUE,RESULT)
00040 #endif 
00041 
00042 #if !defined (ACE_WIN32)
00043 
00044 
00045 
00046 
00047 
00048 # if defined (ACE_VXWORKS)
00049 #   define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) != OK ? (errno = RESULT, -1) : 0)
00050 # else
00051 #   define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) != 0 ? (errno = RESULT, -1) : 0)
00052 # endif 
00053 
00054 #else 
00055 
00056 
00057 
00058 # define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) == FALSE ? -1 : 0)
00059 
00060 
00061 # define ACE_FAIL_RETURN(RESULT) do { \
00062   switch (ACE_OS::set_errno_to_last_error ()) { \
00063   case ERROR_NOT_ENOUGH_MEMORY: errno = ENOMEM; break; \
00064   case ERROR_FILE_EXISTS:       errno = EEXIST; break; \
00065   case ERROR_SHARING_VIOLATION: errno = EACCES; break; \
00066   case ERROR_PATH_NOT_FOUND:    errno = ENOENT; break; \
00067   } \
00068   return RESULT; } while (0)
00069 
00070 #endif 
00071 
00072 
00073 
00074 
00075 
00076 #if defined(ACE_WIN32)
00077 #  if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)
00078 #    include "ace/Basic_Types.h"
00079 
00080 #    define ACE_LOW_PART(X) static_cast<DWORD>(X)
00081 
00082 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00083 LONG
00084 inline ACE_High_Part (ACE_OFF_T value)
00085 {
00086   LARGE_INTEGER new_value;
00087   new_value.QuadPart = value;
00088   return new_value.HighPart;
00089 }
00090 #    define ACE_HIGH_PART(X) ACE_High_Part(X)
00091 
00092 LONGLONG
00093 inline ACE_Combine_Parts (LONG high, DWORD low)
00094 {
00095   LARGE_INTEGER value;
00096   value.LowPart = low;    
00097   value.HighPart = high;  
00098   return value.QuadPart;
00099 }
00100 ACE_END_VERSIONED_NAMESPACE_DECL
00101 
00102 #    define ACE_COMBINE_PARTS(X,Y) ACE_Combine_Parts(X,Y)
00103 #  else  
00104 #    define ACE_LOW_PART(X) X
00105 #    define ACE_HIGH_PART(X) 0
00106 #    define ACE_COMBINE_PARTS(X,Y) X
00107 #  endif 
00108 #endif 
00109 
00110 
00111 
00112 # include  "ace/post.h"
00113 
00114 #endif