On Thu, Dec 11, 2008 at 11:20 AM, Alon Bar-Lev <[EMAIL PROTECTED]> wrote:
> Can't it cause conflict?

What kind of conflicts?
If the DWORD type is already defined elsewhere for exemple?

> Or the Windows types are defined by "portable" types... ?

That depends on your definition of "portable".
    typedef int32_t LONG;
    typedef uint32_t DWORD;

The problem is that with the "official" pcsc-lite we have:
    typedef long LONG;
    typedef unsigned long DWORD;
These are the same definition that are used by Microsoft on Windows.

The problem is that Windows on 64-bits arch uses LLP64 model [1] and
Linux, Darwin (and I think any other Unix) uses the LP64 model.

So:
On Windows 64bits a LONG is 32 bits
On Linux 64 bits a LONG is 64 bits (as a long)
On Mac OS X 64 bits a LONG is 32 bits (as a int32_t)

I think Apple made the good choice. I could change the definitions in
pcsc-lite wintypes.h but that would break the ABI (on 64 bits
machines) and would then require a new pcsclite library version.

bye

[1] http://en.wikipedia.org/wiki/64-bit

-- 
 Dr. Ludovic Rousseau
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to