General Details
This article describes the calling conventions with respect to js-ctypes while programming x86 and x86-64/x64/AMD64 architectures. A calling convention is an implementation-level (low-level) scheme regarding how subroutines receive parameters from their caller and how they revert.
https://en.wikipedia.org/wiki/X86_calling_conventions
ABI
ABI stands for "Application Binary Interface".
https://en.wikipedia.org/wiki/Application_binary_interface
OS Specific
Windows
- https://msdn.microsoft.com/en-us/library/k2b2ssfy.aspx
- https://msdn.microsoft.com/en-us/library/9b372w95.aspx
Details with Respect to js-ctypes
This explains how to use it in the js-ctypes scope.
Three different ABIs exist: ctypes.default_abi
, ctypes.stdcall_abi
, and ctypes.winapi_abi
.
ctypes.default_abi
Corresponds to cdecl
; standard libraries use this ABI. You can also use this for various system calls,including those on Mac OS X and Linux.
ctypes.thiscall_abi
More information is available at Bugzilla :: 552533.
ctypes.stdcall_abi
Used for calling functions declared with stdcall
on Windows. These functions' names are automatically mangled for you by js-ctypes.
ctypes.winapi_abi
Used for calling Windows system functions. These are declared as stdcall
on Windows, but do not have mangled names like those used by stdcall_abi
above.
OS Specific
WIN32 and OS2
Callbacks in js-ctypes under these opearting systems use a different ABI then declare regular functions.
If you just use any of the three ABI's ctypes.default_abi/ctypes.winapi_abi/ctypes.stdcall_abi everywhere, since Firefox XX, js-ctypes will implicity convert it to what it should be https://dxr.mozilla.org/mozilla-central/source/js/src/ctypes/CTypes.cpp#6091
Other
All other operating systems, including 64-bit Windows (WIN64), use ctypes.default_abi
as it's calling convention for all things, callbacks and function declaration.
Method overview
String toSource() |
String toString() |
Methods
toSource()
Returns the string "ctypes.***_abi".
String toSource()
Parameters
None.
Return value
A JavaScript expression that evaluates to the ABI
.
toString()
Returns a string identifying the ABI.
String toString();
Parameters
None.
Return value
A string identifying the ABI.