proc.ed - vx32 - Local 9vx git repository for patches.
(HTM) git clone git://r-36.net/vx32
(DIR) Log
(DIR) Files
(DIR) Refs
---
proc.ed (2531B)
---
1 1i
2 #define WANT_M
3 .
4 /edf.*Admitted/,/edfrecord/d
5 /edfstop/,/edf = nil/d
6 ,s/(!p->edf)/(1)/
7 ,s/edfready(p)/0/g
8 /edflock/,/edfunlock/+1d
9 g/edfstop(up)/d
10 ,s/(p = procalloc.free)/(&)/
11 ,s/lock(runq)/lock(\&runq->lk)/
12 ,s/lock(\&procalloc)/lock(\&procalloc.lk)/
13 ,s/lock(r)/lock(\&r->lk)/
14 /^newproc/ s/^//
15 /^ return p/i
16 vxnewproc(p);
17 .
18 /^twakeup/ s/Ureg\*,/Ureg *ureg,/
19 ,s/up->tt/up->timer.tt/g
20 ,s/up->tns/up->timer.tns/g
21 ,s/up->tf/up->timer.tf/g
22 ,s/up->timer.tfn/up->tfn/g
23 ,s/up->ta/up->timer.ta/g
24 ,s/up->tmode/up->timer.tmode/g
25 ,s/timeradd(up)/timeradd(\&up->timer)/g
26 ,s/timerdel(up)/timerdel(\&up->timer)/g
27 ,s/up->twhen/up->timer.twhen/g
28 ,s/lock(p->rgrp)/lock(\&p->rgrp->ref.lk)/
29 ,s/Lock;/Lock lk;/g
30 ,s/lock(\&broken)/lock(\&broken.lk)/g
31 ,s/MACHP(0)->ticks/msec()/g
32 ,s/lock(\&palloc)/lock(\&palloc.lk)/g
33 ,s/ref(p->dot)/ref(\&p->dot->ref)/g
34 ,s/ref(kpgrp)/ref(\&kpgrp->ref)/g
35 g/"edf.h"/d
36 g/Edf/d
37 ,s;\.Lock\.;.lk.;g
38 /^schedinit/ s/^//
39 / setlabel(\&m->sched)/a
40 if(traceprocs) // Plan 9 VX
41 print("schedinit %p %p %s\n", m, up, up ? up->text : "");
42 .
43 /^sched(void)/+3a
44 if(traceprocs) // Plan 9 VX
45 print("sched %p %p [%s]\n", m, up, up ? up->text : "");
46 .
47 /if(setlabel(\&up->sched))/a
48 if(traceprocs)
49 print("sched %p %p: awake\n", m, up);
50 .
51 /^ }/a
52 if(traceprocs)
53 print("sched %p %p: entering scheduler\n", m, up);
54 .
55 /^ }/a
56 if(traceprocs)
57 print("sched %p %p: runproc", m, up);
58 .
59 ,s/m->ticks/msec()/g
60 /^ mmuswitch(up)/i
61 if(traceprocs)
62 print("run %p %p [%s]\n", m, up, up->text);
63 .
64 /^ready/ s/^/_/
65 /^runproc/ s/^/_/
66 /never mind/+1a
67 if(traceprocs)
68 print("sleep %p %p: already happened\n", m, up);
69 .
70 /if(setlabel(\&up->sched))/a
71 if(traceprocs)
72 print("sleep %p %p: awake\n", m, up);
73 .
74 /} else {/a
75 if(traceprocs)
76 print("sleep %p %p: sleeping\n", m, up);
77 .
78 /p->fpsave = up->fpsave/,/p->dbgreg = 0/c
79 if(up){
80 p->fpsave = up->fpsave;
81 p->scallnr = up->scallnr;
82 p->s = up->s;
83 p->slash = up->slash;
84 p->dot = up->dot;
85 if(p->dot)
86 incref(&p->dot->ref);
87
88 memmove(p->note, up->note, sizeof(p->note));
89 p->nnote = up->nnote;
90 p->lastnote = up->lastnote;
91 p->notify = up->notify;
92 }
93
94 p->notified = 0;
95 p->ureg = 0;
96 p->dbgreg = 0;
97 p->nerrlab = 0;
98 .
99 /^ ready(p)/+1,/flushmmu/d
100 /^newproc/ s/^//
101 /p->procctl = 0;/c
102 if(up && up->procctl == Proc_tracesyscall)
103 p->procctl = Proc_tracesyscall;
104 else
105 p->procctl = 0;
106 p->syscalltrace = 0;
107 .
108 /up->alarm = 0;/i
109 if(up->syscalltrace)
110 free(up->syscalltrace);
111 .
112 /p = newproc();/i
113 extern int tracekdev;
114 if(tracekdev)
115 iprint("kproc %s\n", name);
116
117 .