On Tue, Aug 17, 2010 at 3:50 PM, Kai Tietz <ktiet...@googlemail.com> wrote:
> 2010/8/17 Pete Batard <pbat...@gmail.com>:
>> On 2010.08.17 12:55, Kai Tietz wrote:
>>> Pete,
>>>
>>> could you provide us a list of the Interlock* API, which has stdcall
>>> calling convention by our findings? Please just list names of those
>>> functions and don't copy from VC's header-set. So we can adjust things
>>> for win32 more easily without violating EULA.
>>
>> Thanks for the speedy replies.
>>
>> As far as we are concerned, we only had InterlockedExchange and
>> InterlockedIncrement being a problem, as these are the only 2 call from
>> Interlocked API we use.
>>
>> The following is copied from MinGW32's winbase.h [1] which should work
>> with your EULA. It looks like you might need to add some #ifdefs as well:
>>
>> #if !(__USE_NTOSKRNL__)
>> /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.h
>>    as __fastcall functions, but are  exported from kernel32.dll as
>> __stdcall */
>> #if (_WIN32_WINNT >= 0x0501)
>> WINBASEAPI VOID WINAPI InitializeSListHead(PSLIST_HEADER);
>> #endif
>> #ifndef __INTERLOCKED_DECLARED
>> #define __INTERLOCKED_DECLARED
>> LONG WINAPI InterlockedCompareExchange(LONG volatile *,LONG,LONG);
>> /* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */
>> #define InterlockedCompareExchangePointer(d,e,c) \
>>     (PVOID)InterlockedCompareExchange((LONG volatile
>> *)(d),(LONG)(e),(LONG)(c))
>> LONG WINAPI InterlockedDecrement(LONG volatile *);
>> LONG WINAPI InterlockedExchange(LONG volatile *,LONG);
>> /* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */
>> #define InterlockedExchangePointer(t,v) \
>>     (PVOID)InterlockedExchange((LONG volatile *)(t),(LONG)(v))
>> LONG WINAPI InterlockedExchangeAdd(LONG volatile *,LONG);
>> #if (_WIN32_WINNT >= 0x0501)
>> PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
>> #endif
>> LONG WINAPI InterlockedIncrement(LONG volatile *);
>> #if (_WIN32_WINNT >= 0x0501)
>> PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
>> PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY);
>> #endif
>> #endif /* __INTERLOCKED_DECLARED */
>> #endif /*  __USE_NTOSKRNL__ */
>>
>> Regards,
>>
>> /Pete
>>
>> [1]
>> http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/w32api/include/winbase.h?rev=1.98&content-type=text/x-cvsweb-markup&cvsroot=src
>
> Ozkan,
>
> do you remember the issue we had about _Interlocked and the
> Interlocked... API? As more as I think about it as more it seems to me
> that the leading underscore variant has cdecl, and the none-underscore
> variant has stdcall convention.

Can't remember. Let me try and dig old stuff and see if I can find anything

> Fridrich: Could you try to enlight us here?
>
> Kai
>

--
Ozkan

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to