diff --git a/bench/Makefile b/bench/Makefile
index 01fc85b6fe4ec48c8c48cd80bfb6ff54a22c075b..24bdbe92feed5aa9f0a51156874d3e57c3266898 100755
--- a/bench/Makefile
+++ b/bench/Makefile
@@ -187,7 +187,7 @@ build/mem/%.mem: build/artifacts/%.bin
 	@echo " BIN2MEM	$< -> $@"
 	@$(utils_dir)/bin2mem.py $< $@
 
-sic.patch: sic.cocci
+%.patch: %.cocci $(COCCI_SRC_FILES)
 	@echo " SPATCH $<"
 	@spatch --sp-file $< $(COCCI_SRC_FILES) --patch . >$@
 
diff --git a/bench/kernel/lms/lms.c b/bench/kernel/lms/lms.c
index 42b192921cbebcb6750004042b7694de43fea434..a92cc1ab9e7a1c5f27461fe6754818d174422865 100755
--- a/bench/kernel/lms/lms.c
+++ b/bench/kernel/lms/lms.c
@@ -194,10 +194,17 @@ int lms_return( void )
 }
 
 
+#include <siccsrs.h>
 int main()
 {
-  lms_init();
-  lms_main();
+  sicsetup();
+
+  {
+    lms_init();
+    lms_main();
+  }
+
+  siccsrs();
   return ( lms_return() );
 }
 
diff --git a/bench/sequential/rijndael_dec/rijndael_dec.c b/bench/sequential/rijndael_dec/rijndael_dec.c
index fc065d14ced52581b0044236d4109838767ed811..70403f6c3edf342b3da6b6014ad41c19e0268228 100755
--- a/bench/sequential/rijndael_dec/rijndael_dec.c
+++ b/bench/sequential/rijndael_dec/rijndael_dec.c
@@ -179,12 +179,19 @@ void _Pragma( "entrypoint" ) rijndael_dec_main( void )
   rijndael_dec_decfile( &rijndael_dec_fin, ctx );
 }
 
+#include <siccsrs.h>
 int main()
 {
+  sicsetup();
 
-  rijndael_dec_init();
-  rijndael_dec_main();
+  {
 
+    rijndael_dec_init();
+    rijndael_dec_main();
+
+  }
+
+  siccsrs();
   return ( rijndael_dec_return() );
 }
 
diff --git a/bench/sic.cocci b/bench/sic.cocci
index 7963e51c14f00c30b2b33c50d7bc0300b621b5e9..5e05fa46d4ec06126ac31feab42aac0fed9f4ee9 100644
--- a/bench/sic.cocci
+++ b/bench/sic.cocci
@@ -3,7 +3,7 @@
 
 + #include <siccsrs.h>
 
-int main(void)
+int main(...)
 {
 + sicsetup();
 +
diff --git a/bench/sic.patch b/bench/sic.patch
index aa320386fd2ec00a04f5cdaf651028dfe75d9ea6..c3c0983cc18ceff040bcf3ea51217914e868ccbb 100644
--- a/bench/sic.patch
+++ b/bench/sic.patch
@@ -1,395 +1,415 @@
-diff -u -p a/sequential/huff_enc/huff_enc.c b/sequential/huff_enc/huff_enc.c
---- a/sequential/huff_enc/huff_enc.c
-+++ b/sequential/huff_enc/huff_enc.c
-@@ -581,9 +581,16 @@ void _Pragma( "entrypoint" ) huff_enc_ma
+diff -u -p a/sequential/rijndael_dec/rijndael_dec.c b/sequential/rijndael_dec/rijndael_dec.c
+--- a/sequential/rijndael_dec/rijndael_dec.c
++++ b/sequential/rijndael_dec/rijndael_dec.c
+@@ -179,12 +179,19 @@ void _Pragma( "entrypoint" ) rijndael_de
+   rijndael_dec_decfile( &rijndael_dec_fin, ctx );
  }
  
- 
 +#include <siccsrs.h>
- int main( void )
+ int main()
  {
--  huff_enc_init();
--  huff_enc_main();
 +  sicsetup();
-+
+ 
+-  rijndael_dec_init();
+-  rijndael_dec_main();
 +  {
-+    huff_enc_init();
-+    huff_enc_main();
+ 
++    rijndael_dec_init();
++    rijndael_dec_main();
++
 +  }
 +
 +  siccsrs();
-   return ( huff_enc_return() );
+   return ( rijndael_dec_return() );
  }
-diff -u -p a/sequential/adpcm_enc/adpcm_enc.c b/sequential/adpcm_enc/adpcm_enc.c
---- a/sequential/adpcm_enc/adpcm_enc.c
-+++ b/sequential/adpcm_enc/adpcm_enc.c
-@@ -745,10 +745,17 @@ void _Pragma( "entrypoint" ) adpcm_enc_m
  
+diff -u -p a/sequential/gsm_dec/gsm_dec.c b/sequential/gsm_dec/gsm_dec.c
+--- a/sequential/gsm_dec/gsm_dec.c
++++ b/sequential/gsm_dec/gsm_dec.c
+@@ -748,9 +748,16 @@ void _Pragma( "entrypoint" ) gsm_dec_mai
+   }
  }
  
 +#include <siccsrs.h>
  int main( void )
  {
--  adpcm_enc_init();
--  adpcm_enc_main();
+-  gsm_dec_init();
+-  gsm_dec_main();
 +  sicsetup();
- 
-+  {
-+    adpcm_enc_init();
-+    adpcm_enc_main();
 +
++  {
++    gsm_dec_init();
++    gsm_dec_main();
 +  }
 +
 +  siccsrs();
-   return adpcm_enc_return();
+   return ( gsm_dec_return() );
  }
-diff -u -p a/sequential/adpcm_dec/adpcm_dec.c b/sequential/adpcm_dec/adpcm_dec.c
---- a/sequential/adpcm_dec/adpcm_dec.c
-+++ b/sequential/adpcm_dec/adpcm_dec.c
-@@ -701,10 +701,17 @@ void _Pragma( "entrypoint" ) adpcm_dec_m
+diff -u -p a/sequential/ammunition/ammunition.c b/sequential/ammunition/ammunition.c
+--- a/sequential/ammunition/ammunition.c
++++ b/sequential/ammunition/ammunition.c
+@@ -1170,10 +1170,17 @@ void _Pragma( "entrypoint" ) ammunition_
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  adpcm_dec_init();
--  adpcm_dec_main();
+-  ammunition_init();
+-  ammunition_main();
 +  sicsetup();
  
 +  {
-+    adpcm_dec_init();
-+    adpcm_dec_main();
++    ammunition_init();
++    ammunition_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( adpcm_dec_return() );
+   return ( ammunition_return() );
  }
-diff -u -p a/sequential/fmref/fmref.c b/sequential/fmref/fmref.c
---- a/sequential/fmref/fmref.c
-+++ b/sequential/fmref/fmref.c
-@@ -72,10 +72,17 @@ int fmref_return( void )
-   return 0;
+diff -u -p a/sequential/g723_enc/g723_enc.c b/sequential/g723_enc/g723_enc.c
+--- a/sequential/g723_enc/g723_enc.c
++++ b/sequential/g723_enc/g723_enc.c
+@@ -868,11 +868,18 @@ void _Pragma( "entrypoint" ) g723_enc_ma
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  fmref_init();
--  fmref_main();
+-  g723_enc_init();
+-  g723_enc_main();
 +  sicsetup();
-+
+ 
 +  {
-+    fmref_init();
-+    fmref_main();
++    g723_enc_init();
++    g723_enc_main();
++
 +  }
 +
 +  siccsrs();
-   return fmref_return();
+   return ( g723_enc_return() );
  }
  
