- Timestamp:
- Dec 7, 2018 1:04:00 PM (6 years ago)
- Location:
- trunk/src/VBox/Runtime/r0drv/darwin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/darwin/semevent-r0drv-darwin.cpp
r75704 r76055 170 170 IPRT_DARWIN_SAVE_EFL_AC(); 171 171 172 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 172 173 lck_spin_lock(pThis->pSpinlock); 173 174 … … 184 185 185 186 lck_spin_unlock(pThis->pSpinlock); 187 ASMSetFlags(fIntSaved); 186 188 rtR0SemEventDarwinRelease(pThis); 187 189 … … 209 211 IPRT_DARWIN_SAVE_EFL_AC(); 210 212 213 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 211 214 rtR0SemEventDarwinRetain(pThis); 212 213 /** @todo should probably disable interrupts here... update214 * semspinmutex-r0drv-generic.c when done. */215 215 lck_spin_lock(pThis->pSpinlock); 216 216 … … 233 233 234 234 lck_spin_unlock(pThis->pSpinlock); 235 ASMSetFlags(fIntSaved); 235 236 rtR0SemEventDarwinRelease(pThis); 236 237 … … 264 265 IPRT_DARWIN_SAVE_EFL_AC(); 265 266 267 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 266 268 rtR0SemEventDarwinRetain(pThis); 267 269 lck_spin_lock(pThis->pSpinlock); … … 390 392 391 393 lck_spin_unlock(pThis->pSpinlock); 394 ASMSetFlags(fIntSaved); 392 395 rtR0SemEventDarwinRelease(pThis); 396 393 397 IPRT_DARWIN_RESTORE_EFL_AC(); 394 398 return rc; -
trunk/src/VBox/Runtime/r0drv/darwin/semeventmulti-r0drv-darwin.cpp
r75704 r76055 175 175 IPRT_DARWIN_SAVE_EFL_AC(); 176 176 177 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 177 178 lck_spin_lock(pThis->pSpinlock); 178 179 … … 186 187 187 188 lck_spin_unlock(pThis->pSpinlock); 189 ASMSetFlags(fIntSaved); 188 190 rtR0SemEventMultiDarwinRelease(pThis); 189 191 … … 206 208 * as RTMemFree does not work with interrupts disabled (IOFree/kfree takes zone mutex). 207 209 */ 208 //RT_ASSERT_INTS_ON(); - we may be called from interrupt context, which seems to be perfectly fine .210 //RT_ASSERT_INTS_ON(); - we may be called from interrupt context, which seems to be perfectly fine if we disable interrupts. 209 211 210 212 IPRT_DARWIN_SAVE_EFL_AC(); 211 213 214 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 212 215 rtR0SemEventMultiDarwinRetain(pThis); 213 216 lck_spin_lock(pThis->pSpinlock); … … 231 234 232 235 lck_spin_unlock(pThis->pSpinlock); 236 ASMSetFlags(fIntSaved); 233 237 rtR0SemEventMultiDarwinRelease(pThis); 234 238 … … 249 253 IPRT_DARWIN_SAVE_EFL_AC(); 250 254 255 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 251 256 rtR0SemEventMultiDarwinRetain(pThis); 252 257 lck_spin_lock(pThis->pSpinlock); … … 255 260 256 261 lck_spin_unlock(pThis->pSpinlock); 262 ASMSetFlags(fIntSaved); 257 263 rtR0SemEventMultiDarwinRelease(pThis); 258 264 … … 287 293 IPRT_DARWIN_SAVE_EFL_AC(); 288 294 295 RTCCUINTREG const fIntSaved = ASMIntDisableFlags(); 289 296 rtR0SemEventMultiDarwinRetain(pThis); 290 297 lck_spin_lock(pThis->pSpinlock); … … 408 415 409 416 lck_spin_unlock(pThis->pSpinlock); 417 ASMSetFlags(fIntSaved); 410 418 rtR0SemEventMultiDarwinRelease(pThis); 411 419
Note:
See TracChangeset
for help on using the changeset viewer.