I'm thinking of making a D interface to Valgrind's client request API. By mucking around in the header files and de-compiling stuff, I could eventually figure out what it's doing but I'm wondering if their is a authoritative document on how things work? (BTW I already found this document but it doesn't have enough info)
What I'm looking for would answer questions like: How do I generate the macros to wrap/call a function that returns a 32bit machine word and takes a 64bit float?
In the valgrand manual, it describes the existing client request prototypes at the bottom of http://valgrind.org/docs/manual/manual-core-adv.html but none of these support passing 64bit floats. You could split it into two longs and pass it that way. It does look pretty hairy.
The authoritative document on how it works is the source code. If the tech docs are incomplete, then use the source.
I would also suggest looking at the sources of libraries that use the client request mechanism.