diff --git a/app/bcc1/alarm1/verify_a.py b/app/bcc1/alarm1/verify_a.py index 510d02fea275b06d00993645f113837c7bd6c8d3..4a2069aed7fae2901b5a72289141f3b77823911b 100644 --- a/app/bcc1/alarm1/verify_a.py +++ b/app/bcc1/alarm1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/alarm1/verify_b.py b/app/bcc1/alarm1/verify_b.py index 072fa65cc6a8dd520c9ee3b58233b3553a6d6dd0..31e40f49ae8958a1a955f1d573e5522be164c7b0 100644 --- a/app/bcc1/alarm1/verify_b.py +++ b/app/bcc1/alarm1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/alarm1/verify_c.py b/app/bcc1/alarm1/verify_c.py index e93204d7e0b835d23d1e4b685f25f4373855e220..680974bf0cad5f82050598473a716758df6aa002 100644 --- a/app/bcc1/alarm1/verify_c.py +++ b/app/bcc1/alarm1/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/alarm1/verify_d.py b/app/bcc1/alarm1/verify_d.py index 006e9f219b15a0e5abd5ca45369994cc61357483..be909e1e390d5e122f49ecf01f86e92f81d03a66 100644 --- a/app/bcc1/alarm1/verify_d.py +++ b/app/bcc1/alarm1/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/alarm1/verify_e.py b/app/bcc1/alarm1/verify_e.py index 994365a24bb17bdbcd1b89e6da9033d3f17eb135..1d363962810aec6edf2473da42cc37d3e5e1d5f4 100644 --- a/app/bcc1/alarm1/verify_e.py +++ b/app/bcc1/alarm1/verify_e.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/alarm3/verify_a.py b/app/bcc1/alarm3/verify_a.py index e47cc29964fc9c214419b5a268d7f4cec7b38263..5e1c4dc745fc7feb00f24e388e2c068cba3f0292 100644 --- a/app/bcc1/alarm3/verify_a.py +++ b/app/bcc1/alarm3/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def computation_blocks(analysis, function): provider = analysis.global_abb_information_provider() diff --git a/app/bcc1/alarm3/verify_b.py b/app/bcc1/alarm3/verify_b.py index 2a6ab5c4dafb553667b2a7172e708ed3e7e30edf..bfe905e306fcbd0fd55a49763cbdeaacd475075a 100644 --- a/app/bcc1/alarm3/verify_b.py +++ b/app/bcc1/alarm3/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * from verify_a import * def after_ConstructGlobalCFG(analysis): diff --git a/app/bcc1/alarm3/verify_c.py b/app/bcc1/alarm3/verify_c.py index 110b65ff12ee80259e620c7f98bac451a084c32e..069aa2d4c9775c2a01d39eff4d957122c11c82a5 100644 --- a/app/bcc1/alarm3/verify_c.py +++ b/app/bcc1/alarm3/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * from verify_a import * def after_ConstructGlobalCFG(analysis): diff --git a/app/bcc1/alarm3/verify_d.py b/app/bcc1/alarm3/verify_d.py index 3e2e1adf504615588377e42649048bc4f1ea0e08..c8b85680a6287c22cb53db688e533528154d9b2a 100644 --- a/app/bcc1/alarm3/verify_d.py +++ b/app/bcc1/alarm3/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * from verify_a import * def after_ConstructGlobalCFG(analysis): diff --git a/app/bcc1/alarm3/verify_e.py b/app/bcc1/alarm3/verify_e.py index 99e919e5d6904330ef3d617a8ac57efaa53aaf79..6c490ff3f471c6834ae64b3de6274cea827e0c9b 100644 --- a/app/bcc1/alarm3/verify_e.py +++ b/app/bcc1/alarm3/verify_e.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * from verify_a import * def after_ConstructGlobalCFG(analysis): diff --git a/app/bcc1/complex1/verify_a.py b/app/bcc1/complex1/verify_a.py index 05bee157862bbbede19d6eb8ba0bfbd5c6854329..da4a2286060de536fce589bb47911c5a17d7480e 100644 --- a/app/bcc1/complex1/verify_a.py +++ b/app/bcc1/complex1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/complex1/verify_b.py b/app/bcc1/complex1/verify_b.py index cbb196b30c42b14fd3bed683f25cb17d1d1355ab..d9278819b9dc8e6d68ca15896df58f218f795a81 100644 --- a/app/bcc1/complex1/verify_b.py +++ b/app/bcc1/complex1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/complex1/verify_c.py b/app/bcc1/complex1/verify_c.py index 1f9f011600ef3fa657d7a059bbe9bb27a398bb71..3c59404a5df2909624a269506c336422a33e8701 100644 --- a/app/bcc1/complex1/verify_c.py +++ b/app/bcc1/complex1/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/complex2/verify_a.py b/app/bcc1/complex2/verify_a.py index ee9debb5f635ee1f8d5f3d553ea47012d02e4026..f78c37c48d2ae34a537a2c81d46565fd14564b40 100644 --- a/app/bcc1/complex2/verify_a.py +++ b/app/bcc1/complex2/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/isr2/verify_a.py b/app/bcc1/isr2/verify_a.py index 3529648dd5c14b59ddb254f700c575c70e32c24b..78b5167bd5f060aaa93681d4e73e2d262c917c8c 100644 --- a/app/bcc1/isr2/verify_a.py +++ b/app/bcc1/isr2/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/isr2/verify_b.py b/app/bcc1/isr2/verify_b.py index 4abb4e9c9302a7366150dc580ec71b924ca48132..73acbc95e0456d272357b92a03cfa8cdef5aef89 100644 --- a/app/bcc1/isr2/verify_b.py +++ b/app/bcc1/isr2/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/isr2/verify_c.py b/app/bcc1/isr2/verify_c.py index 6473891453c21fae718dffb2e12515f6fc69c5c3..9ffd846104d08b7423344d2625454fd2bb08adf9 100644 --- a/app/bcc1/isr2/verify_c.py +++ b/app/bcc1/isr2/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/isr2/verify_d.py b/app/bcc1/isr2/verify_d.py index ba927240b165b33f9231404f41dd1713cd61e7fe..6fcfbd691dc6e6c07d47bb312b3d8293b0b6dca2 100644 --- a/app/bcc1/isr2/verify_d.py +++ b/app/bcc1/isr2/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/isr2/verify_e.py b/app/bcc1/isr2/verify_e.py index 022073d80232696363979ee5154fd53e3a78e4f7..1280c07060b4dfd7cd390145b22c415db4029a06 100644 --- a/app/bcc1/isr2/verify_e.py +++ b/app/bcc1/isr2/verify_e.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_a.py b/app/bcc1/resource1/verify_a.py index 2a4d5204fdd28d4586aac5cad84ab1fab706f663..757d99ce859f587b2780ab4ec141303ae234f593 100644 --- a/app/bcc1/resource1/verify_a.py +++ b/app/bcc1/resource1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_b.py b/app/bcc1/resource1/verify_b.py index a79be35c877f13c9165462811e69fa624e1f45b2..38193e4fdcf5a2e086f640125297cdd641f88687 100644 --- a/app/bcc1/resource1/verify_b.py +++ b/app/bcc1/resource1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_d.py b/app/bcc1/resource1/verify_d.py index acd06ab3f2132ace85d57251c08c07296f902827..b801be5ad0024978a665eb1875127c8043dcc842 100644 --- a/app/bcc1/resource1/verify_d.py +++ b/app/bcc1/resource1/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_e.py b/app/bcc1/resource1/verify_e.py index 0e405b8a2ae3b173dc42da1b6353c20a23ddfcfd..35af3d76686dc2842159f7cf762af64094e50b53 100644 --- a/app/bcc1/resource1/verify_e.py +++ b/app/bcc1/resource1/verify_e.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_f.py b/app/bcc1/resource1/verify_f.py index 7eb29596670eda62339ee0f971b6aea709a1ff96..b98baa89a0f94761f1f8b52ada9dc9b3074c3a09 100644 --- a/app/bcc1/resource1/verify_f.py +++ b/app/bcc1/resource1/verify_f.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_g.py b/app/bcc1/resource1/verify_g.py index 86f11456d51ab9c8d089151ebb9be5230177ea39..d7e8538502fdb58955c0ce5211ccd0fcbd1aa97d 100644 --- a/app/bcc1/resource1/verify_g.py +++ b/app/bcc1/resource1/verify_g.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_h.py b/app/bcc1/resource1/verify_h.py index 469900efd8909a757aa64b4c1983152a3ed49f9e..80e48e409d41f98b5a98a5b0a9cca6b35441e09b 100644 --- a/app/bcc1/resource1/verify_h.py +++ b/app/bcc1/resource1/verify_h.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource1/verify_k.py b/app/bcc1/resource1/verify_k.py index f323e8a9ac5d848c3d8134f026de3cce32b28aa1..1b7f8e34ff4e297609a1420b327215ca0972108b 100644 --- a/app/bcc1/resource1/verify_k.py +++ b/app/bcc1/resource1/verify_k.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource2/verify_a.py b/app/bcc1/resource2/verify_a.py index ba23dbde74380c3cca01855ba2962dc64e40445e..64947833c69596ad576b2c46fc1f0dae0a9d95ae 100644 --- a/app/bcc1/resource2/verify_a.py +++ b/app/bcc1/resource2/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/resource2/verify_b.py b/app/bcc1/resource2/verify_b.py index 346257b7afb55b949855434bdeae5b71936ef3cd..2b782f2247ca6e1e29b54ae941f588b010ad67c7 100644 --- a/app/bcc1/resource2/verify_b.py +++ b/app/bcc1/resource2/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/sse1/verify_a.py b/app/bcc1/sse1/verify_a.py index bbf7c47dd2bf8d8a01ec2b8b5c0d3b9ecad9ef38..c9018569aaf99e5cc676c16276a158532a8349fb 100644 --- a/app/bcc1/sse1/verify_a.py +++ b/app/bcc1/sse1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/sse1/verify_b.py b/app/bcc1/sse1/verify_b.py index 3cdfc2205f698395f6944177f89a4c60ee5ea7ec..cf37df76a17301ed1430aa25d1386b317404cc89 100644 --- a/app/bcc1/sse1/verify_b.py +++ b/app/bcc1/sse1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/sse1/verify_c.py b/app/bcc1/sse1/verify_c.py index 4e964883434911642f2fda8fc9745338054eff91..5c134ab126ac9d774a50993cc02f781ef1063795 100644 --- a/app/bcc1/sse1/verify_c.py +++ b/app/bcc1/sse1/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/task1/verify_a.py b/app/bcc1/task1/verify_a.py index 588a21e336d94ac25978fbd740de4a549a69519e..5dfed77c516bc60c470fd2a1b98752135023db4b 100644 --- a/app/bcc1/task1/verify_a.py +++ b/app/bcc1/task1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/task1/verify_b.py b/app/bcc1/task1/verify_b.py index 4b4488bee1b836a0bab02a8f9566b9f1b3d5c8b7..3f98dc6990c9684d4114243895356c2e403a23eb 100644 --- a/app/bcc1/task1/verify_b.py +++ b/app/bcc1/task1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_CurrentRunningSubtask(analysis): (Handler11, bar) = \ diff --git a/app/bcc1/task1/verify_c.py b/app/bcc1/task1/verify_c.py index fc626b4caa34c1f7afd61f251f959a2e5f8b2959..b2f9d9c5c96f0b5bf725f55961143ffaf5734d19 100644 --- a/app/bcc1/task1/verify_c.py +++ b/app/bcc1/task1/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_CurrentRunningSubtask(analysis): (Handler11, bar) = \ diff --git a/app/bcc1/task1/verify_d.py b/app/bcc1/task1/verify_d.py index 6f8a6b029094774223ed790d9bb0627fb9400693..2c8c2d10cb7e05dde160fae77bb72d8610f88ea4 100644 --- a/app/bcc1/task1/verify_d.py +++ b/app/bcc1/task1/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_CurrentRunningSubtask(analysis): (Handler11, bar) = \ diff --git a/app/bcc1/task1/verify_e.py b/app/bcc1/task1/verify_e.py index 52f57aca7d31183867f1bdd0c1932340639ade86..7ae2686f9aae747db57cd04d36a41864663cd967 100644 --- a/app/bcc1/task1/verify_e.py +++ b/app/bcc1/task1/verify_e.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/task1/verify_f.py b/app/bcc1/task1/verify_f.py index 2a11f38abef4374d9b3984b177cbf4778ad031c9..5429420b911e074c30bae46554e51867f313f90f 100644 --- a/app/bcc1/task1/verify_f.py +++ b/app/bcc1/task1/verify_f.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/task1/verify_g.py b/app/bcc1/task1/verify_g.py index d48d67d12ff725ebe6772bb0bc45f475e8798b62..b088f5987c9d80fab2a06bbf17c529f0bb2103e5 100644 --- a/app/bcc1/task1/verify_g.py +++ b/app/bcc1/task1/verify_g.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/task2/verify_a.py b/app/bcc1/task2/verify_a.py index 018851d63c1e37994899755ce1506e7abcb14cc2..ca68146bfbe5ece623312d1daa95c6e1980e96be 100644 --- a/app/bcc1/task2/verify_a.py +++ b/app/bcc1/task2/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/bcc1/task2/verify_b.py b/app/bcc1/task2/verify_b.py index 93bcbfb0699546a148cd6250daab73a61e17efd3..0a37afd2ae329d143b51ab4b97f6679689308ae6 100644 --- a/app/bcc1/task2/verify_b.py +++ b/app/bcc1/task2/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_SystemStateFlow(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/event1/verify_a.py b/app/ecc1/event1/verify_a.py index 2a328abc899c32e067288eaf7a774b79d3460fc9..a59ae3c6254d05dc5a8e83f868c46cf9e995b4fb 100644 --- a/app/ecc1/event1/verify_a.py +++ b/app/ecc1/event1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/event1/verify_b.py b/app/ecc1/event1/verify_b.py index 7b686139ffad10380055e0a26db46de99a112fa8..d843789d11d06d9e97f968f7d1fa96bad7687b3b 100644 --- a/app/ecc1/event1/verify_b.py +++ b/app/ecc1/event1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/event1/verify_c.py b/app/ecc1/event1/verify_c.py index 63b684e718952be25d16ca5c982763dc0bfb0801..bb908a41006e02ea061ed0aa4426d2a4b2ff4ddf 100644 --- a/app/ecc1/event1/verify_c.py +++ b/app/ecc1/event1/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/event1/verify_d.py b/app/ecc1/event1/verify_d.py index 2a643e43b3d6b7055be52b9e4ca8de43b588c773..3bc72fe802cfcab6a14d632faecdd677dc9864e2 100644 --- a/app/ecc1/event1/verify_d.py +++ b/app/ecc1/event1/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/event1/verify_e.py b/app/ecc1/event1/verify_e.py index aba3bc308924d5ce29fcc909e26fbc8e1b625ac1..9973dd00090e83513bd8ce6870ac9d9d7d044de6 100644 --- a/app/ecc1/event1/verify_e.py +++ b/app/ecc1/event1/verify_e.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/eventisr1/verify_a.py b/app/ecc1/eventisr1/verify_a.py index 107489ec7f6b521f7497985c3d5f865d717293a8..1690cc3ad01c046acd4490091db9af4a0ea944bb 100644 --- a/app/ecc1/eventisr1/verify_a.py +++ b/app/ecc1/eventisr1/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/eventisr1/verify_b.py b/app/ecc1/eventisr1/verify_b.py index 752a00b0609ceb9b16d1337b188872c9139c923a..a396464e8bdaf8efb9593f2bc1d775501dae7942 100644 --- a/app/ecc1/eventisr1/verify_b.py +++ b/app/ecc1/eventisr1/verify_b.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/eventisr1/verify_c.py b/app/ecc1/eventisr1/verify_c.py index b200caae0c8abb7b4a9779089eaf1a18d560df87..29e90d529c1f078c1d64d40c6ff2b10c1140e51f 100644 --- a/app/ecc1/eventisr1/verify_c.py +++ b/app/ecc1/eventisr1/verify_c.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/ecc1/eventisr1/verify_d.py b/app/ecc1/eventisr1/verify_d.py index 9cd36e8403ab8b5f88d03e954689d67c2d27ba09..eee5e9d6dae9ea6386ae894e49b90df0b3dd0c56 100644 --- a/app/ecc1/eventisr1/verify_d.py +++ b/app/ecc1/eventisr1/verify_d.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/sysmodel/1alarm/verify_a.py b/app/sysmodel/1alarm/verify_a.py index 0b0ad4dba1d03624a41654a0ee8fb6ef53780564..80461af38447045e001c0304b5bda01993c4f4b0 100644 --- a/app/sysmodel/1alarm/verify_a.py +++ b/app/sysmodel/1alarm/verify_a.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/app/sysmodel/1alarm/verify_aa.py b/app/sysmodel/1alarm/verify_aa.py index 23b1003fd0ba246d9b118b5bc528f5d1d364c375..df9095e3260beede5437795929bfecb557fc58c4 100644 --- a/app/sysmodel/1alarm/verify_aa.py +++ b/app/sysmodel/1alarm/verify_aa.py @@ -1,4 +1,4 @@ -from generator.graph.verifier_tools import * +from generator.analysis.verifier_tools import * def after_ConstructGlobalCFG(analysis): # Find all three systemcall handlers diff --git a/generator/CMakeLists.txt b/generator/CMakeLists.txt index e7b96ef177f6cc6ff75cc45308b0198a6ef92fec..bfe1469447c5bc89fec2b6c480efb278487e3887 100644 --- a/generator/CMakeLists.txt +++ b/generator/CMakeLists.txt @@ -1,6 +1,6 @@ set(PYTHON_MODULES_TEST - elements/template + coder/elements/template ) foreach(module ${PYTHON_MODULES_TEST}) diff --git a/generator/Generator.py b/generator/Generator.py index cef15290e8ec3d1650f292ee7d0da46e8f078b4a..0d9f6da679abaa24d1229cc7cd5ed114f1794c28 100644 --- a/generator/Generator.py +++ b/generator/Generator.py @@ -1,8 +1,8 @@ -from generator.elements import * -from generator.graph.Function import Function as GraphFunction -from generator.graph.types import S -from .rules.implementations import * -from .rules import SignatureGenerator +from .coder.elements import * +from .analysis.Function import Function as GraphFunction +from .analysis.types import S +from .coder.implementations import * +from .coder import SignatureGenerator import logging diff --git a/generator/LLVMPYAnalysis.py b/generator/LLVMPYAnalysis.py index df5ff0214a83a864586d612f9f34e1ac580a030e..69c656be0bf46b7f97c9052fbddc2c0a27504daa 100644 --- a/generator/LLVMPYAnalysis.py +++ b/generator/LLVMPYAnalysis.py @@ -4,8 +4,8 @@ import sys from functools import reduce from llvmpy import api from collections import defaultdict, namedtuple -from generator.graph.AtomicBasicBlock import S, E, ControlFlowEdge -from generator.graph.common import Node, Edge, EdgeType, NodeType +from generator.analysis.AtomicBasicBlock import S, E, ControlFlowEdge +from generator.analysis.common import Node, Edge, EdgeType, NodeType diff --git a/generator/graph/ABBMergePass.py b/generator/analysis/ABBMergePass.py similarity index 98% rename from generator/graph/ABBMergePass.py rename to generator/analysis/ABBMergePass.py index 06072653d9b66f3e90d84abb785c99949ed6bef8..973bf64feef8f314f5bd678bb9176999f8a2c3c3 100644 --- a/generator/graph/ABBMergePass.py +++ b/generator/analysis/ABBMergePass.py @@ -1,7 +1,7 @@ import logging -from generator.graph.Analysis import Analysis, FixpointIteration -from generator.graph.AtomicBasicBlock import E, S -from generator.graph.Function import Function +from .Analysis import Analysis, FixpointIteration +from .AtomicBasicBlock import E, S +from .Function import Function from .DominanceAnalysis import DominanceAnalysis from generator.tools import panic, stack from collections import namedtuple diff --git a/generator/graph/AddFunctionCalls.py b/generator/analysis/AddFunctionCalls.py similarity index 94% rename from generator/graph/AddFunctionCalls.py rename to generator/analysis/AddFunctionCalls.py index 528ba0ae79cb8b1b688541185a60f44f39e4eef9..68095a8c508138ced8076cfd1d47d70dfaa004f2 100644 --- a/generator/graph/AddFunctionCalls.py +++ b/generator/analysis/AddFunctionCalls.py @@ -1,6 +1,6 @@ -from generator.graph.Analysis import Analysis -from generator.graph.AtomicBasicBlock import E, S -from generator.graph.Function import Function +from .Analysis import Analysis +from .AtomicBasicBlock import E, S +from .Function import Function import logging class AddFunctionCalls(Analysis): diff --git a/generator/graph/Analysis.py b/generator/analysis/Analysis.py similarity index 99% rename from generator/graph/Analysis.py rename to generator/analysis/Analysis.py index 8f491dcaf52f67745faf5595bbf14e34256de80e..9b7ab585c52507a420fbd588bb3cef78273e086e 100644 --- a/generator/graph/Analysis.py +++ b/generator/analysis/Analysis.py @@ -1,7 +1,7 @@ import logging import sys -from generator.graph.common import * -from generator.graph.AtomicBasicBlock import E, S +from .common import * +from .AtomicBasicBlock import E, S from collections import defaultdict from .Event import Event import copy diff --git a/generator/graph/AtomicBasicBlock.py b/generator/analysis/AtomicBasicBlock.py similarity index 95% rename from generator/graph/AtomicBasicBlock.py rename to generator/analysis/AtomicBasicBlock.py index aab55b8506a691c1e8ccc27f84ae205a0c51cb6f..92d013325a757d4ef70b5015a5576d517f541a8e 100644 --- a/generator/graph/AtomicBasicBlock.py +++ b/generator/analysis/AtomicBasicBlock.py @@ -1,9 +1,9 @@ -from generator.graph.common import Node, Edge, EdgeType, NodeType +from .common import Node, Edge, EdgeType, NodeType import collections -from generator.graph.types import S, E, ControlFlowEdge, SyscallType -from generator.graph.Sporadic import Counter, Alarm, ISR -from generator.graph.Resource import Resource -from generator.graph.Subtask import Subtask +from .types import S, E, ControlFlowEdge, SyscallType +from .Sporadic import Counter, Alarm, ISR +from .Resource import Resource +from .Subtask import Subtask diff --git a/generator/graph/ConstructGlobalCFG.py b/generator/analysis/ConstructGlobalCFG.py similarity index 98% rename from generator/graph/ConstructGlobalCFG.py rename to generator/analysis/ConstructGlobalCFG.py index 3bff99fc0d9ef5c26f2ffe75412bc6ab4fa1c190..998bf80696fb0908a4d9e6ee9ba65f9fdd795229 100644 --- a/generator/graph/ConstructGlobalCFG.py +++ b/generator/analysis/ConstructGlobalCFG.py @@ -1,8 +1,8 @@ -from generator.graph.Analysis import Analysis -from generator.graph.AtomicBasicBlock import E, S +from .Analysis import Analysis +from .AtomicBasicBlock import E, S from generator.tools import panic, stack -from generator.graph.common import Edge -from generator.graph.SymbolicSystemExecution import StateTransition, SavedStateTransition +from .common import Edge +from .SymbolicSystemExecution import StateTransition, SavedStateTransition import logging import hashlib diff --git a/generator/graph/DominanceAnalysis.py b/generator/analysis/DominanceAnalysis.py similarity index 97% rename from generator/graph/DominanceAnalysis.py rename to generator/analysis/DominanceAnalysis.py index 09f9b57df5c56cfcee3fb92f2bf53cc40927a61b..9b1cca1576e60bf3d33ece6610597b41e65b6141 100644 --- a/generator/graph/DominanceAnalysis.py +++ b/generator/analysis/DominanceAnalysis.py @@ -1,8 +1,8 @@ -from generator.graph.Analysis import Analysis -from generator.graph.common import dfs, GraphObject, Edge, GraphObjectContainer +from .Analysis import Analysis +from .common import dfs, GraphObject, Edge, GraphObjectContainer from generator.tools import stack -from generator.graph.AtomicBasicBlock import E,S -from generator.graph.Function import Function +from .AtomicBasicBlock import E,S +from .Function import Function import logging from functools import reduce diff --git a/generator/graph/DynamicPriorityAnalysis.py b/generator/analysis/DynamicPriorityAnalysis.py similarity index 96% rename from generator/graph/DynamicPriorityAnalysis.py rename to generator/analysis/DynamicPriorityAnalysis.py index 1a34b095897652b87c850b30522efdf3e7d01799..ca7dd32fa5495a1be59168819335c5ebc89e08ff 100644 --- a/generator/graph/DynamicPriorityAnalysis.py +++ b/generator/analysis/DynamicPriorityAnalysis.py @@ -1,7 +1,7 @@ -from generator.graph.Analysis import Analysis, FixpointIteration -from generator.graph.AtomicBasicBlock import E, S -from generator.graph.Resource import Resource -from generator.graph.Function import Function +from .Analysis import Analysis, FixpointIteration +from .AtomicBasicBlock import E, S +from .Resource import Resource +from .Function import Function from collections import namedtuple class DynamicPriorityAnalysis(Analysis): diff --git a/generator/graph/Event.py b/generator/analysis/Event.py similarity index 100% rename from generator/graph/Event.py rename to generator/analysis/Event.py diff --git a/generator/graph/Function.py b/generator/analysis/Function.py similarity index 94% rename from generator/graph/Function.py rename to generator/analysis/Function.py index 77c1a6a5c28331335d7d32b6ae374393d3115e0d..470a65d371dcfa7bbf4136629b79aef71e1236b9 100644 --- a/generator/graph/Function.py +++ b/generator/analysis/Function.py @@ -1,5 +1,5 @@ -from generator.graph.common import GraphObject, Edge -from generator.graph.AtomicBasicBlock import S, E +from .common import GraphObject, Edge +from .AtomicBasicBlock import S, E class Function(GraphObject): def __init__(self, functionname): diff --git a/generator/graph/GlobalAbbInfo.py b/generator/analysis/GlobalAbbInfo.py similarity index 100% rename from generator/graph/GlobalAbbInfo.py rename to generator/analysis/GlobalAbbInfo.py diff --git a/generator/graph/GlobalControlFlowMetric.py b/generator/analysis/GlobalControlFlowMetric.py similarity index 94% rename from generator/graph/GlobalControlFlowMetric.py rename to generator/analysis/GlobalControlFlowMetric.py index c6a3d220ac59b254f7885e0e65e511f604629b32..c9baa6a8e8bd6666c93307d52d3b7948492aef35 100644 --- a/generator/graph/GlobalControlFlowMetric.py +++ b/generator/analysis/GlobalControlFlowMetric.py @@ -1,5 +1,5 @@ -from generator.graph.Analysis import Analysis -from generator.graph.AtomicBasicBlock import E +from .Analysis import Analysis +from .AtomicBasicBlock import E class GlobalControlFlowMetric(Analysis): def __init__(self, filename): diff --git a/generator/graph/InterruptControlAnalysis.py b/generator/analysis/InterruptControlAnalysis.py similarity index 96% rename from generator/graph/InterruptControlAnalysis.py rename to generator/analysis/InterruptControlAnalysis.py index fb4338aa2bfbc717a2f0416a1954c9a80f4363d6..7999651b18acfaa564a19513fe1824ddc57cee12 100644 --- a/generator/graph/InterruptControlAnalysis.py +++ b/generator/analysis/InterruptControlAnalysis.py @@ -1,5 +1,5 @@ -from generator.graph.Analysis import Analysis, FixpointIteration -from generator.graph.AtomicBasicBlock import E, S +from .Analysis import Analysis, FixpointIteration +from .AtomicBasicBlock import E, S from generator.tools import panic from collections import namedtuple diff --git a/generator/graph/PassManager.py b/generator/analysis/PassManager.py similarity index 98% rename from generator/graph/PassManager.py rename to generator/analysis/PassManager.py index 21724206a658876200b570765599dd8e7cf0da2e..96c9a090ecfd6ac5f7bdede4ea8eb3c2bf757908 100644 --- a/generator/graph/PassManager.py +++ b/generator/analysis/PassManager.py @@ -2,8 +2,8 @@ import logging import os import sys import time -from generator.graph.AtomicBasicBlock import AtomicBasicBlock -from generator.graph.common import * +from .AtomicBasicBlock import AtomicBasicBlock +from .common import * from generator.tools import stack class PassManager: diff --git a/generator/graph/PreciseSystemState.py b/generator/analysis/PreciseSystemState.py similarity index 97% rename from generator/graph/PreciseSystemState.py rename to generator/analysis/PreciseSystemState.py index b62fd4e0aad247c49586bb1d1acf264dfb636d5a..54344fc2a5cbedcd9c46ecd7f01c71d643614bde 100644 --- a/generator/graph/PreciseSystemState.py +++ b/generator/analysis/PreciseSystemState.py @@ -1,9 +1,9 @@ from generator.tools import stack, unwrap_seq, panic -from generator.graph.AtomicBasicBlock import E, S -from generator.graph.Sporadic import Alarm -from generator.graph.Subtask import Subtask -from generator.graph.Event import Event -from generator.graph.common import Node, Edge, EdgeType, NodeType +from .AtomicBasicBlock import E, S +from .Sporadic import Alarm +from .Subtask import Subtask +from .Event import Event +from .common import Node, Edge, EdgeType, NodeType from .SystemState import SystemState class PreciseSystemState(SystemState): diff --git a/generator/graph/PrioritySpreadingPass.py b/generator/analysis/PrioritySpreadingPass.py similarity index 93% rename from generator/graph/PrioritySpreadingPass.py rename to generator/analysis/PrioritySpreadingPass.py index 36931839acfbe2f8bc70a67c517e1e85755f627b..2fa937cf7d581a738d9a1627a79db8b4aa3e0284 100644 --- a/generator/graph/PrioritySpreadingPass.py +++ b/generator/analysis/PrioritySpreadingPass.py @@ -1,5 +1,5 @@ -from generator.graph.Analysis import Analysis -from generator.graph.Subtask import Subtask +from .Analysis import Analysis +from .Subtask import Subtask class PrioritySpreadingPass(Analysis): """This pass reallocated the priorities in the way, that every diff --git a/generator/graph/Resource.py b/generator/analysis/Resource.py similarity index 100% rename from generator/graph/Resource.py rename to generator/analysis/Resource.py diff --git a/generator/graph/Sporadic.py b/generator/analysis/Sporadic.py similarity index 100% rename from generator/graph/Sporadic.py rename to generator/analysis/Sporadic.py diff --git a/generator/graph/Subtask.py b/generator/analysis/Subtask.py similarity index 92% rename from generator/graph/Subtask.py rename to generator/analysis/Subtask.py index 6f11ce8ff4e4c7d7dc71b975ac66a69186db4d03..b1c0284ef71b62e1a9f77c4cb697fa79ab4cfbba 100644 --- a/generator/graph/Subtask.py +++ b/generator/analysis/Subtask.py @@ -1,6 +1,6 @@ -from generator.graph.Function import Function -from generator.graph.SystemObject import SystemObject -from generator.graph.Event import Event +from .Function import Function +from .SystemObject import SystemObject +from .Event import Event class Subtask(Function, SystemObject): diff --git a/generator/graph/SymbolicSystemExecution.py b/generator/analysis/SymbolicSystemExecution.py similarity index 98% rename from generator/graph/SymbolicSystemExecution.py rename to generator/analysis/SymbolicSystemExecution.py index 09467a5eab81571385f21428444954030cb21833..c7b9ad345497f0067c28b4b4300e9cdf36b409b4 100644 --- a/generator/graph/SymbolicSystemExecution.py +++ b/generator/analysis/SymbolicSystemExecution.py @@ -1,8 +1,8 @@ -from generator.graph.common import * -from generator.graph.Analysis import * -from generator.graph.GlobalAbbInfo import GlobalAbbInfo -from generator.graph.SystemSemantic import * -from generator.graph.Function import Function +from .common import * +from .Analysis import * +from .GlobalAbbInfo import GlobalAbbInfo +from .SystemSemantic import * +from .Function import Function from generator.tools import stack, unwrap_seq, group_by, IntEnum @unique diff --git a/generator/graph/SystemGraph.py b/generator/analysis/SystemGraph.py similarity index 97% rename from generator/graph/SystemGraph.py rename to generator/analysis/SystemGraph.py index e23040ab9fae2c04bdfd58695edade34220e398c..148a419a2b5fc1359d7a72fffbbb708b646737b9 100644 --- a/generator/graph/SystemGraph.py +++ b/generator/analysis/SystemGraph.py @@ -1,13 +1,13 @@ import logging -from generator.graph.Task import Task -from generator.graph.Subtask import Subtask -from generator.graph.AtomicBasicBlock import AtomicBasicBlock, E, S -from generator.graph.Function import Function -from generator.graph.PassManager import PassManager -from generator.graph.Sporadic import Counter, Alarm, ISR, AlarmSubtask -from generator.graph.Resource import Resource -from generator.graph.Event import Event -from generator.graph.common import GraphObject +from .Task import Task +from .Subtask import Subtask +from .AtomicBasicBlock import AtomicBasicBlock, E, S +from .Function import Function +from .PassManager import PassManager +from .Sporadic import Counter, Alarm, ISR, AlarmSubtask +from .Resource import Resource +from .Event import Event +from .common import GraphObject from generator.statistics import Statistics from generator.tools import panic from collections import namedtuple diff --git a/generator/graph/SystemObject.py b/generator/analysis/SystemObject.py similarity index 100% rename from generator/graph/SystemObject.py rename to generator/analysis/SystemObject.py diff --git a/generator/graph/SystemSemantic.py b/generator/analysis/SystemSemantic.py similarity index 98% rename from generator/graph/SystemSemantic.py rename to generator/analysis/SystemSemantic.py index a0eedc2055defa4b1f2d7d51e1c4ea1ba4d42ced..d8a12c1ce82af782f1e3e5ecf6f5d3301553b04d 100644 --- a/generator/graph/SystemSemantic.py +++ b/generator/analysis/SystemSemantic.py @@ -1,9 +1,9 @@ from generator.tools import stack, unwrap_seq, panic -from generator.graph.AtomicBasicBlock import E, S -from generator.graph.Sporadic import Alarm -from generator.graph.Subtask import Subtask -from generator.graph.Event import Event -from generator.graph.common import Node, Edge, EdgeType, NodeType +from .AtomicBasicBlock import E, S +from .Sporadic import Alarm +from .Subtask import Subtask +from .Event import Event +from .common import Node, Edge, EdgeType, NodeType from .SystemState import SystemState from .PreciseSystemState import PreciseSystemState diff --git a/generator/graph/SystemState.py b/generator/analysis/SystemState.py similarity index 98% rename from generator/graph/SystemState.py rename to generator/analysis/SystemState.py index f11c2af90b7bb6fdbf6976a223aec5d33577ef1f..2ea3b0838bc8e60ce3e45dda7e28f396120f1979 100644 --- a/generator/graph/SystemState.py +++ b/generator/analysis/SystemState.py @@ -1,9 +1,9 @@ from generator.tools import stack, unwrap_seq, panic -from generator.graph.AtomicBasicBlock import E, S -from generator.graph.Sporadic import Alarm -from generator.graph.Subtask import Subtask -from generator.graph.Event import Event -from generator.graph.common import Node, Edge, EdgeType, NodeType +from .AtomicBasicBlock import E, S +from .Sporadic import Alarm +from .Subtask import Subtask +from .Event import Event +from .common import Node, Edge, EdgeType, NodeType class SystemState(Node): """Normal system states capture the state at a specific point in the diff --git a/generator/graph/SystemStateFlow.py b/generator/analysis/SystemStateFlow.py similarity index 97% rename from generator/graph/SystemStateFlow.py rename to generator/analysis/SystemStateFlow.py index 50edc4a3b0df8c19d99fa47a3570ed091f652518..10f6e5290fb874eca506310dbde7704a47ae99c3 100644 --- a/generator/graph/SystemStateFlow.py +++ b/generator/analysis/SystemStateFlow.py @@ -1,12 +1,12 @@ from collections import defaultdict -from generator.graph.common import * -from generator.graph.Analysis import * -from generator.graph.DynamicPriorityAnalysis import DynamicPriorityAnalysis -from generator.graph.Sporadic import SporadicEvent -from generator.graph.Function import Function -from generator.graph.GlobalAbbInfo import GlobalAbbInfo -from generator.graph.SystemSemantic import * -from generator.graph.AtomicBasicBlock import E +from .common import * +from .Analysis import * +from .DynamicPriorityAnalysis import DynamicPriorityAnalysis +from .Sporadic import SporadicEvent +from .Function import Function +from .GlobalAbbInfo import GlobalAbbInfo +from .SystemSemantic import * +from .AtomicBasicBlock import E class SystemStateFlow(Analysis): diff --git a/generator/graph/Task.py b/generator/analysis/Task.py similarity index 97% rename from generator/graph/Task.py rename to generator/analysis/Task.py index f9d6bd677b0ef1fa227a532b6bb960044ee4cf10..d1763a0423c3eaceaab8381c0fbb52d515a2e14b 100644 --- a/generator/graph/Task.py +++ b/generator/analysis/Task.py @@ -1,4 +1,4 @@ -from generator.graph.common import GraphObject +from .common import GraphObject class Task(GraphObject): """A Task represents a whole set of SubTasks. All subtasks belong logically together""" diff --git a/generator/analysis/__init__.py b/generator/analysis/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..51245698dd681a96c841090bd0fb05569ab4891c --- /dev/null +++ b/generator/analysis/__init__.py @@ -0,0 +1,28 @@ +__doc__ = """The graph module abstracts from all kind of Tasks, SubTasks, +AtomicBasicBlocks and BasicBlocks, that make up an System.""" + +assert __name__ == 'generator.analysis' + + +from .AddFunctionCalls import AddFunctionCalls +from .Analysis import * +from .AtomicBasicBlock import AtomicBasicBlock +from .ABBMergePass import ABBMergePass +from .ConstructGlobalCFG import ConstructGlobalCFG +from .DynamicPriorityAnalysis import DynamicPriorityAnalysis +from .Function import Function +from .GlobalControlFlowMetric import GlobalControlFlowMetric +from .InterruptControlAnalysis import InterruptControlAnalysis +from .PrioritySpreadingPass import PrioritySpreadingPass +from .Resource import Resource +from .Sporadic import Alarm +from .Subtask import Subtask +from .SymbolicSystemExecution import SymbolicSystemExecution, StateTransition, SavedStateTransition +from .SystemGraph import SystemGraph +from .SystemSemantic import * +from .SystemStateFlow import * +from .DominanceAnalysis import * + + +from .Task import Task +from .common import GraphObject diff --git a/generator/graph/common.py b/generator/analysis/common.py similarity index 100% rename from generator/graph/common.py rename to generator/analysis/common.py diff --git a/generator/graph/types.py b/generator/analysis/types.py similarity index 97% rename from generator/graph/types.py rename to generator/analysis/types.py index a0d21037996cbac3e7e1e220bbe921cc78956b58..470e735243f4095063e5754bd1d95e7fc9816034 100644 --- a/generator/graph/types.py +++ b/generator/analysis/types.py @@ -1,4 +1,4 @@ -from generator.graph.common import Node, Edge, EdgeType, NodeType +from .common import Node, Edge, EdgeType, NodeType from generator.tools import IntEnum, unique @unique diff --git a/generator/graph/verifier_tools.py b/generator/analysis/verifier_tools.py similarity index 96% rename from generator/graph/verifier_tools.py rename to generator/analysis/verifier_tools.py index ce2bbd6c7ea58d051f40f87def69500ecdc7ecbe..5e84ed7189c8d090d72c8b85b74bfe5bb4900603 100644 --- a/generator/graph/verifier_tools.py +++ b/generator/analysis/verifier_tools.py @@ -1,7 +1,7 @@ -from generator.graph.AtomicBasicBlock import E,S -from generator.graph.SystemStateFlow import SystemStateFlow -from generator.graph.SymbolicSystemExecution import SymbolicSystemExecution -from generator.graph.Resource import Resource +from .AtomicBasicBlock import E,S +from .SystemStateFlow import SystemStateFlow +from .SymbolicSystemExecution import SymbolicSystemExecution +from .Resource import Resource global E diff --git a/generator/coder/__init__.py b/generator/coder/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9e87b5b73ebd71ceb7e1f9594bf4dd61fbfa93dc --- /dev/null +++ b/generator/coder/__init__.py @@ -0,0 +1,14 @@ +assert __name__ == "generator.coder" + +from .arch_generic import GenericArch +from .arch_x86 import X86Arch +from .arch_arm import ARMArch +from .arch_posix import PosixArch + +from .os_generic import GenericOS +from .os_encoded import EncodedOS, SignatureGenerator +from .os_unencoded import UnencodedOS + +from .syscall_full import FullSystemCalls +from .syscall_specialized import SpecializedSystemCalls +from .syscall_fsm import FSMSystemCalls diff --git a/generator/rules/arm.py b/generator/coder/arch_arm.py similarity index 95% rename from generator/rules/arm.py rename to generator/coder/arch_arm.py index b242bbfa7230dc5fc354824362978ffd35f51a4d..8b5dfefa8b34904a11dc7c795c89230eb3dbddcf 100644 --- a/generator/rules/arm.py +++ b/generator/coder/arch_arm.py @@ -1,12 +1,10 @@ -from generator.rules.simple import SimpleArch -from generator.elements import CodeTemplate, FunctionDefinitionBlock, \ - Include, FunctionDeclaration, Comment, Function, DataObject, \ - DataObjectArray, Hook, Block, VariableDefinition, Statement -from generator.graph.Subtask import Subtask +from .arch_generic import GenericArch +from .elements import * +from generator.analysis.Subtask import Subtask -class ARMArch(SimpleArch): +class ARMArch(GenericArch): def __init__(self): - SimpleArch.__init__(self) + super(ARMArch, self).__init__() def generate_linkerscript(self): linker_script = LinkerScriptTemplate(self) @@ -192,8 +190,7 @@ class LinkerScriptTemplate(CodeTemplate): CodeTemplate.__init__(self, ARM.generator, "arch/arm/linker.ld.in") self.ARM = ARM self.system_graph = self.ARM.system_graph - # Reference to the objects object of our rule system - self.objects = self.ARM.objects + # Link the foreach_subtask method from the rules self.foreach_subtask = self.ARM.foreach_subtask diff --git a/generator/coder/arch_generic.py b/generator/coder/arch_generic.py new file mode 100644 index 0000000000000000000000000000000000000000..5b21b8adb820448f3d000c8350cf0e82506bcbb8 --- /dev/null +++ b/generator/coder/arch_generic.py @@ -0,0 +1,62 @@ +from .elements import * +from .base import BaseCoder +from generator.analysis.Function import Function as GraphFunction +from .implementations import * +import logging + +from collections import namedtuple + +class GenericArch(BaseCoder): + def __init__(self): + super(GenericArch, self).__init__() + + def generate_dataobjects_task_stacks(self): + """Generate the stacks for the tasks, including the task pointers""" + # Ignore the Idle thread and ISR subtasks + for subtask in self.system_graph.real_subtasks: + stacksize = subtask.get_stack_size() + stack = DataObjectArray("uint8_t", subtask.name + "_stack", stacksize, + extern_c = True) + self.generator.source_file.data_manager.add(stack) + + stackptr = DataObject("void *", "OS_" + subtask.name + "_stackptr") + self.generator.source_file.data_manager.add(stackptr, namespace = ("arch",)) + + + subtask.impl.stack = stack + subtask.impl.stackptr = stackptr + subtask.impl.stacksize = stacksize + + + def generate_dataobjects_task_entries(self): + for subtask in self.system_graph.subtasks: + # Ignore the Idle thread + if not subtask.is_real_thread(): + continue + entry_function = FunctionDeclaration(subtask.function_name, "void", [], + extern_c = True) + self.generator.source_file.function_manager.add(entry_function) + subtask.impl.entry_function = entry_function + + KernelSpace = namedtuple("KernelSpace", ["pre_hook", "system", "post_hook"]) + def generate_kernelspace(self, userspace, abb, arguments): + """returns a KernelSpace object""" + raise NotImplementedError() + + def asm_marker(self, block, label): + self.call_function(block, "asm_label", "void", + ['"%s"' % label]) + + def kickoff(self, abb, block): + self.call_function(block, "Machine::enable_interrupts", + "void", []) + + def enable_irq(self, block): + self.call_function(block, + "Machine::enable_interrupts", + "void", []) + + def disable_irq(self, block): + self.call_function(block, + "Machine::disable_interrupts", + "void", []) diff --git a/generator/rules/posix.py b/generator/coder/arch_posix.py similarity index 92% rename from generator/rules/posix.py rename to generator/coder/arch_posix.py index 26dd5477d6fe53ff75373715f14cb182fdd9e421..c2a2ff8774d0bf4a247cf7cc30e44bb786501ad9 100644 --- a/generator/rules/posix.py +++ b/generator/coder/arch_posix.py @@ -1,13 +1,11 @@ -from generator.elements import Include, FunctionDeclaration, Comment, \ - DataObject, Block, Hook, VariableDefinition, Function +from .arch_generic import GenericArch +from .elements import * +from generator.analysis.Subtask import Subtask -from generator.graph.Subtask import Subtask -from generator.rules.simple import SimpleArch - -class PosixArch(SimpleArch): +class PosixArch(GenericArch): def __init__(self): - SimpleArch.__init__(self) + super(PosixArch, self).__init__() def generate_linkerscript(self): """Posix does not require a linker script""" diff --git a/generator/rules/x86.py b/generator/coder/arch_x86.py similarity index 94% rename from generator/rules/x86.py rename to generator/coder/arch_x86.py index a265301f2241d34c88cc991ad535e5175504d4fc..d25ac21adae8c2250a5ef5b877dd7ced80d41e5b 100644 --- a/generator/rules/x86.py +++ b/generator/coder/arch_x86.py @@ -1,12 +1,10 @@ -from generator.rules.simple import SimpleArch -from generator.elements import CodeTemplate, FunctionDefinitionBlock, \ - Include, FunctionDeclaration, Comment, Function, DataObject, \ - DataObjectArray, Hook, Block, VariableDefinition, Statement -from generator.graph.Subtask import Subtask +from .arch_generic import GenericArch +from .elements import * +from generator.analysis.Subtask import Subtask -class X86Arch(SimpleArch): +class X86Arch(GenericArch): def __init__(self): - SimpleArch.__init__(self) + super(X86Arch, self).__init__() def generate_linkerscript(self): linker_script = LinkerScriptTemplate(self) @@ -131,8 +129,7 @@ class LinkerScriptTemplate(CodeTemplate): CodeTemplate.__init__(self, x86.generator, "arch/i386/linker.ld.in") self.x86 = x86 self.system_graph = self.x86.system_graph - # Reference to the objects object of our rule system - self.objects = self.x86.objects + # Link the foreach_subtask method from the rules self.foreach_subtask = self.x86.foreach_subtask diff --git a/generator/rules/base.py b/generator/coder/base.py similarity index 95% rename from generator/rules/base.py rename to generator/coder/base.py index 048944fc60a8091b0f4611c297f5437cc87aa129..ae0aa66c7426e9240b624649ffbd7ce08cb84a68 100755 --- a/generator/rules/base.py +++ b/generator/coder/base.py @@ -1,15 +1,16 @@ #!/usr/bin/python -from generator.elements import * +from .elements import * -class BaseRules: +class BaseCoder: def __init__(self): self.generator = None self.system_graph = None - self.objects = None + self.arch_rules = None self.os_rules = None self.syscall_rules = None + self.stats = None def set_generator(self, generator): diff --git a/generator/elements/DataObjectManager.py b/generator/coder/elements/DataObjectManager.py similarity index 98% rename from generator/elements/DataObjectManager.py rename to generator/coder/elements/DataObjectManager.py index f47a416378f976874a5aa32ef6336fa4a9ba2fee..b37fd0a03d8893b6b6f3a87769ddac9024d1f536 100755 --- a/generator/elements/DataObjectManager.py +++ b/generator/coder/elements/DataObjectManager.py @@ -12,7 +12,7 @@ @ingroup generator @brief Data object cook. """ -from generator.elements.SourceElement import Block, Statement, ForRange +from .SourceElement import Block, Statement, ForRange class DataObject: """Manages a variable""" diff --git a/generator/elements/FunctionManager.py b/generator/coder/elements/FunctionManager.py similarity index 98% rename from generator/elements/FunctionManager.py rename to generator/coder/elements/FunctionManager.py index bda2763bc52c21d9d55327708d282db5cc2a915d..c2f8eefcec018af632996f4d04734e9b4c2ac16b 100755 --- a/generator/elements/FunctionManager.py +++ b/generator/coder/elements/FunctionManager.py @@ -1,6 +1,6 @@ #!/usr/bin/python -from generator.elements.SourceElement import Block, Statement +from .SourceElement import Block, Statement from collections import namedtuple class Function: diff --git a/generator/elements/IncludeManager.py b/generator/coder/elements/IncludeManager.py similarity index 94% rename from generator/elements/IncludeManager.py rename to generator/coder/elements/IncludeManager.py index 9e91f6d5de4dbb0865f6f1ceff9ec2efba134a13..a3e8f00d41a63e04db4ee51e69ad5c5182e7e639 100644 --- a/generator/elements/IncludeManager.py +++ b/generator/coder/elements/IncludeManager.py @@ -5,7 +5,7 @@ @ingroup primitives @brief Building include statements """ -from generator.elements.SourceElement import CPPStatement, Comment +from .SourceElement import CPPStatement, Comment class Include: def __init__(self, filename, system_include=False, comment = None): diff --git a/generator/elements/SourceElement.py b/generator/coder/elements/SourceElement.py similarity index 100% rename from generator/elements/SourceElement.py rename to generator/coder/elements/SourceElement.py diff --git a/generator/elements/SourceFile.py b/generator/coder/elements/SourceFile.py similarity index 84% rename from generator/elements/SourceFile.py rename to generator/coder/elements/SourceFile.py index 94852d602368dfc7a6a68a985bb5533d9d2690a7..ccee519e645fad5f50fefcdc561fb6a5c115c80c 100644 --- a/generator/elements/SourceFile.py +++ b/generator/coder/elements/SourceFile.py @@ -7,9 +7,9 @@ """ -from generator.elements.IncludeManager import IncludeManager -from generator.elements.DataObjectManager import DataObjectManager -from generator.elements.FunctionManager import FunctionManager +from .IncludeManager import IncludeManager +from .DataObjectManager import DataObjectManager +from .FunctionManager import FunctionManager from generator import tools class SourceFile: diff --git a/generator/coder/elements/__init__.py b/generator/coder/elements/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9111bf08d16b0e6006318f8f9bc3f54f2cbfa8eb --- /dev/null +++ b/generator/coder/elements/__init__.py @@ -0,0 +1,9 @@ +from .SourceFile import SourceFile +from .FunctionManager import Function, FunctionManager, FunctionDeclaration, \ + FunctionDefinitionBlock +from .IncludeManager import Include, IncludeManager +from .DataObjectManager import DataObject, DataObjectArray, ExternalDataObject +from .SourceElement import * +from .template import CodeTemplate + +assert __name__ == "generator.coder.elements" diff --git a/generator/elements/template.py b/generator/coder/elements/template.py similarity index 100% rename from generator/elements/template.py rename to generator/coder/elements/template.py diff --git a/generator/rules/implementations.py b/generator/coder/implementations.py similarity index 100% rename from generator/rules/implementations.py rename to generator/coder/implementations.py diff --git a/generator/rules/encoded.py b/generator/coder/os_encoded.py similarity index 96% rename from generator/rules/encoded.py rename to generator/coder/os_encoded.py index 285afd45ebd838e62907b2cb3a70881542541768..ec9ee9fcbb1ebd105f83a39170e4567cca90616d 100644 --- a/generator/rules/encoded.py +++ b/generator/coder/os_encoded.py @@ -1,7 +1,7 @@ -from generator.rules.unencoded import UnencodedSystem, TaskListTemplate, \ +from .os_unencoded import UnencodedOS, TaskListTemplate, \ SchedulerTemplate -from generator.elements import * -from generator.graph.Resource import Resource +from .elements import * +from generator.analysis.Resource import Resource from .implementations import * class SignatureGenerator: @@ -47,9 +47,9 @@ class SignatureGenerator: return x -class EncodedSystem(UnencodedSystem): +class EncodedOS(UnencodedOS): def __init__(self): - UnencodedSystem.__init__(self) + super(EncodedOS, self).__init__() self.task_list = EncodedTaskListTemplate self.scheduler = EncodedSchedulerTemplate self.counter_signatures = {} @@ -65,7 +65,7 @@ class EncodedSystem(UnencodedSystem): impl.current_prio_sig = self.sigs.current_prio impl.current_task_sig = self.sigs.current_task - UnencodedSystem.generate_system_code(self) + super(EncodedOS, self).generate_system_code() def convert_argument(self, block, argument): b = self.generator.signature_generator.new() diff --git a/generator/rules/simple.py b/generator/coder/os_generic.py similarity index 77% rename from generator/rules/simple.py rename to generator/coder/os_generic.py index dbf56e61297dea508e9f53e6f7053d7fccbec482..7ddb24e2b33cf8395e9a68515c9581f538f62ee9 100644 --- a/generator/rules/simple.py +++ b/generator/coder/os_generic.py @@ -1,16 +1,14 @@ -from generator.elements import * -from generator.elements.DataObjectManager import ExternalDataObject -from generator.rules.base import BaseRules -from generator.graph.Function import Function as GraphFunction +from .elements import * +from .base import BaseCoder +from generator.analysis.Function import Function as GraphFunction from .implementations import * import logging from collections import namedtuple -class SimpleSystem(BaseRules): +class GenericOS(BaseCoder): def __init__(self): - BaseRules.__init__(self) - + super(GenericOS, self).__init__() def return_statement(self, block, expression): block.add(Statement("return %s" % expression)) @@ -196,57 +194,3 @@ class SimpleSystem(BaseRules): self.generator.source_file.function_manager.add(multiplexer, "dep") -class SimpleArch(BaseRules): - def __init__(self): - BaseRules.__init__(self) - - def generate_dataobjects_task_stacks(self): - """Generate the stacks for the tasks, including the task pointers""" - # Ignore the Idle thread and ISR subtasks - for subtask in self.system_graph.real_subtasks: - stacksize = subtask.get_stack_size() - stack = DataObjectArray("uint8_t", subtask.name + "_stack", stacksize, - extern_c = True) - self.generator.source_file.data_manager.add(stack) - - stackptr = DataObject("void *", "OS_" + subtask.name + "_stackptr") - self.generator.source_file.data_manager.add(stackptr, namespace = ("arch",)) - - - subtask.impl.stack = stack - subtask.impl.stackptr = stackptr - subtask.impl.stacksize = stacksize - - - def generate_dataobjects_task_entries(self): - for subtask in self.system_graph.subtasks: - # Ignore the Idle thread - if not subtask.is_real_thread(): - continue - entry_function = FunctionDeclaration(subtask.function_name, "void", [], - extern_c = True) - self.generator.source_file.function_manager.add(entry_function) - subtask.impl.entry_function = entry_function - - KernelSpace = namedtuple("KernelSpace", ["pre_hook", "system", "post_hook"]) - def generate_kernelspace(self, userspace, abb, arguments): - """returns a KernelSpace object""" - raise NotImplementedError() - - def asm_marker(self, block, label): - self.call_function(block, "asm_label", "void", - ['"%s"' % label]) - - def kickoff(self, abb, block): - self.call_function(block, "Machine::enable_interrupts", - "void", []) - - def enable_irq(self, block): - self.call_function(block, - "Machine::enable_interrupts", - "void", []) - - def disable_irq(self, block): - self.call_function(block, - "Machine::disable_interrupts", - "void", []) diff --git a/generator/rules/unencoded.py b/generator/coder/os_unencoded.py similarity index 92% rename from generator/rules/unencoded.py rename to generator/coder/os_unencoded.py index 81d0535b7e9cff6adae6c9ca74a88a952c2915cd..821ae6087187d96740c836c4dacc87fb159898d7 100644 --- a/generator/rules/unencoded.py +++ b/generator/coder/os_unencoded.py @@ -1,15 +1,15 @@ -from generator.rules.simple import SimpleSystem -from generator.elements import CodeTemplate, Include, VariableDefinition, \ +from .os_generic import GenericOS +from .elements import CodeTemplate, Include, VariableDefinition, \ Block, Statement, Comment, Function, Hook, DataObject -from generator.graph.AtomicBasicBlock import S, AtomicBasicBlock -from generator.graph.Resource import Resource -from generator.graph.Subtask import Subtask -from generator.graph.Function import Function +from generator.analysis.AtomicBasicBlock import S, AtomicBasicBlock +from generator.analysis.Resource import Resource +from generator.analysis.Subtask import Subtask +from generator.analysis.Function import Function -class UnencodedSystem(SimpleSystem): +class UnencodedOS(GenericOS): def __init__(self): - SimpleSystem.__init__(self) + super(UnencodedOS, self).__init__() # These template slots are used by the system call layer self.task_list = TaskListTemplate self.scheduler = SchedulerTemplate @@ -152,8 +152,6 @@ class TaskListTemplate(CodeTemplate): CodeTemplate.__init__(self, rules.generator, self.template_file()) self.rules = rules self.system_graph = self.generator.system_graph - # Reference to the objects object of our rule system - self.objects = self.rules.objects self.idle = self.system_graph.find(Function, "Idle") def template_file(self): @@ -192,8 +190,6 @@ class SchedulerTemplate(CodeTemplate): CodeTemplate.__init__(self, rules.generator, self.template_file()) self.rules = rules self.system_graph = self.generator.system_graph - # Reference to the objects object of our rule system - self.objects = self.rules.objects def template_file(self): return "os/scheduler/scheduler-unencoded.h.in" diff --git a/generator/rules/syscalls_fsm.py b/generator/coder/syscall_fsm.py similarity index 96% rename from generator/rules/syscalls_fsm.py rename to generator/coder/syscall_fsm.py index 95bb6f6647a251e47e848a154df695131df9b8da..e51c83b58c4ce8c2bd2960df4b7ef45a25a214d9 100644 --- a/generator/rules/syscalls_fsm.py +++ b/generator/coder/syscall_fsm.py @@ -1,10 +1,10 @@ -from generator.rules.syscalls_full import FullSystemCalls, AlarmTemplate -from generator.elements import Statement, Comment -from generator.elements import CodeTemplate, Include, VariableDefinition, \ +from .syscall_full import FullSystemCalls, AlarmTemplate +from .elements import Statement, Comment +from .elements import CodeTemplate, Include, VariableDefinition, \ Block, Statement, Comment, Function, Hook, DataObject, DataObjectArray from generator.tools import unwrap_seq -from generator.graph.AtomicBasicBlock import E,S -from generator.graph.SystemSemantic import SystemState +from generator.analysis.AtomicBasicBlock import E,S +from generator.analysis.SystemSemantic import SystemState import logging diff --git a/generator/rules/syscalls_full.py b/generator/coder/syscall_full.py similarity index 97% rename from generator/rules/syscalls_full.py rename to generator/coder/syscall_full.py index 09af7b07f175cc5fd7cbf5b946b251ee222c761a..d34744d78479d2702fc75a56cc551b9d2a1c00c1 100644 --- a/generator/rules/syscalls_full.py +++ b/generator/coder/syscall_full.py @@ -1,16 +1,16 @@ -from generator.rules.base import BaseRules -from generator.graph.AtomicBasicBlock import E,S -from generator.graph.Event import Event -from generator.elements import Statement, Comment, Function, VariableDefinition, Block, Include, \ +from .base import BaseCoder +from generator.analysis.AtomicBasicBlock import E,S +from generator.analysis.Event import Event +from .elements import Statement, Comment, Function, VariableDefinition, Block, Include, \ CodeTemplate, FunctionDeclaration -from generator.graph.GenerateAssertions import AssertionType -from generator.graph.Function import Function as GraphFunction +from generator.transform.GenerateAssertions import AssertionType +from generator.analysis.Function import Function as GraphFunction from generator.tools import panic -class FullSystemCalls(BaseRules): +class FullSystemCalls(BaseCoder): def __init__(self): - BaseRules.__init__(self) + super(FullSystemCalls, self).__init__() self.alarms = AlarmTemplate @@ -350,8 +350,6 @@ class AlarmTemplate(CodeTemplate): CodeTemplate.__init__(self, rules.generator, "os/alarm.h.in") self.rules = rules self.system_graph = self.generator.system_graph - # Reference to the objects object of our rule system - self.objects = self.rules.objects # Link the foreach_subtask method from the rules self.foreach_subtask = self.rules.foreach_subtask diff --git a/generator/rules/syscalls_specialized.py b/generator/coder/syscall_specialized.py similarity index 97% rename from generator/rules/syscalls_specialized.py rename to generator/coder/syscall_specialized.py index 76b7558984b9cf1c497dabf0da3077f630175974..5991c2c17ea32780e6452a951ecd9a52c3d1d8e3 100644 --- a/generator/rules/syscalls_specialized.py +++ b/generator/coder/syscall_specialized.py @@ -1,13 +1,13 @@ -from generator.rules.syscalls_full import FullSystemCalls -from generator.elements import Statement, Comment +from .syscall_full import FullSystemCalls +from .elements import Statement, Comment from generator.tools import unwrap_seq -from generator.graph.AtomicBasicBlock import E,S -from generator.graph.SystemSemantic import SystemState +from generator.analysis.AtomicBasicBlock import E,S +from generator.analysis.SystemSemantic import SystemState class SpecializedSystemCalls(FullSystemCalls): def __init__(self, global_abb_info): - FullSystemCalls.__init__(self) + super(SpecializedSystemCalls).__init__(self) self.global_abb_info = global_abb_info def Comment(self, kernelspace, comment, *args): diff --git a/generator/elements/__init__.py b/generator/elements/__init__.py deleted file mode 100644 index 06a14ea2b9c760533b967c054aa2dcc27e869200..0000000000000000000000000000000000000000 --- a/generator/elements/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from generator.elements.SourceFile import SourceFile -from generator.elements.FunctionManager import Function, FunctionManager, FunctionDeclaration, \ - FunctionDefinitionBlock -from generator.elements.IncludeManager import Include, IncludeManager -from generator.elements.DataObjectManager import DataObject, DataObjectArray -from generator.elements.SourceElement import * -from generator.elements.template import CodeTemplate - -assert __name__ == "generator.elements" diff --git a/generator/graph/__init__.py b/generator/graph/__init__.py deleted file mode 100644 index 908eb21116d1ab61834484ea9ff26024dfa4156c..0000000000000000000000000000000000000000 --- a/generator/graph/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -__doc__ = """The graph module abstracts from all kind of Tasks, SubTasks, -AtomicBasicBlocks and BasicBlocks, that make up an System.""" - -assert __name__ == 'generator.graph' - - -from generator.graph.AddFunctionCalls import AddFunctionCalls -from generator.graph.Analysis import * -from generator.graph.AtomicBasicBlock import AtomicBasicBlock -from generator.graph.ABBMergePass import ABBMergePass -from generator.graph.ConstructGlobalCFG import ConstructGlobalCFG -from generator.graph.DynamicPriorityAnalysis import DynamicPriorityAnalysis -from generator.graph.Function import Function -from generator.graph.GlobalControlFlowMetric import GlobalControlFlowMetric -from generator.graph.InterruptControlAnalysis import InterruptControlAnalysis -from generator.graph.PrioritySpreadingPass import PrioritySpreadingPass -from generator.graph.Resource import Resource -from generator.graph.Sporadic import Alarm -from generator.graph.Subtask import Subtask -from generator.graph.SymbolicSystemExecution import SymbolicSystemExecution, StateTransition, SavedStateTransition -from generator.graph.SystemGraph import SystemGraph -from generator.graph.SystemSemantic import * -from generator.graph.SystemStateFlow import * -from generator.graph.GenerateAssertions import * -from generator.graph.DominanceAnalysis import * -from generator.graph.FiniteStateMachineBuilder import * -from generator.graph.CFGRegions import CFGRegions - - -from generator.graph.Task import Task -from generator.graph.common import GraphObject diff --git a/generator/main.py b/generator/main.py index f4209ed933379820d5bc6aa57479e8601bb40099..8122dd5d71dbdac20595f49c42323253afa9a8bf 100755 --- a/generator/main.py +++ b/generator/main.py @@ -44,8 +44,9 @@ if __name__ == "__main__": sys.path.insert(0, os.path.abspath(os.path.join(source_dir, ".."))) from generator import LLVMPYAnalysis, Generator, OILSystemDescription - from generator.rules import * - from generator.graph import * + from generator.analysis import * + from generator.transform import * + from generator.coder import * from generator.tools import panic, wrap_typecheck_functions # Install the typechecking @@ -186,12 +187,12 @@ if __name__ == "__main__": panic("Unknown --arch=%s", options.arch) if options.unencoded: - os_rules = UnencodedSystem() + os_rules = UnencodedOS() else: - os_rules = EncodedSystem() + os_rules = EncodedOS() assert options.systemcalls in ("full", "specialized", "fsm") - + if options.systemcalls == "specialized": # Only when we want to specialize the system calls, run the # System-Level analyses diff --git a/generator/rules/__init__.py b/generator/rules/__init__.py deleted file mode 100644 index bbd0cfe79ea601864e01647afe37592b90417f6b..0000000000000000000000000000000000000000 --- a/generator/rules/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -assert __name__ == "generator.rules" - -from generator.rules.base import BaseRules -from generator.rules.simple import SimpleSystem -from generator.rules.encoded import EncodedSystem, SignatureGenerator -from generator.rules.unencoded import UnencodedSystem -from generator.rules.syscalls_full import FullSystemCalls -from generator.rules.syscalls_specialized import SpecializedSystemCalls -from generator.rules.syscalls_fsm import FSMSystemCalls -from generator.rules.x86 import X86Arch -from generator.rules.arm import ARMArch -from generator.rules.posix import PosixArch diff --git a/generator/rules/fsm_kernel.py b/generator/rules/fsm_kernel.py deleted file mode 100644 index d147e954d6c2234e3833f6dd82b22537c036bf75..0000000000000000000000000000000000000000 --- a/generator/rules/fsm_kernel.py +++ /dev/null @@ -1,10 +0,0 @@ -from generator.rules.simple import SimpleSystem, AlarmTemplate -from generator.elements import CodeTemplate, Include, VariableDefinition, \ - Block, Statement, Comment, Function, Hook, DataObject -from generator.graph.AtomicBasicBlock import S, AtomicBasicBlock -from generator.graph.Resource import Resource -from generator.graph.Subtask import Subtask -from generator.graph.Function import Function - - -class FSMSystem(SimpleSystem): diff --git a/generator/graph/CFGRegions.py b/generator/transform/CFGRegions.py similarity index 97% rename from generator/graph/CFGRegions.py rename to generator/transform/CFGRegions.py index 46cebe9b19c79e003ce852a6a00e8e34bb7fa6d2..408096fabf409be3f6e015ba91ee441c1e03bfd8 100644 --- a/generator/graph/CFGRegions.py +++ b/generator/transform/CFGRegions.py @@ -1,6 +1,6 @@ -from generator.graph.Analysis import Analysis -from generator.graph.AtomicBasicBlock import E, S -from generator.elements import DataObject, Include +from generator.analysis.Analysis import Analysis +from generator.analysis.AtomicBasicBlock import E, S +from generator.coder.elements import DataObject, Include import logging class CFGRegions(Analysis): diff --git a/generator/graph/FiniteStateMachineBuilder.py b/generator/transform/FiniteStateMachineBuilder.py similarity index 99% rename from generator/graph/FiniteStateMachineBuilder.py rename to generator/transform/FiniteStateMachineBuilder.py index 5a8a34a31b1bc197c262c7a55dacfdda7f27995e..45779263a32258755b5356167c4349abf5373a37 100644 --- a/generator/graph/FiniteStateMachineBuilder.py +++ b/generator/transform/FiniteStateMachineBuilder.py @@ -1,6 +1,5 @@ -from generator.graph.common import * -from generator.graph.Analysis import * -from generator.graph import SymbolicSystemExecution, SavedStateTransition +from generator.analysis.common import * +from generator.analysis import Analysis, SavedStateTransition, S, E from generator.tools import pairwise from types import SimpleNamespace from collections import namedtuple, defaultdict diff --git a/generator/graph/GenerateAssertions.py b/generator/transform/GenerateAssertions.py similarity index 98% rename from generator/graph/GenerateAssertions.py rename to generator/transform/GenerateAssertions.py index 513be6b9e6b2c19662ac9911f7b374c61f7552db..f044721a6f7e4b8f451dc646a17ae7d0e9809ba1 100644 --- a/generator/graph/GenerateAssertions.py +++ b/generator/transform/GenerateAssertions.py @@ -1,5 +1,4 @@ -from generator.graph.Analysis import Analysis -from generator.graph.AtomicBasicBlock import E +from generator.analysis import Analysis, E from generator.tools import Enum import logging @@ -11,7 +10,6 @@ class AssertionType(Enum): EventsCheck = 4 - class Assertion: def __init__(self, _type, _arguments, prio = 0): self.Type = _type @@ -40,7 +38,6 @@ class Assertion: return self.arguments - class GenerateAssertionsPass(Analysis): """This pass generates assertions that must hold before a system call and after a systemcall.""" diff --git a/generator/transform/__init__.py b/generator/transform/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f9670d9f91fc0d055810eb9138fb900447e00751 --- /dev/null +++ b/generator/transform/__init__.py @@ -0,0 +1,5 @@ +assert __name__ == "generator.transform" + +from .FiniteStateMachineBuilder import * +from .CFGRegions import CFGRegions +from .GenerateAssertions import * diff --git a/generator/graph/sage_finite_state_machine.py b/generator/transform/sage_finite_state_machine.py similarity index 100% rename from generator/graph/sage_finite_state_machine.py rename to generator/transform/sage_finite_state_machine.py