-diff -u -p a/sequential/dijkstra/dijkstra.c b/sequential/dijkstra/dijkstra.c
---- a/sequential/dijkstra/dijkstra.c
-+++ b/sequential/dijkstra/dijkstra.c
-@@ -188,10 +188,17 @@ void _Pragma( "entrypoint" ) dijkstra_ma
-   }
+diff -u -p a/sequential/epic/epic.c b/sequential/epic/epic.c
+--- a/sequential/epic/epic.c
++++ b/sequential/epic/epic.c
+@@ -1127,10 +1127,17 @@ int epic_return()
+   return ( checksum == 43968 ? 0 : 1 );
  }
  
 +#include <siccsrs.h>
  int main( void )
  {
--  dijkstra_init();
--  dijkstra_main();
+-  epic_init();
+-  epic_main();
 +  sicsetup();
  
 +  {
-+    dijkstra_init();
-+    dijkstra_main();
++    epic_init();
++    epic_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( dijkstra_return() );
+   return epic_return();
  }
-diff -u -p a/sequential/rijndael_enc/rijndael_enc.c b/sequential/rijndael_enc/rijndael_enc.c
---- a/sequential/rijndael_enc/rijndael_enc.c
-+++ b/sequential/rijndael_enc/rijndael_enc.c
-@@ -222,11 +222,18 @@ void _Pragma( "entrypoint" ) rijndael_en
-   rijndael_enc_encfile( &rijndael_enc_fin, ctx );
+diff -u -p a/sequential/h264_dec/h264_dec.c b/sequential/h264_dec/h264_dec.c
+--- a/sequential/h264_dec/h264_dec.c
++++ b/sequential/h264_dec/h264_dec.c
+@@ -594,10 +594,17 @@ void _Pragma( "entrypoint" )  h264_dec_m
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  rijndael_enc_init();
--  rijndael_enc_main();
+-  h264_dec_init();
+-  h264_dec_main();
 +  sicsetup();
  
 +  {
-+    rijndael_enc_init();
-+    rijndael_enc_main();
++    h264_dec_init();
++    h264_dec_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( rijndael_enc_return() );
+   return ( h264_dec_return() );
  }
- 
-diff -u -p a/sequential/g723_enc/g723_enc.c b/sequential/g723_enc/g723_enc.c
---- a/sequential/g723_enc/g723_enc.c
-+++ b/sequential/g723_enc/g723_enc.c
-@@ -868,11 +868,18 @@ void _Pragma( "entrypoint" ) g723_enc_ma
+diff -u -p a/sequential/cjpeg_transupp/cjpeg_transupp.c b/sequential/cjpeg_transupp/cjpeg_transupp.c
+--- a/sequential/cjpeg_transupp/cjpeg_transupp.c
++++ b/sequential/cjpeg_transupp/cjpeg_transupp.c
+@@ -703,10 +703,17 @@ void _Pragma ( "entrypoint" ) cjpeg_tran
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  g723_enc_init();
--  g723_enc_main();
+-  cjpeg_transupp_init();
+-  cjpeg_transupp_main();
 +  sicsetup();
  
 +  {
-+    g723_enc_init();
-+    g723_enc_main();
++    cjpeg_transupp_init();
++    cjpeg_transupp_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( g723_enc_return() );
+   return ( cjpeg_transupp_return() - 660 != 0 );
  }
+diff -u -p a/sequential/adpcm_enc/adpcm_enc.c b/sequential/adpcm_enc/adpcm_enc.c
+--- a/sequential/adpcm_enc/adpcm_enc.c
++++ b/sequential/adpcm_enc/adpcm_enc.c
+@@ -745,10 +745,17 @@ void _Pragma( "entrypoint" ) adpcm_enc_m
  
-diff -u -p a/sequential/ammunition/ammunition.c b/sequential/ammunition/ammunition.c
---- a/sequential/ammunition/ammunition.c
-+++ b/sequential/ammunition/ammunition.c
-@@ -1170,10 +1170,17 @@ void _Pragma( "entrypoint" ) ammunition_
  }
  
- 
 +#include <siccsrs.h>
  int main( void )
  {
--  ammunition_init();
--  ammunition_main();
+-  adpcm_enc_init();
+-  adpcm_enc_main();
 +  sicsetup();
  
 +  {
-+    ammunition_init();
-+    ammunition_main();
++    adpcm_enc_init();
++    adpcm_enc_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( ammunition_return() );
+   return adpcm_enc_return();
  }
-diff -u -p a/sequential/petrinet/petrinet.c b/sequential/petrinet/petrinet.c
---- a/sequential/petrinet/petrinet.c
-+++ b/sequential/petrinet/petrinet.c
-@@ -973,10 +973,17 @@ int petrinet_return( void )
+diff -u -p a/sequential/susan/susan.c b/sequential/susan/susan.c
+--- a/sequential/susan/susan.c
++++ b/sequential/susan/susan.c
+@@ -2499,10 +2499,17 @@ int susan_return( void )
+   return 0;
  }
  
