I am also not quite sure about some constructs, like
"wine_cudaBindTexture( size_t* offset, const struct texture < T, dim, readMode >& texRef, const void* devPtr, const struct cudaChannelFormatDesc& desc, size_t size = UINT_MAX )" As far as I know this contains C++ or Microsoft syntax, which is not valid in pure C.
Correct, this is C++. If you're wondering about the const reference, that's only valid in C++. If there is such a declaration as part of the CUDA API, then it's only accessible from C++ callers, and your implementation must be in C++.
If you're wondering about the default value for size, that's also C++. Default values are only valid in a function declaration, not in a function definition. Therefore I think you can just omit them from your own implementation. --Juan