Lines Matching refs:tpproc
395 struct per_proc_info *tpproc;
398 tpproc = PerProcTable[cpu].ppe_vaddr;
399 while (!((*(volatile short *)&tpproc->cpu_flags) & SleepState)) {};
513 struct per_proc_info *tpproc, *mpproc;
521 tpproc = PerProcTable[target].ppe_vaddr; /* Point to the target's block */
522 if(mpproc == tpproc) return KERN_FAILURE; /* Cannot signal ourselves */
524 if(!tpproc->running) return KERN_FAILURE;
526 if (!(tpproc->cpu_flags & SignalReady)) return KERN_FAILURE;
528 if((tpproc->MPsigpStat & MPsigpMsgp) == MPsigpMsgp) { /* Is there an unreceived message already pending? */
535 if((signal == SIGPast) && (tpproc->MPsigpParm0 == SIGPast)) { /* We can merge ASTs */
540 if (tpproc->MPsigpParm0 == SIGPwake) {
541 if (hw_lock_mbits(&tpproc->MPsigpStat, (MPsigpMsgp | MPsigpAck),
550 (!hw_lock_mbits(&tpproc->MPsigpStat, MPsigpMsgp, 0, MPsigpBusy,
557 tpproc->MPsigpParm0 = signal; /* Set message order */
558 tpproc->MPsigpParm1 = p1; /* Set additional parm */
559 tpproc->MPsigpParm2 = p2; /* Set additional parm */
563 tpproc->MPsigpStat = holdStat; /* Set status and pass the lock */
567 PE_cpu_signal(mpproc->cpu_id, tpproc->cpu_id); /* Kick the other processor */