- 
 +#include <siccsrs.h>
  int main( void )
  {
--  petrinet_main();
+-  susan_init();
+-  susan_main();
 +  sicsetup();
  
 +  {
-+    petrinet_main();
++    susan_init();
++    susan_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( petrinet_return() );
+   return susan_return();
  }
- 
-diff -u -p a/sequential/mpeg2/mpeg2.c b/sequential/mpeg2/mpeg2.c
---- a/sequential/mpeg2/mpeg2.c
-+++ b/sequential/mpeg2/mpeg2.c
-@@ -13203,10 +13203,17 @@ void _Pragma ( "entrypoint" ) mpeg2_main
+diff -u -p a/sequential/gsm_enc/gsm_enc.c b/sequential/gsm_enc/gsm_enc.c
+--- a/sequential/gsm_enc/gsm_enc.c
++++ b/sequential/gsm_enc/gsm_enc.c
+@@ -2215,9 +2215,16 @@ void _Pragma( "entrypoint" ) gsm_enc_mai
+                     gsm_enc_gsmdata + i * sizeof( gsm_frame ) );
  }
  
- 
 +#include <siccsrs.h>
  int main( void )
  {
--  mpeg2_init();
--  mpeg2_main();
+-  gsm_enc_init();
+-  gsm_enc_main();
 +  sicsetup();
- 
-+  {
-+    mpeg2_init();
-+    mpeg2_main();
 +
++  {
++    gsm_enc_init();
++    gsm_enc_main();
 +  }
 +
 +  siccsrs();
-   return ( mpeg2_return() - ( -116 ) != 0 );
+   return ( gsm_enc_return() );
  }
-diff -u -p a/sequential/anagram/anagram.c b/sequential/anagram/anagram.c
---- a/sequential/anagram/anagram.c
-+++ b/sequential/anagram/anagram.c
-@@ -647,14 +647,21 @@ void _Pragma( "entrypoint" ) anagram_mai
+diff -u -p a/sequential/huff_enc/huff_enc.c b/sequential/huff_enc/huff_enc.c
+--- a/sequential/huff_enc/huff_enc.c
++++ b/sequential/huff_enc/huff_enc.c
+@@ -581,9 +581,16 @@ void _Pragma( "entrypoint" ) huff_enc_ma
  }
  
  
 +#include <siccsrs.h>
- /*
-   Main function
- */
- 
  int main( void )
  {
--  anagram_init();
--  anagram_main();
+-  huff_enc_init();
+-  huff_enc_main();
 +  sicsetup();
- 
-+  {
-+    anagram_init();
-+    anagram_main();
 +
++  {
++    huff_enc_init();
++    huff_enc_main();
 +  }
 +
 +  siccsrs();
-   return anagram_return();
+   return ( huff_enc_return() );
  }
-diff -u -p a/sequential/audiobeam/audiobeam.c b/sequential/audiobeam/audiobeam.c
---- a/sequential/audiobeam/audiobeam.c
-+++ b/sequential/audiobeam/audiobeam.c
-@@ -575,11 +575,18 @@ void _Pragma( "entrypoint" ) audiobeam_m
+diff -u -p a/sequential/fmref/fmref.c b/sequential/fmref/fmref.c
+--- a/sequential/fmref/fmref.c
++++ b/sequential/fmref/fmref.c
+@@ -72,10 +72,17 @@ int fmref_return( void )
+   return 0;
  }
  
- 
 +#include <siccsrs.h>
  int main( void )
  {
--  audiobeam_init();
--  audiobeam_main();
+-  fmref_init();
+-  fmref_main();
 +  sicsetup();
- 
-+  {
-+    audiobeam_init();
-+    audiobeam_main();
 +
++  {
++    fmref_init();
++    fmref_main();
 +  }
 +
 +  siccsrs();
-   return ( audiobeam_return() );
+   return fmref_return();
  }
  
-diff -u -p a/sequential/susan/susan.c b/sequential/susan/susan.c
---- a/sequential/susan/susan.c
-+++ b/sequential/susan/susan.c
-@@ -2499,10 +2499,17 @@ int susan_return( void )
-   return 0;
+diff -u -p a/sequential/huff_dec/huff_dec.c b/sequential/huff_dec/huff_dec.c
+--- a/sequential/huff_dec/huff_dec.c
++++ b/sequential/huff_dec/huff_dec.c
+@@ -374,9 +374,16 @@ void _Pragma( "entrypoint" ) huff_dec_ma
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  susan_init();
--  susan_main();
+-  huff_dec_init();
+-  huff_dec_main();
 +  sicsetup();
- 
-+  {
-+    susan_init();
-+    susan_main();
 +
++  {
++    huff_dec_init();
++    huff_dec_main();
 +  }
 +
 +  siccsrs();
-   return susan_return();
+   return ( huff_dec_return() );
  }
-diff -u -p a/sequential/gsm_dec/gsm_dec.c b/sequential/gsm_dec/gsm_dec.c
---- a/sequential/gsm_dec/gsm_dec.c
-+++ b/sequential/gsm_dec/gsm_dec.c
-@@ -748,9 +748,16 @@ void _Pragma( "entrypoint" ) gsm_dec_mai
-   }
+diff -u -p a/sequential/petrinet/petrinet.c b/sequential/petrinet/petrinet.c
+--- a/sequential/petrinet/petrinet.c
++++ b/sequential/petrinet/petrinet.c
+@@ -973,10 +973,17 @@ int petrinet_return( void )
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  gsm_dec_init();
--  gsm_dec_main();
+-  petrinet_main();
 +  sicsetup();
-+
+ 
 +  {
-+    gsm_dec_init();
-+    gsm_dec_main();
++    petrinet_main();
++
 +  }
 +
 +  siccsrs();
-   return ( gsm_dec_return() );
+   return ( petrinet_return() );
  }
-diff -u -p a/sequential/cjpeg_transupp/cjpeg_transupp.c b/sequential/cjpeg_transupp/cjpeg_transupp.c
---- a/sequential/cjpeg_transupp/cjpeg_transupp.c
-+++ b/sequential/cjpeg_transupp/cjpeg_transupp.c
-@@ -703,10 +703,17 @@ void _Pragma ( "entrypoint" ) cjpeg_tran
+ 
+diff -u -p a/sequential/adpcm_dec/adpcm_dec.c b/sequential/adpcm_dec/adpcm_dec.c
+--- a/sequential/adpcm_dec/adpcm_dec.c
++++ b/sequential/adpcm_dec/adpcm_dec.c
+@@ -701,10 +701,17 @@ void _Pragma( "entrypoint" ) adpcm_dec_m
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  cjpeg_transupp_init();
--  cjpeg_transupp_main();
+-  adpcm_dec_init();
+-  adpcm_dec_main();
 +  sicsetup();
  
 +  {
-+    cjpeg_transupp_init();
-+    cjpeg_transupp_main();
++    adpcm_dec_init();
++    adpcm_dec_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( cjpeg_transupp_return() - 660 != 0 );
+   return ( adpcm_dec_return() );
  }
