In the process of making OpenAFS work on Tiger (which isn't done yet, sadly) there's been a good bit of interface cleanup. It's not all mine; My coworker Chaskiel has done a good bit of it. But I've gone back over some of his work and made it more abstract rather than just an added set of ifdefs throughout the code. Too many previous ports (most prior to OpenAFS) have been slapdash, and it needs to stop. So, in some cases we have new macroized interfaces which look like some of the stuff in the 10.4 kernel, and in some cases I only redefined 10.3 and earlier stuff to look like 10.4 (network structures) or 10.4 to look like 10.3 and nearly every other Unix system (vnode attributes).
Now, all this good work aside, it remains to be seen that we can make it all work. I think we can but there have been several gotchas so far. I'm uncertain how it was decided which functions would be private, but some of the choices seem... interesting.
In mostly unrelated news, I want to give a talk on "how to hurt yourself with AFS" at AFS Best Practices 2005. This is sort of a joke, and assuming I have time to fill it in, will be "here are the ways you should not use AFS."
Anyway, shortly I will drop Cyrus SASL 2.1.21 on the world, and I spent the week training a cow orker, so I guess it wasn't a total loss.