http://bugs.winehq.org/show_bug.cgi?id=58377
--- Comment #7 from Zeb Figura z.figura12@gmail.com --- (In reply to Zeb Figura from comment #6)
- Unix side of the corresponding vectors is an exported array
__wine_unix_call_funcs[]. The signature is in wine/unixlib.h and should hopefully be self-explanatory. The array is indexed by the ioctl index.
Oh right, forgot about wow64:
* wow64 vectors are a separate exported array __wine_unix_call_wow64_funcs[]. These will receive the arguments passed from 32-bit code. Wine doesn't interpret or convert arguments other than zero-extending the pointer. If you embed pointers or pointer-sized types you have to convert them manually. If you use the same arguments regardless of code, you can just put the same functions in both arrays [but you do still need both exports].
* Also, be aware that some types are different between PE and Unix. Avoid "long". Also, be careful about uint64_t, which doesn't always have the same alignment.