-diff -u -p a/sequential/huff_dec/huff_dec.c b/sequential/huff_dec/huff_dec.c
---- a/sequential/huff_dec/huff_dec.c
-+++ b/sequential/huff_dec/huff_dec.c
-@@ -374,9 +374,16 @@ void _Pragma( "entrypoint" ) huff_dec_ma
+diff -u -p a/sequential/dijkstra/dijkstra.c b/sequential/dijkstra/dijkstra.c
+--- a/sequential/dijkstra/dijkstra.c
++++ b/sequential/dijkstra/dijkstra.c
+@@ -188,10 +188,17 @@ void _Pragma( "entrypoint" ) dijkstra_ma
+   }
  }
  
- 
 +#include <siccsrs.h>
  int main( void )
  {
--  huff_dec_init();
--  huff_dec_main();
+-  dijkstra_init();
+-  dijkstra_main();
 +  sicsetup();
-+
+ 
 +  {
-+    huff_dec_init();
-+    huff_dec_main();
++    dijkstra_init();
++    dijkstra_main();
++
 +  }
 +
 +  siccsrs();
-   return ( huff_dec_return() );
+   return ( dijkstra_return() );
  }
-diff -u -p a/sequential/gsm_enc/gsm_enc.c b/sequential/gsm_enc/gsm_enc.c
---- a/sequential/gsm_enc/gsm_enc.c
-+++ b/sequential/gsm_enc/gsm_enc.c
-@@ -2215,9 +2215,16 @@ void _Pragma( "entrypoint" ) gsm_enc_mai
-                     gsm_enc_gsmdata + i * sizeof( gsm_frame ) );
+diff -u -p a/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c b/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
+--- a/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
++++ b/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
+@@ -207,11 +207,18 @@ int cjpeg_wrbmp_return()
+   return ( cjpeg_wrbmp_checksum  + ( -209330 ) ) != 0;
  }
  
 +#include <siccsrs.h>
  int main( void )
  {
--  gsm_enc_init();
--  gsm_enc_main();
+-  cjpeg_wrbmp_init();
+-  cjpeg_wrbmp_main();
 +  sicsetup();
+ 
++  {
++    cjpeg_wrbmp_init();
++    cjpeg_wrbmp_main();
 +
++  }
++
++  siccsrs();
+   return ( cjpeg_wrbmp_return() );
+ }
+ 
+diff -u -p a/sequential/statemate/statemate.c b/sequential/statemate/statemate.c
+--- a/sequential/statemate/statemate.c
++++ b/sequential/statemate/statemate.c
+@@ -1269,10 +1269,17 @@ void _Pragma ( "entrypoint" ) statemate_
+ }
+ 
+ 
++#include <siccsrs.h>
+ int main ( void )
+ {
+-  statemate_init();
+-  statemate_main();
++  sicsetup();
+ 
 +  {
-+    gsm_enc_init();
-+    gsm_enc_main();
++    statemate_init();
++    statemate_main();
++
 +  }
 +
 +  siccsrs();
-   return ( gsm_enc_return() );
+   return statemate_return();
  }
 diff -u -p a/sequential/ndes/ndes.c b/sequential/ndes/ndes.c
 --- a/sequential/ndes/ndes.c
@@ -416,149 +436,149 @@ diff -u -p a/sequential/ndes/ndes.c b/sequential/ndes/ndes.c
 +  siccsrs();
    return ( ndes_return() );
  }
-diff -u -p a/sequential/h264_dec/h264_dec.c b/sequential/h264_dec/h264_dec.c
---- a/sequential/h264_dec/h264_dec.c
-+++ b/sequential/h264_dec/h264_dec.c
-@@ -594,10 +594,17 @@ void _Pragma( "entrypoint" )  h264_dec_m
+diff -u -p a/sequential/anagram/anagram.c b/sequential/anagram/anagram.c
+--- a/sequential/anagram/anagram.c
++++ b/sequential/anagram/anagram.c
+@@ -647,14 +647,21 @@ void _Pragma( "entrypoint" ) anagram_mai
  }
  
  
 +#include <siccsrs.h>
+ /*
+   Main function
+ */
+ 
  int main( void )
  {
--  h264_dec_init();
--  h264_dec_main();
+-  anagram_init();
+-  anagram_main();
 +  sicsetup();
  
 +  {
-+    h264_dec_init();
-+    h264_dec_main();
++    anagram_init();
++    anagram_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( h264_dec_return() );
+   return anagram_return();
  }
-diff -u -p a/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c b/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
---- a/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
-+++ b/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
-@@ -207,11 +207,18 @@ int cjpeg_wrbmp_return()
-   return ( cjpeg_wrbmp_checksum  + ( -209330 ) ) != 0;
+diff -u -p a/sequential/audiobeam/audiobeam.c b/sequential/audiobeam/audiobeam.c
+--- a/sequential/audiobeam/audiobeam.c
++++ b/sequential/audiobeam/audiobeam.c
+@@ -575,11 +575,18 @@ void _Pragma( "entrypoint" ) audiobeam_m
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  cjpeg_wrbmp_init();
--  cjpeg_wrbmp_main();
+-  audiobeam_init();
+-  audiobeam_main();
 +  sicsetup();
  
 +  {
-+    cjpeg_wrbmp_init();
-+    cjpeg_wrbmp_main();
++    audiobeam_init();
++    audiobeam_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( cjpeg_wrbmp_return() );
+   return ( audiobeam_return() );
  }
  
-diff -u -p a/sequential/epic/epic.c b/sequential/epic/epic.c
---- a/sequential/epic/epic.c
-+++ b/sequential/epic/epic.c
-@@ -1127,10 +1127,17 @@ int epic_return()
-   return ( checksum == 43968 ? 0 : 1 );
+diff -u -p a/sequential/mpeg2/mpeg2.c b/sequential/mpeg2/mpeg2.c
+--- a/sequential/mpeg2/mpeg2.c
++++ b/sequential/mpeg2/mpeg2.c
+@@ -13203,10 +13203,17 @@ void _Pragma ( "entrypoint" ) mpeg2_main
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  epic_init();
--  epic_main();
+-  mpeg2_init();
+-  mpeg2_main();
 +  sicsetup();
  
 +  {
-+    epic_init();
-+    epic_main();
++    mpeg2_init();
++    mpeg2_main();
 +
 +  }
 +
 +  siccsrs();
-   return epic_return();
+   return ( mpeg2_return() - ( -116 ) != 0 );
  }
