Lines Matching defs:pState
145 * @param pState Output structure.
147 static int rtSemSpinMutexEnter(RTSEMSPINMUTEXSTATE *pState, RTSEMSPINMUTEXINTERNAL *pThis)
170 pState->PreemptState.uchOldIrql = KeGetCurrentIrql();
171 if (pState->PreemptState.uchOldIrql > DISPATCH_LEVEL)
174 if (pState->PreemptState.uchOldIrql >= DISPATCH_LEVEL)
175 pState->fSpin = true;
178 pState->fSpin = false;
179 KeRaiseIrql(DISPATCH_LEVEL, &pState->PreemptState.uchOldIrql);
180 Assert(pState->PreemptState.uchOldIrql < DISPATCH_LEVEL);
190 pState->fSpin = !RTThreadPreemptIsEnabled(NIL_RTTHREAD);
195 pState->fSpin = true;
197 pState->PreemptState = StateInit;
198 RTThreadPreemptDisable(&pState->PreemptState);
204 pState->fSpin = !RTThreadPreemptIsEnabled(NIL_RTTHREAD);
209 pState->fSpin = true;
211 pState->PreemptState = StateInit;
212 RTThreadPreemptDisable(&pState->PreemptState);
224 pState->fSpin = !RTThreadPreemptIsEnabled(NIL_RTTHREAD);
225 pState->PreemptState = StateInit;
226 RTThreadPreemptDisable(&pState->PreemptState);
232 pState->fValidFlags = !!(pThis->fFlags & RTSEMSPINMUTEX_FLAGS_IRQ_SAFE);
233 if (pState->fValidFlags)
234 pState->fSavedFlags = ASMIntDisableFlags();
236 pState->fSavedFlags = 0;
246 * @param pState
248 DECL_FORCE_INLINE(void) rtSemSpinMutexLeave(RTSEMSPINMUTEXSTATE *pState)
253 if (pState->fValidFlags)
254 ASMSetFlags(pState->fSavedFlags);
260 if (pState->PreemptState.uchOldIrql < DISPATCH_LEVEL)
261 KeLowerIrql(pState->PreemptState.uchOldIrql);
266 RTThreadPreemptRestore(&pState->PreemptState);