CiD Code
Brought to you by:
gerty3000
File | Date | Author | Commit |
---|---|---|---|
evaluation | 2011-06-01 | gerty3000 | [r4] Fixed 8139cp bug: wrong argument to memset |
include | 2011-05-13 | gerty3000 | [r1] Initial commit |
src | 2014-12-01 | gerty3000 | [r7] Edited commentary |
templates | 2011-05-13 | gerty3000 | [r3] Fixed bashscript, added missing template files |
README.txt | 2014-12-01 | gerty3000 | [r8] Edited commentary |
bugs_and_issues.txt | 2014-12-01 | gerty3000 | [r7] Edited commentary |
cid | 2011-05-13 | gerty3000 | [r3] Fixed bashscript, added missing template files |
1. How to run the compiler: =========================== chmod +x cid ./cid input_file.cid [-g concurrency_graph.dot] > output.c o) The folder evaluation contains** the two tested drivers, i.e., compile and test with ./cid evaluation/8139cp.cid -g graph.dot > 8139cp.c ./cid evaluation/ub.cid -g graph.dot > ub.c ** You might have noticed that there are also two other drivers, but they are work in progress. If you like to help, please contact me. 2. For an overview of the compiler source files, please see Section in my thesis. ================================================================================= You can find my thesis in the thesis.tar file, along with the compiler source files used in the thesis. However, if you want to play around, I strongly recommend that you use the most recent version of the compiler. 3. Caveats: ============ 1. Compiler type system warnings: The compiler reports quite a few operator usage warnings for the converted drivers. The warnings are harmless, they occur because of explicit casts are not suported and some of the type checks are too rigids. This can be fixed by specifying manual cast operations (i.e. "empty" template functions with the correct return type). 2. Format of generated code If you want to take a look at the generated code, you might want to use a C/C++ beautifier like uncrustify. 3. Open Issues There are many open issues with the current system. Many of them are not interesting (with regards to the original research scope) and are related to maintenance and refactoring tasks (see bugs_and_issues.txt). The real issue lies within the architecture of the compiler. It is far too crude to handle the complex and rapidly changing aspects of device driver programming. Ideally, we need an expert system for driver development that supports versioning, advice on programming, sharing of information, reusable procedures, collaboration, workflows and so on. 4. Contact information ====================== If you have any questions, feel free to contact me under guenter.khyo@chello.at. or just PM me on sourceforge (gerty3000).