-diff -u -p a/sequential/statemate/statemate.c b/sequential/statemate/statemate.c
---- a/sequential/statemate/statemate.c
-+++ b/sequential/statemate/statemate.c
-@@ -1269,10 +1269,17 @@ void _Pragma ( "entrypoint" ) statemate_
+diff -u -p a/sequential/rijndael_enc/rijndael_enc.c b/sequential/rijndael_enc/rijndael_enc.c
+--- a/sequential/rijndael_enc/rijndael_enc.c
++++ b/sequential/rijndael_enc/rijndael_enc.c
+@@ -222,11 +222,18 @@ void _Pragma( "entrypoint" ) rijndael_en
+   rijndael_enc_encfile( &rijndael_enc_fin, ctx );
  }
  
- 
 +#include <siccsrs.h>
- int main ( void )
+ int main( void )
  {
--  statemate_init();
--  statemate_main();
+-  rijndael_enc_init();
+-  rijndael_enc_main();
 +  sicsetup();
  
 +  {
-+    statemate_init();
-+    statemate_main();
++    rijndael_enc_init();
++    rijndael_enc_main();
 +
 +  }
 +
 +  siccsrs();
-   return statemate_return();
+   return ( rijndael_enc_return() );
  }
-diff -u -p a/kernel/md5/md5.c b/kernel/md5/md5.c
---- a/kernel/md5/md5.c
-+++ b/kernel/md5/md5.c
-@@ -622,11 +622,18 @@ void _Pragma( "entrypoint" ) md5_main( v
-   md5_bytesNeeded = randomStruct.bytesNeeded + randomStruct2.bytesNeeded;
+ 
+diff -u -p a/kernel/fir2dim/fir2dim.c b/kernel/fir2dim/fir2dim.c
+--- a/kernel/fir2dim/fir2dim.c
++++ b/kernel/fir2dim/fir2dim.c
+@@ -189,11 +189,18 @@ void _Pragma( "entrypoint" ) fir2dim_mai
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  md5_init();
--  md5_main();
+-  fir2dim_init();
+-  fir2dim_main();
 +  sicsetup();
-+
+ 
 +  {
-+    md5_init();
-+    md5_main();
-   // printf("%d\n", ret);
++    fir2dim_init();
++    fir2dim_main();
++
 +  }
 +
 +  siccsrs();
-   return md5_return();
+   return ( fir2dim_return() );
  }
  
-diff -u -p a/kernel/bsort/bsort.c b/kernel/bsort/bsort.c
---- a/kernel/bsort/bsort.c
-+++ b/kernel/bsort/bsort.c
-@@ -119,14 +119,21 @@ void _Pragma( "entrypoint" ) bsort_main(
+diff -u -p a/kernel/deg2rad/deg2rad.c b/kernel/deg2rad/deg2rad.c
+--- a/kernel/deg2rad/deg2rad.c
++++ b/kernel/deg2rad/deg2rad.c
+@@ -82,9 +82,16 @@ void _Pragma( "entrypoint" ) deg2rad_mai
  }
  
  
 +#include <siccsrs.h>
- /*
-   Main function
- */
- 
  int main( void )
  {
--  bsort_init();
--  bsort_main();
+-  deg2rad_init();
+-  deg2rad_main();
 +  sicsetup();
- 
-+  {
-+    bsort_init();
-+    bsort_main();
 +
++  {
++    deg2rad_init();
++    deg2rad_main();
 +  }
 +
 +  siccsrs();
-   return bsort_return();
+   return deg2rad_return();
  }
 diff -u -p a/kernel/ludcmp/ludcmp.c b/kernel/ludcmp/ludcmp.c
 --- a/kernel/ludcmp/ludcmp.c
@@ -583,55 +603,28 @@ diff -u -p a/kernel/ludcmp/ludcmp.c b/kernel/ludcmp/ludcmp.c
 +  siccsrs();
    return ( ludcmp_return() );
  }
-diff -u -p a/kernel/isqrt/isqrt.c b/kernel/isqrt/isqrt.c
---- a/kernel/isqrt/isqrt.c
-+++ b/kernel/isqrt/isqrt.c
-@@ -147,10 +147,17 @@ void _Pragma( "entrypoint" ) isqrt_main(
- }
- 
- 
-+#include <siccsrs.h>
- int main( void )
- {
--  isqrt_init();
--  isqrt_main();
-+  sicsetup();
-+
-+  {
-+    isqrt_init();
-+    isqrt_main();
-+  }
-+
-+  siccsrs();
-   return isqrt_return();
- }
- 
-diff -u -p a/kernel/pm/pm.c b/kernel/pm/pm.c
---- a/kernel/pm/pm.c
-+++ b/kernel/pm/pm.c
-@@ -730,14 +730,21 @@ int pm_kernel( pm_data_t *pmdata )
+diff -u -p a/kernel/quicksort/quicksort.c b/kernel/quicksort/quicksort.c
+--- a/kernel/quicksort/quicksort.c
++++ b/kernel/quicksort/quicksort.c
+@@ -236,10 +236,17 @@ void _Pragma ( "entrypoint" ) quicksort_
  }
  
  
 +#include <siccsrs.h>
- /*
-   Main function
- */
- 
  int main( void )
  {
--  pm_init();
--  pm_main();
+-  quicksort_init();
+-  quicksort_main();
 +  sicsetup();
  
 +  {
-+    pm_init();
-+    pm_main();
++    quicksort_init();
++    quicksort_main();
 +
 +  }
 +
 +  siccsrs();
-   return pm_return();
+   return ( quicksort_return() - 1527923179 != 0 );
  }
 diff -u -p a/kernel/countnegative/countnegative.c b/kernel/countnegative/countnegative.c
 --- a/kernel/countnegative/countnegative.c
@@ -680,50 +673,75 @@ diff -u -p a/kernel/fft/fft.c b/kernel/fft/fft.c
 +  siccsrs();
    return fft_return();
  }
