I have written some code for this module so Chetan could get an idea of how to link to the smm. I have just commited an update to this code which should allow it to work. Mind you, it is VERY basic code, so it will probably get thrown away once someone else digs in. If you do decide to help out on the pid module, and manage to come to an agreement with Chetan, I can email you some details on how the current pid code is organized. If you would like to work on the PID module it would be a great help.
Next task is to actually start coding.
I'm hard pressed for time currently due to some re-organization here at work and so on. I'm assuming some higher level Module will manage the timing and call the PID function on a timely basis. I think the best option is to have the structure contain an array of pointers to the lplc io map and the PID code then reads the data into local variables. This way we will be able to implement the lego blocks type approach. The actual algorithm is contained in the PID spec in the archive documents.