if (error == RX_CALL_DEAD ||
error == RX_CALL_TIMEOUT ||
error == RX_CALL_BUSY ||
- error == RX_MSGSIZE)
- error = CM_ERROR_RETRY;
+ error == RX_MSGSIZE ||
+ error == VNOSERVICE)
+ error = CM_ERROR_TIMEDOUT;
else if (error == RX_CALL_IDLE)
error = EIO;
+ else if (error == RX_INVALID_OPERATION)
+ error = CM_ERROR_INVAL_NET_RESP;
else if (error < 0)
error = CM_ERROR_UNKNOWN;
else if (error == EINVAL)
error = CM_ERROR_QUOTA;
else if (error == VNOVNODE)
error = CM_ERROR_BADFD;
- else if (error == VNOSERVICE || error == VSALVAGE || error == VOFFLINE)
+ else if (error == VSALVAGE || error == VOFFLINE)
error = CM_ERROR_ALLOFFLINE;
else if (error == VBUSY || error == VRESTARTING)
error = CM_ERROR_ALLBUSY;
error == RX_CALL_TIMEOUT ||
error == RX_CALL_BUSY ||
error == RX_CALL_IDLE ||
- error == RX_MSGSIZE)
- error = CM_ERROR_RETRY;
+ error == RX_MSGSIZE ||
+ error == VNOSERVICE)
+ error = CM_ERROR_TIMEDOUT;
else if (error == VNOVNODE)
error = CM_ERROR_BADFD;
- else if (error == VNOSERVICE || error == VSALVAGE || error == VOFFLINE)
+ else if (error == VSALVAGE || error == VOFFLINE)
error = CM_ERROR_ALLOFFLINE;
else if (error == VBUSY || error == VRESTARTING)
error = CM_ERROR_ALLBUSY;
+ else if (error == RX_INVALID_OPERATION)
+ error = CM_ERROR_INVAL_NET_RESP;
else if (error < 0)
error = CM_ERROR_UNKNOWN;
else if (error == EROFS)
else if (error == EINVAL)
error = CM_ERROR_INVAL;
else if (error == ENOTEMPTY
+ || error == EEXIST
|| error == 17 /* AIX */
|| error == 66 /* SunOS 4, Digital UNIX */
|| error == 93 /* Solaris 2, IRIX */
error == RX_CALL_TIMEOUT ||
error == RX_CALL_BUSY ||
error == RX_CALL_IDLE ||
- error == RX_MSGSIZE)
- error = CM_ERROR_RETRY;
+ error == RX_MSGSIZE ||
+ error == VNOSERVICE)
+ error = CM_ERROR_TIMEDOUT;
+ else if (error == RX_INVALID_OPERATION)
+ error = CM_ERROR_INVAL_NET_RESP;
else if (error == RX_RESTARTING)
error = CM_ERROR_ALLBUSY;
else if (error < 0)
void cm_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, time_t unixTime)
{
// Note that LONGLONG is a 64-bit value
- LONGLONG ll;
-
- ll = Int32x32To64(unixTime, 10000000) + 116444736000000000;
- largeTimep->dwLowDateTime = (DWORD)(ll & 0xFFFFFFFF);
- largeTimep->dwHighDateTime = (DWORD)(ll >> 32);
+ LARGE_INTEGER ll;
+
+#ifdef _USE_32BIT_TIME_T
+ ll.QuadPart = UInt32x32To64(unixTime, 10000000) + 116444736000000000;
+#else
+ ll.QuadPart = unixTime * 10000000 + 116444736000000000;
+#endif
+ largeTimep->dwLowDateTime = ll.LowPart;
+ largeTimep->dwHighDateTime = ll.HighPart;
}
void cm_UnixTimeFromLargeSearchTime(time_t *unixTimep, FILETIME *largeTimep)
{
// Note that LONGLONG is a 64-bit value
- LONGLONG ll;
+ LARGE_INTEGER ll;
- ll = largeTimep->dwHighDateTime;
- ll <<= 32;
- ll += largeTimep->dwLowDateTime;
+ ll.HighPart = largeTimep->dwHighDateTime;
+ ll.LowPart = largeTimep->dwLowDateTime;
- ll -= 116444736000000000;
- ll /= 10000000;
+ ll.QuadPart -= 116444736000000000;
+ ll.QuadPart /= 10000000;
- *unixTimep = (DWORD)ll;
+ *unixTimep = (time_t)ll.QuadPart;
}
void cm_SearchTimeFromUnixTime(afs_uint32 *searchTimep, time_t unixTime)