-diff -u -p a/kernel/cosf/cosf.c b/kernel/cosf/cosf.c
---- a/kernel/cosf/cosf.c
-+++ b/kernel/cosf/cosf.c
-@@ -77,10 +77,17 @@ void _Pragma( "entrypoint" ) cosf_main(
+diff -u -p a/kernel/md5/md5.c b/kernel/md5/md5.c
+--- a/kernel/md5/md5.c
++++ b/kernel/md5/md5.c
+@@ -622,11 +622,18 @@ void _Pragma( "entrypoint" ) md5_main( v
+   md5_bytesNeeded = randomStruct.bytesNeeded + randomStruct2.bytesNeeded;
  }
  
- 
 +#include <siccsrs.h>
  int main( void )
  {
--  cosf_init();
--  cosf_main();
+-  md5_init();
+-  md5_main();
 +  sicsetup();
 +
 +  {
-+    cosf_init();
-+    cosf_main();
++    md5_init();
++    md5_main();
+   // printf("%d\n", ret);
 +  }
 +
 +  siccsrs();
-   return cosf_return();
+   return md5_return();
  }
  
-diff -u -p a/kernel/deg2rad/deg2rad.c b/kernel/deg2rad/deg2rad.c
---- a/kernel/deg2rad/deg2rad.c
-+++ b/kernel/deg2rad/deg2rad.c
-@@ -82,9 +82,16 @@ void _Pragma( "entrypoint" ) deg2rad_mai
+diff -u -p a/kernel/sha/sha.c b/kernel/sha/sha.c
+--- a/kernel/sha/sha.c
++++ b/kernel/sha/sha.c
+@@ -211,9 +211,16 @@ int sha_return( void )
+   return ( sum - 261944 != 0 );
+ }
+ 
++#include <siccsrs.h>
+ int main ( void )
+ {
+-  sha_init();
+-  sha_main();
++  sicsetup();
++
++  {
++    sha_init();
++    sha_main();
++  }
++
++  siccsrs();
+   return ( sha_return() );
  }
+diff -u -p a/kernel/complex_updates/complex_updates.c b/kernel/complex_updates/complex_updates.c
+--- a/kernel/complex_updates/complex_updates.c
++++ b/kernel/complex_updates/complex_updates.c
+@@ -126,11 +126,18 @@ void _Pragma( "entrypoint" ) complex_upd
  
+ }
  
 +#include <siccsrs.h>
  int main( void )
  {
--  deg2rad_init();
--  deg2rad_main();
+-  complex_updates_init();
 +  sicsetup();
-+
+ 
+-  complex_updates_main();
 +  {
-+    deg2rad_init();
-+    deg2rad_main();
++    complex_updates_init();
+ 
++    complex_updates_main();
++
 +  }
 +
 +  siccsrs();
-   return deg2rad_return();
+   return complex_updates_return();
  }
 diff -u -p a/kernel/insertsort/insertsort.c b/kernel/insertsort/insertsort.c
 --- a/kernel/insertsort/insertsort.c
@@ -748,216 +766,245 @@ diff -u -p a/kernel/insertsort/insertsort.c b/kernel/insertsort/insertsort.c
    return ( insertsort_return() );
  }
  
-diff -u -p a/kernel/fac/fac.c b/kernel/fac/fac.c
---- a/kernel/fac/fac.c
-+++ b/kernel/fac/fac.c
-@@ -87,11 +87,18 @@ void _Pragma( "entrypoint" ) fac_main ()
+diff -u -p a/kernel/cubic/cubic.c b/kernel/cubic/cubic.c
+--- a/kernel/cubic/cubic.c
++++ b/kernel/cubic/cubic.c
+@@ -148,9 +148,16 @@ void cubic_solveCubic( float a, float b,
  }
  
  
 +#include <siccsrs.h>
