Lines Matching defs:idCpu

110 RTDECL(int) RTMpCpuIdToSetIndex(RTCPUID idCpu)
112 return idCpu < MAXIMUM_PROCESSORS ? (int)idCpu : -1;
129 RTDECL(bool) RTMpIsCpuOnline(RTCPUID idCpu)
131 if (idCpu >= MAXIMUM_PROCESSORS)
136 return !!(Mask & RT_BIT_64(idCpu));
138 return RTCpuSetIsMember(&g_rtMpNtCpuSet, idCpu);
143 RTDECL(bool) RTMpIsCpuPossible(RTCPUID idCpu)
148 return RTMpIsCpuOnline(idCpu);
252 RTCPUID idCpu = KeGetCurrentProcessorNumber();
253 if (pArgs->idCpu != idCpu)
256 pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2);
271 RTCPUID idCpu = KeGetCurrentProcessorNumber();
272 if ( pArgs->idCpu == idCpu
273 || pArgs->idCpu2 == idCpu)
276 pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2);
291 RTCPUID idCpu = KeGetCurrentProcessorNumber();
292 if (pArgs->idCpu == idCpu)
295 pArgs->pfnWorker(idCpu, pArgs->pvUser1, pArgs->pvUser2);
308 * @param idCpu First CPU to match, ultimately specific to the
315 PKIPI_BROADCAST_WORKER pfnNativeWrapper, RTCPUID idCpu, RTCPUID idCpu2,
322 Args.idCpu = idCpu;
365 * @param enmCpuid What to do / is idCpu valid.
366 * @param idCpu Used if enmCpuid is RT_NT_CPUID_SPECIFIC or
372 RT_NT_CPUID enmCpuid, RTCPUID idCpu, RTCPUID idCpu2, uint32_t *pcHits)
403 pArgs->idCpu = NIL_RTCPUID;
414 KeSetTargetProcessorDpc(&paExecCpuDpcs[0], (int)idCpu);
415 pArgs->idCpu = idCpu;
421 KeSetTargetProcessorDpc(&paExecCpuDpcs[0], (int)idCpu);
422 pArgs->idCpu = idCpu;
617 RTDECL(int) RTMpOnSpecific(RTCPUID idCpu, PFNRTMPWORKER pfnWorker, void *pvUser1, void *pvUser2)
622 if (!RTMpIsCpuOnline(idCpu))
623 return !RTMpIsCpuPossible(idCpu)
639 idCpu, NIL_RTCPUID, &cHits);
650 rc = rtMpCallUsingDpcs(pfnWorker, pvUser1, pvUser2, RT_NT_CPUID_SPECIFIC, idCpu, NIL_RTCPUID, &cHits);
674 pArgs->CallbackArgs.idCpu = idCpu;
680 KeSetTargetProcessorDpc(&pArgs->Dpc, (int)idCpu);
689 if (RTMpCpuId() == idCpu)
692 pfnWorker(idCpu, pvUser1, pvUser2);
700 if (RTMpIsCpuOnline(idCpu))
742 RTMpPokeCpu(idCpu);
760 LogRel(("RTMpOnSpecific(%#x): Not processed after %llu ns: rcNt=%#x\n", idCpu, RTTimeNanoTS() - nsRealWaitTS, rcNt));
765 LogRel(("RTMpOnSpecific(%#x): Still running after %llu ns: rcNt=%#x\n", idCpu, RTTimeNanoTS() - nsRealWaitTS, rcNt));
770 LogRel(("RTMpOnSpecific(%#x): Giving up on running worker after %llu ns: rcNt=%#x\n", idCpu, RTTimeNanoTS() - nsRealWaitTS, rcNt));
778 rc = !RTMpIsCpuPossible(idCpu) ? VERR_CPU_NOT_FOUND : VERR_CPU_OFFLINE;
811 * @param idCpu The CPU identifier.
813 int rtMpPokeCpuUsingBroadcastIpi(RTCPUID idCpu)
826 * @param idCpu The CPU identifier.
828 int rtMpPokeCpuUsingHalSendSoftwareInterrupt(RTCPUID idCpu)
830 g_pfnrtNtHalSendSoftwareInterrupt(idCpu, DISPATCH_LEVEL);
840 * @param idCpu The CPU identifier.
842 int rtMpPokeCpuUsingHalReqestIpiW7Plus(RTCPUID idCpu)
845 * I think we'll let idCpu be an NT processor number and not a HAL processor
849 PROCESSOR_NUMBER ProcNumber = { /*Group=*/ idCpu / 64, /*Number=*/ idCpu % 64, /* Reserved=*/ 0};
864 * @param idCpu The CPU identifier.
866 int rtMpPokeCpuUsingHalReqestIpiPreW7(RTCPUID idCpu)
870 Target <<= idCpu;
878 int rtMpPokeCpuUsingDpc(RTCPUID idCpu)
903 KeSetImportanceDpc(&s_aPokeDpcs[idCpu], HighImportance);
904 KeSetTargetProcessorDpc(&s_aPokeDpcs[idCpu], (int)idCpu);
909 BOOLEAN bRet = KeInsertQueueDpc(&s_aPokeDpcs[idCpu], 0, 0);
916 RTDECL(int) RTMpPokeCpu(RTCPUID idCpu)
918 if (!RTMpIsCpuOnline(idCpu))
919 return !RTMpIsCpuPossible(idCpu)
923 return g_pfnrtMpPokeCpuWorker(idCpu);