Changeset 102470 in vbox for trunk/src/libs/xpcom18a4/nsprpub/pr
- Timestamp:
- Dec 5, 2023 11:03:48 AM (17 months ago)
- svn:sync-xref-src-repo-rev:
- 160613
- Location:
- trunk/src/libs/xpcom18a4/nsprpub/pr
- Files:
-
- 2 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/xpcom18a4/nsprpub/pr/include/nspr.h
r102459 r102470 44 44 45 45 #include "prbit.h" 46 #include "prinrval.h"47 46 #include "prlong.h" 48 47 #include "prmem.h" -
trunk/src/libs/xpcom18a4/nsprpub/pr/include/prbit.h
r102392 r102470 46 46 47 47 /* 48 ** A prbitmap_t is a long integer that can be used for bitmaps49 */50 typedef unsigned long prbitmap_t;51 52 #define PR_TEST_BIT(_map,_bit) \53 ((_map)[(_bit)>>PR_BITS_PER_LONG_LOG2] & (1L << ((_bit) & (PR_BITS_PER_LONG-1))))54 #define PR_SET_BIT(_map,_bit) \55 ((_map)[(_bit)>>PR_BITS_PER_LONG_LOG2] |= (1L << ((_bit) & (PR_BITS_PER_LONG-1))))56 #define PR_CLEAR_BIT(_map,_bit) \57 ((_map)[(_bit)>>PR_BITS_PER_LONG_LOG2] &= ~(1L << ((_bit) & (PR_BITS_PER_LONG-1))))58 59 /*60 48 ** Compute the log of the least power of 2 greater than or equal to n 61 49 */ … … 100 88 } 101 89 102 /* 103 ** Macro version of PR_CeilingLog2: Compute the log of the least power of 104 ** 2 greater than or equal to _n. The result is returned in _log2. 105 */ 106 #define PR_CEILING_LOG2(_log2,_n) \ 107 PR_BEGIN_MACRO \ 108 PRUint32 j_ = (PRUint32)(_n); \ 109 (_log2) = 0; \ 110 if ((j_) & ((j_)-1)) \ 111 (_log2) += 1; \ 112 if ((j_) >> 16) \ 113 (_log2) += 16, (j_) >>= 16; \ 114 if ((j_) >> 8) \ 115 (_log2) += 8, (j_) >>= 8; \ 116 if ((j_) >> 4) \ 117 (_log2) += 4, (j_) >>= 4; \ 118 if ((j_) >> 2) \ 119 (_log2) += 2, (j_) >>= 2; \ 120 if ((j_) >> 1) \ 121 (_log2) += 1; \ 122 PR_END_MACRO 90 PR_END_EXTERN_C 123 91 124 /*125 ** Macro version of PR_FloorLog2: Compute the log of the greatest power of126 ** 2 less than or equal to _n. The result is returned in _log2.127 **128 ** This is equivalent to finding the highest set bit in the word.129 */130 #define PR_FLOOR_LOG2(_log2,_n) \131 PR_BEGIN_MACRO \132 PRUint32 j_ = (PRUint32)(_n); \133 (_log2) = 0; \134 if ((j_) >> 16) \135 (_log2) += 16, (j_) >>= 16; \136 if ((j_) >> 8) \137 (_log2) += 8, (j_) >>= 8; \138 if ((j_) >> 4) \139 (_log2) += 4, (j_) >>= 4; \140 if ((j_) >> 2) \141 (_log2) += 2, (j_) >>= 2; \142 if ((j_) >> 1) \143 (_log2) += 1; \144 PR_END_MACRO145 146 PR_END_EXTERN_C147 92 #endif /* prbit_h___ */ -
trunk/src/libs/xpcom18a4/nsprpub/pr/include/prmon.h
r102392 r102470 40 40 41 41 #include "prtypes.h" 42 #include "prinrval.h" 42 43 #include <iprt/types.h> 43 44 44 45 #ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP … … 105 106 ** Returns PR_FAILURE if the caller has not entered the monitor. 106 107 */ 107 NSPR_API(PRStatus) PR_Wait(PRMonitor *mon, PRIntervalTime ticks);108 NSPR_API(PRStatus) PR_Wait(PRMonitor *mon, RTMSINTERVAL msWait); 108 109 109 110 /* -
trunk/src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptsynch.c
r102392 r102470 285 285 286 286 static PRIntn pt_TimedWait( 287 pthread_cond_t *cv, pthread_mutex_t *ml, PRIntervalTime timeout)287 pthread_cond_t *cv, pthread_mutex_t *ml, RTMSINTERVAL msTimeout) 288 288 { 289 289 int rv; 290 290 struct timeval now; 291 291 struct timespec tmo; 292 PRUint32 ticks = PR_TicksPerSecond(); 293 294 tmo.tv_sec = (PRInt32)(timeout / ticks); 295 tmo.tv_nsec = (PRInt32)(timeout - (tmo.tv_sec * ticks)); 296 tmo.tv_nsec = (PRInt32)PR_IntervalToMicroseconds(PT_NANOPERMICRO * tmo.tv_nsec); 292 293 tmo.tv_sec = (PRInt32)(msTimeout / RT_MS_1SEC); 294 tmo.tv_nsec = (PRInt32)((msTimeout - (tmo.tv_sec * RT_MS_1SEC)) * RT_NS_1MS); 297 295 298 296 /* pthreads wants this in absolute time, off we go ... */ … … 367 365 } /* PR_DestroyCondVar */ 368 366 369 PR_IMPLEMENT(PRStatus) PR_WaitCondVar(PRCondVar *cvar, PRIntervalTime timeout)367 PR_IMPLEMENT(PRStatus) PR_WaitCondVar(PRCondVar *cvar, RTMSINTERVAL msTimeout) 370 368 { 371 369 PRIntn rv; … … 394 392 cvar->lock->locked = PR_FALSE; 395 393 396 if ( timeout == PR_INTERVAL_NO_TIMEOUT)394 if (msTimeout == RT_INDEFINITE_WAIT) 397 395 rv = pthread_cond_wait(&cvar->cv, &cvar->lock->mutex); 398 396 else 399 rv = pt_TimedWait(&cvar->cv, &cvar->lock->mutex, timeout);397 rv = pt_TimedWait(&cvar->cv, &cvar->lock->mutex, msTimeout); 400 398 401 399 /* We just got the lock back - this better be empty */ … … 545 543 } /* PR_ExitMonitor */ 546 544 547 PR_IMPLEMENT(PRStatus) PR_Wait(PRMonitor *mon, PRIntervalTime timeout)545 PR_IMPLEMENT(PRStatus) PR_Wait(PRMonitor *mon, RTMSINTERVAL msTimeout) 548 546 { 549 547 PRStatus rv; … … 565 563 _PT_PTHREAD_INVALIDATE_THR_HANDLE(mon->owner); 566 564 567 rv = PR_WaitCondVar(mon->cvar, timeout);565 rv = PR_WaitCondVar(mon->cvar, msTimeout); 568 566 569 567 /* reinstate the intresting information */
Note:
See TracChangeset
for help on using the changeset viewer.