- int main ( void )
+ int main( void )
  {
--  fac_init();
--  fac_main();
+-  cubic_init();
+-  cubic_main();
 +  sicsetup();
- 
-+  {
-+    fac_init();
-+    fac_main();
 +
++  {
++    cubic_init();
++    cubic_main();
 +  }
 +
 +  siccsrs();
-   return ( fac_return() );
+   return cubic_return();
  }
- 
-diff -u -p a/kernel/filterbank/filterbank.c b/kernel/filterbank/filterbank.c
---- a/kernel/filterbank/filterbank.c
-+++ b/kernel/filterbank/filterbank.c
-@@ -157,14 +157,21 @@ void filterbank_core( float r[ 256 ],
+diff -u -p a/kernel/st/st.c b/kernel/st/st.c
+--- a/kernel/st/st.c
++++ b/kernel/st/st.c
+@@ -217,10 +217,17 @@ void _Pragma( "entrypoint" ) st_main( vo
  }
  
  
 +#include <siccsrs.h>
- /*
-   Main function
- */
- 
  int main( void )
  {
--  filterbank_init();
--  filterbank_main();
+-  st_init();
+-  st_main();
 +  sicsetup();
  
 +  {
-+    filterbank_init();
-+    filterbank_main();
++    st_init();
++    st_main();
 +
 +  }
 +
 +  siccsrs();
-   return filterbank_return();
+   return ( st_return() );
  }
-diff -u -p a/kernel/st/st.c b/kernel/st/st.c
---- a/kernel/st/st.c
-+++ b/kernel/st/st.c
-@@ -217,10 +217,17 @@ void _Pragma( "entrypoint" ) st_main( vo
+diff -u -p a/kernel/jfdctint/jfdctint.c b/kernel/jfdctint/jfdctint.c
+--- a/kernel/jfdctint/jfdctint.c
++++ b/kernel/jfdctint/jfdctint.c
+@@ -310,10 +310,17 @@ void _Pragma ( "entrypoint" ) jfdctint_m
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  st_init();
--  st_main();
+-  jfdctint_init();
+-  jfdctint_main();
 +  sicsetup();
  
 +  {
-+    st_init();
-+    st_main();
++    jfdctint_init();
++    jfdctint_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( st_return() );
+   return ( jfdctint_return() );
  }
-diff -u -p a/kernel/sha/sha.c b/kernel/sha/sha.c
---- a/kernel/sha/sha.c
-+++ b/kernel/sha/sha.c
-@@ -211,9 +211,16 @@ int sha_return( void )
-   return ( sum - 261944 != 0 );
+diff -u -p a/kernel/bitcount/bitcount.c b/kernel/bitcount/bitcount.c
+--- a/kernel/bitcount/bitcount.c
++++ b/kernel/bitcount/bitcount.c
+@@ -137,10 +137,17 @@ void _Pragma( "entrypoint" ) bitcount_ma
+   _Pragma( "flowrestriction 1*btbl_bitcount <= 4*call_btbl" )
  }
  
 +#include <siccsrs.h>
- int main ( void )
+ int main( void )
  {
--  sha_init();
--  sha_main();
+-  bitcount_init();
+-  bitcount_main();
 +  sicsetup();
+ 
++  {
++    bitcount_init();
++    bitcount_main();
++
++  }
 +
++  siccsrs();
+   return ( bitcount_return() );
+ }
+diff -u -p a/kernel/binarysearch/binarysearch.c b/kernel/binarysearch/binarysearch.c
+--- a/kernel/binarysearch/binarysearch.c
++++ b/kernel/binarysearch/binarysearch.c
+@@ -147,10 +147,17 @@ void _Pragma( "entrypoint" ) binarysearc
+ }
+ 
+ 
++#include <siccsrs.h>
+ int main( void )
+ {
+-  binarysearch_init();
+-  binarysearch_main();
++  sicsetup();
+ 
 +  {
-+    sha_init();
-+    sha_main();
++    binarysearch_init();
++    binarysearch_main();
++
 +  }
 +
 +  siccsrs();
-   return ( sha_return() );
+   return ( binarysearch_return() - ( -1 ) != 0 );
  }
-diff -u -p a/kernel/fir2dim/fir2dim.c b/kernel/fir2dim/fir2dim.c
---- a/kernel/fir2dim/fir2dim.c
-+++ b/kernel/fir2dim/fir2dim.c
-@@ -189,11 +189,18 @@ void _Pragma( "entrypoint" ) fir2dim_mai
+diff -u -p a/kernel/bsort/bsort.c b/kernel/bsort/bsort.c
+--- a/kernel/bsort/bsort.c
++++ b/kernel/bsort/bsort.c
+@@ -119,14 +119,21 @@ void _Pragma( "entrypoint" ) bsort_main(
  }
  
  
 +#include <siccsrs.h>
+ /*
+   Main function
+ */
+ 
  int main( void )
  {
--  fir2dim_init();
--  fir2dim_main();
+-  bsort_init();
+-  bsort_main();
 +  sicsetup();
  
 +  {
-+    fir2dim_init();
-+    fir2dim_main();
++    bsort_init();
++    bsort_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( fir2dim_return() );
+   return bsort_return();
  }
- 
-diff -u -p a/kernel/bitcount/bitcount.c b/kernel/bitcount/bitcount.c
---- a/kernel/bitcount/bitcount.c
-+++ b/kernel/bitcount/bitcount.c
-@@ -137,10 +137,17 @@ void _Pragma( "entrypoint" ) bitcount_ma
-   _Pragma( "flowrestriction 1*btbl_bitcount <= 4*call_btbl" )
+diff -u -p a/kernel/minver/minver.c b/kernel/minver/minver.c
+--- a/kernel/minver/minver.c
++++ b/kernel/minver/minver.c
+@@ -247,11 +247,18 @@ void _Pragma( "entrypoint" ) minver_main
  }
  
+ 
 +#include <siccsrs.h>
  int main( void )
  {
--  bitcount_init();
--  bitcount_main();
+-  minver_init();
+-  minver_main();
 +  sicsetup();
  
 +  {
-+    bitcount_init();
-+    bitcount_main();
++    minver_init();
++    minver_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( bitcount_return() );
+   return ( minver_return() );
  }
-diff -u -p a/kernel/bitonic/bitonic.c b/kernel/bitonic/bitonic.c
---- a/kernel/bitonic/bitonic.c
-+++ b/kernel/bitonic/bitonic.c
-@@ -148,10 +148,17 @@ void _Pragma ( "entrypoint" ) bitonic_ma
+ 
+diff -u -p a/kernel/prime/prime.c b/kernel/prime/prime.c
+--- a/kernel/prime/prime.c
++++ b/kernel/prime/prime.c
+@@ -128,11 +128,18 @@ void _Pragma( "entrypoint" ) prime_main(
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  bitonic_init();
--  bitonic_main();
+-  prime_init();
+-  prime_main();
 +  sicsetup();
  
 +  {
-+    bitonic_init();
-+    bitonic_main();
++    prime_init();
++    prime_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( bitonic_return() );
+   return ( prime_return() ) ;
  }
-diff -u -p a/kernel/quicksort/quicksort.c b/kernel/quicksort/quicksort.c
---- a/kernel/quicksort/quicksort.c
-+++ b/kernel/quicksort/quicksort.c
-@@ -236,10 +236,17 @@ void _Pragma ( "entrypoint" ) quicksort_
+ 
+diff -u -p a/kernel/fac/fac.c b/kernel/fac/fac.c
+--- a/kernel/fac/fac.c
++++ b/kernel/fac/fac.c
+@@ -87,11 +87,18 @@ void _Pragma( "entrypoint" ) fac_main ()
  }
  
  
 +#include <siccsrs.h>
- int main( void )
+ int main ( void )
  {
--  quicksort_init();
--  quicksort_main();
+-  fac_init();
+-  fac_main();
 +  sicsetup();
  
 +  {
-+    quicksort_init();
-+    quicksort_main();
++    fac_init();
++    fac_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( quicksort_return() - 1527923179 != 0 );
+   return ( fac_return() );
  }
-diff -u -p a/kernel/cubic/cubic.c b/kernel/cubic/cubic.c
---- a/kernel/cubic/cubic.c
-+++ b/kernel/cubic/cubic.c
-@@ -148,9 +148,16 @@ void cubic_solveCubic( float a, float b,
+ 
+diff -u -p a/kernel/filterbank/filterbank.c b/kernel/filterbank/filterbank.c
+--- a/kernel/filterbank/filterbank.c
++++ b/kernel/filterbank/filterbank.c
+@@ -157,14 +157,21 @@ void filterbank_core( float r[ 256 ],
  }
  
  
 +#include <siccsrs.h>
+ /*
+   Main function
+ */
+ 
  int main( void )
  {
--  cubic_init();
--  cubic_main();
+-  filterbank_init();
+-  filterbank_main();
 +  sicsetup();
-+
+ 
 +  {
-+    cubic_init();
-+    cubic_main();
++    filterbank_init();
++    filterbank_main();
++
 +  }
 +
 +  siccsrs();
-   return cubic_return();
+   return filterbank_return();
  }
 diff -u -p a/kernel/recursion/recursion.c b/kernel/recursion/recursion.c
 --- a/kernel/recursion/recursion.c
@@ -981,6 +1028,29 @@ diff -u -p a/kernel/recursion/recursion.c b/kernel/recursion/recursion.c
 +  siccsrs();
    return ( recursion_return() );
  }
+diff -u -p a/kernel/cosf/cosf.c b/kernel/cosf/cosf.c
+--- a/kernel/cosf/cosf.c
++++ b/kernel/cosf/cosf.c
+@@ -77,10 +77,17 @@ void _Pragma( "entrypoint" ) cosf_main(
+ }
+ 
+ 
++#include <siccsrs.h>
+ int main( void )
+ {
+-  cosf_init();
+-  cosf_main();
++  sicsetup();
++
++  {
++    cosf_init();
++    cosf_main();
++  }
++
++  siccsrs();
+   return cosf_return();
+ }
+ 
 diff -u -p a/kernel/iir/iir.c b/kernel/iir/iir.c
 --- a/kernel/iir/iir.c
 +++ b/kernel/iir/iir.c
@@ -1004,74 +1074,72 @@ diff -u -p a/kernel/iir/iir.c b/kernel/iir/iir.c
 +  siccsrs();
    return ( iir_return() - 400 != 0 );
  }
-diff -u -p a/kernel/jfdctint/jfdctint.c b/kernel/jfdctint/jfdctint.c
---- a/kernel/jfdctint/jfdctint.c
-+++ b/kernel/jfdctint/jfdctint.c
-@@ -310,10 +310,17 @@ void _Pragma ( "entrypoint" ) jfdctint_m
+diff -u -p a/kernel/bitonic/bitonic.c b/kernel/bitonic/bitonic.c
+--- a/kernel/bitonic/bitonic.c
++++ b/kernel/bitonic/bitonic.c
+@@ -148,10 +148,17 @@ void _Pragma ( "entrypoint" ) bitonic_ma
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  jfdctint_init();
--  jfdctint_main();
+-  bitonic_init();
+-  bitonic_main();
 +  sicsetup();
  
 +  {
-+    jfdctint_init();
-+    jfdctint_main();
++    bitonic_init();
++    bitonic_main();
 +
 +  }
 +
 +  siccsrs();
-   return ( jfdctint_return() );
+   return ( bitonic_return() );
  }
-diff -u -p a/kernel/binarysearch/binarysearch.c b/kernel/binarysearch/binarysearch.c
---- a/kernel/binarysearch/binarysearch.c
-+++ b/kernel/binarysearch/binarysearch.c
-@@ -147,10 +147,17 @@ void _Pragma( "entrypoint" ) binarysearc
+diff -u -p a/kernel/rad2deg/rad2deg.c b/kernel/rad2deg/rad2deg.c
+--- a/kernel/rad2deg/rad2deg.c
++++ b/kernel/rad2deg/rad2deg.c
+@@ -81,9 +81,16 @@ void _Pragma ( "entrypoint" ) rad2deg_ma
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  binarysearch_init();
--  binarysearch_main();
+-  rad2deg_init();
+-  rad2deg_main();
 +  sicsetup();
- 
-+  {
-+    binarysearch_init();
-+    binarysearch_main();
 +
++  {
++    rad2deg_init();
++    rad2deg_main();
 +  }
 +
 +  siccsrs();
-   return ( binarysearch_return() - ( -1 ) != 0 );
+   return rad2deg_return();
  }
-diff -u -p a/kernel/minver/minver.c b/kernel/minver/minver.c
---- a/kernel/minver/minver.c
-+++ b/kernel/minver/minver.c
-@@ -247,11 +247,18 @@ void _Pragma( "entrypoint" ) minver_main
+diff -u -p a/kernel/lms/lms.c b/kernel/lms/lms.c
+--- a/kernel/lms/lms.c
++++ b/kernel/lms/lms.c
+@@ -194,10 +194,17 @@ int lms_return( void )
  }
  
  
 +#include <siccsrs.h>
