All of these definitions should be moved into the .c file.  They're not used outside of the implementation and are not part of the new abstraction provided by this patchset.