Use <m68k/m68k/proc_subr.s>
This commit is contained in:
parent
0e5ab3b5f1
commit
28a9417279
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: locore.s,v 1.34 1997/03/30 21:08:19 leo Exp $ */
|
/* $NetBSD: locore.s,v 1.35 1997/04/09 19:39:14 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988 University of Utah.
|
* Copyright (c) 1988 University of Utah.
|
||||||
@ -1043,88 +1043,15 @@ ENTRY(qsetjmp)
|
|||||||
moveq #0,d0 | return 0
|
moveq #0,d0 | return 0
|
||||||
rts
|
rts
|
||||||
|
|
||||||
/*
|
|
||||||
* The following primitives manipulate the run queues.
|
|
||||||
* _whichqs tells which of the 32 queues _qs have processes
|
|
||||||
* in them. Setrunqueue puts processes into queues, remrunqueue
|
|
||||||
* removes them from queues. The running process is on no queue,
|
|
||||||
* other processes are on a queue related to p->p_priority, divided by 4
|
|
||||||
* actually to shrink the 0-127 range of priorities into the 32 available
|
|
||||||
* queues.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.globl _whichqs,_qs,_cnt,_panic
|
.globl _whichqs,_qs,_cnt,_panic
|
||||||
.globl _curproc
|
.globl _curproc
|
||||||
.comm _want_resched,4
|
.comm _want_resched,4
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Setrunqueue(p)
|
* Use common m68k process manipulation routines.
|
||||||
*
|
|
||||||
* Call should be made at spl6(), and p->p_stat should be SRUN
|
|
||||||
*/
|
*/
|
||||||
ENTRY(setrunqueue)
|
#include <m68k/m68k/proc_subr.s>
|
||||||
movl sp@(4),a0
|
|
||||||
tstl a0@(P_BACK)
|
|
||||||
jeq Lset1
|
|
||||||
movl #Lset2,sp@-
|
|
||||||
jbsr _panic
|
|
||||||
Lset1:
|
|
||||||
clrl d0
|
|
||||||
movb a0@(P_PRIORITY),d0
|
|
||||||
lsrb #2,d0
|
|
||||||
movl _whichqs,d1
|
|
||||||
bset d0,d1
|
|
||||||
movl d1,_whichqs
|
|
||||||
lslb #3,d0
|
|
||||||
addl #_qs,d0
|
|
||||||
movl d0,a0@(P_FORW)
|
|
||||||
movl d0,a1
|
|
||||||
movl a1@(P_BACK),a0@(P_BACK)
|
|
||||||
movl a0,a1@(P_BACK)
|
|
||||||
movl a0@(P_BACK),a1
|
|
||||||
movl a0,a1@(P_FORW)
|
|
||||||
rts
|
|
||||||
|
|
||||||
Lset2:
|
|
||||||
.asciz "setrunqueue"
|
|
||||||
.even
|
|
||||||
|
|
||||||
/*
|
|
||||||
* remrunqueue(p)
|
|
||||||
*
|
|
||||||
* Call should be made at spl6().
|
|
||||||
*/
|
|
||||||
ENTRY(remrunqueue)
|
|
||||||
movl sp@(4),a0
|
|
||||||
clrl d0
|
|
||||||
movb a0@(P_PRIORITY),d0
|
|
||||||
lsrb #2,d0
|
|
||||||
movl _whichqs,d1
|
|
||||||
bclr d0,d1
|
|
||||||
jne Lrem1
|
|
||||||
movl #Lrem3,sp@-
|
|
||||||
jbsr _panic
|
|
||||||
Lrem1:
|
|
||||||
movl d1,_whichqs
|
|
||||||
movl a0@(P_FORW),a1
|
|
||||||
movl a0@(P_BACK),a1@(P_BACK)
|
|
||||||
movl a0@(P_BACK),a1
|
|
||||||
movl a0@(P_FORW),a1@(P_FORW)
|
|
||||||
movl #_qs,a1
|
|
||||||
movl d0,d1
|
|
||||||
lslb #3,d1
|
|
||||||
addl d1,a1
|
|
||||||
cmpl a1@(P_FORW),a1
|
|
||||||
jeq Lrem2
|
|
||||||
movl _whichqs,d1
|
|
||||||
bset d0,d1
|
|
||||||
movl d1,_whichqs
|
|
||||||
Lrem2:
|
|
||||||
clrl a0@(P_BACK)
|
|
||||||
rts
|
|
||||||
|
|
||||||
Lrem3:
|
|
||||||
.asciz "remrunqueue"
|
|
||||||
Lsw0:
|
Lsw0:
|
||||||
.asciz "cpu_switch"
|
.asciz "cpu_switch"
|
||||||
.even
|
.even
|
||||||
|
Loading…
Reference in New Issue
Block a user