- int main( void )
+ int main()
  {
--  minver_init();
--  minver_main();
+-  lms_init();
+-  lms_main();
 +  sicsetup();
- 
-+  {
-+    minver_init();
-+    minver_main();
 +
++  {
++    lms_init();
++    lms_main();
 +  }
 +
 +  siccsrs();
-   return ( minver_return() );
+   return ( lms_return() );
  }
  
 diff -u -p a/kernel/matrix1/matrix1.c b/kernel/matrix1/matrix1.c
@@ -1097,73 +1165,53 @@ diff -u -p a/kernel/matrix1/matrix1.c b/kernel/matrix1/matrix1.c
 +  siccsrs();
    return matrix1_return();
  }
-diff -u -p a/kernel/prime/prime.c b/kernel/prime/prime.c
---- a/kernel/prime/prime.c
-+++ b/kernel/prime/prime.c
-@@ -128,11 +128,18 @@ void _Pragma( "entrypoint" ) prime_main(
+diff -u -p a/kernel/isqrt/isqrt.c b/kernel/isqrt/isqrt.c
+--- a/kernel/isqrt/isqrt.c
++++ b/kernel/isqrt/isqrt.c
+@@ -147,10 +147,17 @@ void _Pragma( "entrypoint" ) isqrt_main(
  }
  
  
 +#include <siccsrs.h>
  int main( void )
  {
--  prime_init();
--  prime_main();
+-  isqrt_init();
+-  isqrt_main();
 +  sicsetup();
- 
-+  {
-+    prime_init();
-+    prime_main();
 +
++  {
++    isqrt_init();
++    isqrt_main();
 +  }
 +
 +  siccsrs();
-   return ( prime_return() ) ;
+   return isqrt_return();
  }
  
-diff -u -p a/kernel/complex_updates/complex_updates.c b/kernel/complex_updates/complex_updates.c
---- a/kernel/complex_updates/complex_updates.c
-+++ b/kernel/complex_updates/complex_updates.c
-@@ -126,11 +126,18 @@ void _Pragma( "entrypoint" ) complex_upd
- 
+diff -u -p a/kernel/pm/pm.c b/kernel/pm/pm.c
+--- a/kernel/pm/pm.c
++++ b/kernel/pm/pm.c
+@@ -730,14 +730,21 @@ int pm_kernel( pm_data_t *pmdata )
  }
  
+ 
 +#include <siccsrs.h>
+ /*
+   Main function
+ */
+ 
  int main( void )
  {
--  complex_updates_init();
+-  pm_init();
+-  pm_main();
 +  sicsetup();
  
--  complex_updates_main();
 +  {
-+    complex_updates_init();
- 
-+    complex_updates_main();
-+
-+  }
-+
-+  siccsrs();
-   return complex_updates_return();
- }
-diff -u -p a/kernel/rad2deg/rad2deg.c b/kernel/rad2deg/rad2deg.c
---- a/kernel/rad2deg/rad2deg.c
-+++ b/kernel/rad2deg/rad2deg.c
-@@ -81,9 +81,16 @@ void _Pragma ( "entrypoint" ) rad2deg_ma
- }
- 
- 
-+#include <siccsrs.h>
- int main( void )
- {
--  rad2deg_init();
--  rad2deg_main();
-+  sicsetup();
++    pm_init();
++    pm_main();
 +
-+  {
-+    rad2deg_init();
-+    rad2deg_main();
 +  }
 +
 +  siccsrs();
-   return rad2deg_return();
+   return pm_return();
  }