use a GCC equivalent for __stdcall where applicable
authorRodrigo Silva <github@rodrigosilva.com>
Fri, 25 Mar 2016 18:19:12 +0000 (15:19 -0300)
committerMestreLion <linux@rodrigosilva.com>
Fri, 25 Mar 2016 19:05:26 +0000 (16:05 -0300)
GCC on 32-bit architectures has __attribute__((stdcall)) as
an equivalent to Windows __stdcall, so use it conditionally
instead of leaving it blank for all non-Windows platforms.

This may benefit all platforms where GCC or compatible
compilers are used, including (but not limited to) Linux.

include/ext_ADL.h

index 0146b8b..71ec07f 100644 (file)
@@ -250,9 +250,18 @@ typedef struct ADLOD6PowerControlInfo
   int iExtMask;
 } ADLOD6PowerControlInfo;
 
+/* __stdcall definition, platform-dependent:
+ * - Already defined on Windows compilers
+ * - GCC has a suitable equivalent on 32-bit platforms
+ * - Leave it blank for other platforms/compilers
+ */
 #if !(defined (_WIN32) || defined (_WIN64))
+#if (defined(__GNUC__) && defined(__i386__))
+#define __stdcall __attribute__((stdcall))
+#else
 #define __stdcall
-#endif
+#endif /* GCC 32-bit  */
+#endif /* Not windows */
 
 typedef void* (__stdcall *ADL_MAIN_MALLOC_CALLBACK )( int );