Use rendez for sleep/wakeup/etc
[akaros.git] / scripts / PATCHPLAN9
1 #!/bin/sh
2 set -e
3 #Plan 9 source can be converted for akaros via a set of scripts.
4 #This is a WIP. 
5 # At this point, we take it just so far and do the rest
6 # by hand. Cocci has its issues, and we're not here to debug
7 # and fix them all. Also, we may create some post-conversion
8 # scripts as well. We'll see.
9 #
10 #We preserve the waserror/poperror style, which adds complications
11 #but leaves the source relatively clean.
12 #
13 #To convert plan 9 source, we have to do several things.
14 #We use spatch, the semantic patch tool. BUT, that tool can be
15 #painful for some stuff, so we also use sed. And in some cases
16 #we clean up things that we do with spatch with a sed pass.
17 #Ugly but effective. Some scripts are idempotent, so we mark
18 #them as such. 
19 #
20 # waserror/poperror fixing, via script/spatch/waserror.cocci
21 # N.B. Need r18 or later.
22 spatch --sp-file scripts/spatch/waserror.cocci --in-place $1
23 # General Plan 9 fixing, via script/spatch/waserror.cocci
24 spatch --sp-file scripts/spatch/plan9.cocci --in-place $1
25 spatch --sp-file scripts/spatch/scalar.cocci --in-place $1
26 spatch --sp-file scripts/spatch/typedef.cocci --in-place $1
27 spatch --sp-file scripts/spatch/locks.cocci --in-place $1
28 spatch --sp-file scripts/spatch/rendez.cocci --in-place $1
29 # include fixing. Idempotent. 
30 sh scripts/fixincludes $1
31 # Scalars. Idempotent.
32 sh scripts/scalar $1
33 # remove pragmas. Idempotent.
34 sed -i '/^#pragma/d' $1
35 # Stuff we might want to think about later. Idempotent
36 sh scripts/temporary_hack $1
37 # malloc. Idempotent.
38 spatch --sp-file scripts/spatch/malloc.cocci --in-place $1
39 # type names, via scripts/plan9. NOT idempotent.
40 # in fact, we almost certainly don't want it.
41 sh scripts/plan9 $1
42 # kref. Idempotent.
43 spatch --sp-file scripts/spatch/kref.cocci --in-place $1
44 ed $1 << EOF
45 1i
46 // INFERNO
47 .
48 w
49 q
50 EOF
51