File:  [NetBSD Developer Wiki] / wikisrc / projects / project / Attic / xmlif.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Sun Nov 6 01:59:12 2011 UTC (6 years, 7 months ago) by jmmv
Branches: MAIN
CVS tags: HEAD
Move existing project definitions from projects/gsoc_2011/ to
projects/project/ .

The goal for this reorganization is to remove any knowledge of the projects
classification from the file hierarchy: the classification goes into tags,
and projects indexes automatically list projects based on such tags.

Also, the current gsoc_2011 name was wrong anyway, because GSoC 2011 has
already concluded and projects would have had to move to a gsoc_2012 directory

Lastly, yes, "projects/project/*" is slightly redundant.  But I want to keep
the project lists from the projects "database" clearly separated.

This is as proposed in www@.

[[!template id=project

title="Research converting system interfaces to XML"


[Antti Kantee](, [Adam Hamsik](

duration="3 months"

System interfaces are currently specified as C prototypes, C preprocessor macros and C structures. This limits the ability to do automatic processing with them. There are some cases in the tree which implement an ad-hoc domain specific language and a script producing a C representation of the data, for example vnode_if.src and namei.src.

The goal of the project is to come up with a specification language and test it by rewriting a considerable subset of the current C headers in it. A translator for generating the C representations and documentation should also be implemented. Finally, the student should suggest and implement any other use for the translator. An example is autogenerating code to print structures in a human-readable form from the ddb kernel debugger.

This is more of a research project than a simple implementation. The goals are very loosely set now, but should be exactly specified by the student in the application.

For honors, a static analyzer examining if calls are made with the correct type of flag arguments can be written as the third requirement. It would warn about for example `malloc(s, M_TEMP, PR_WAITOK);`.

[[!tag gsoc]]
[[!tag hard]]
[[!tag kernel]]

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb