Mercurial > pub > dyncall > bindings
changeset 39:b6114d9a9a98
- shdc: more sig chars for call conv mode selection
- readme cleanup
author | Tassilo Philipp |
---|---|
date | Mon, 13 Apr 2020 21:58:48 +0200 |
parents | 9943c30ee2aa |
children | 1d50532dce12 |
files | ruby/rbdc/README.txt shell/shdc/shdc.c |
diffstat | 2 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/ruby/rbdc/README.txt Mon Apr 13 21:41:59 2020 +0200 +++ b/ruby/rbdc/README.txt Mon Apr 13 21:58:48 2020 +0200 @@ -63,7 +63,7 @@ TODO ==== -- signature suffixes used to indicate calling conventions are not supported yet! +- signature chars used to indicate calling conventions are not supported yet! - C pointer -> ruby... array? - callback support
--- a/shell/shdc/shdc.c Mon Apr 13 21:41:59 2020 +0200 +++ b/shell/shdc/shdc.c Mon Apr 13 21:58:48 2020 +0200 @@ -126,11 +126,18 @@ switch(*i) { case DC_SIGCHAR_CC_PREFIX: switch(*++i) { - case DC_SIGCHAR_CC_ELLIPSIS: dcMode(vm, DC_CALL_C_ELLIPSIS); break; - case DC_SIGCHAR_CC_STDCALL: dcMode(vm, DC_CALL_C_X86_WIN32_STD); break; - case DC_SIGCHAR_CC_FASTCALL_GNU: dcMode(vm, DC_CALL_C_X86_WIN32_FAST_GNU); break; - case DC_SIGCHAR_CC_FASTCALL_MS: dcMode(vm, DC_CALL_C_X86_WIN32_FAST_MS); break; - case DC_SIGCHAR_CC_THISCALL_MS: dcMode(vm, DC_CALL_C_X86_WIN32_THIS_MS); break; + case DC_SIGCHAR_CC_DEFAULT: dcMode(vm, DC_CALL_C_DEFAULT ); break; + case DC_SIGCHAR_CC_ELLIPSIS: dcMode(vm, DC_CALL_C_ELLIPSIS ); break; + case DC_SIGCHAR_CC_ELLIPSIS_VARARGS: dcMode(vm, DC_CALL_C_ELLIPSIS_VARARGS ); break; + case DC_SIGCHAR_CC_CDECL: dcMode(vm, DC_CALL_C_X86_CDECL ); break; + case DC_SIGCHAR_CC_STDCALL: dcMode(vm, DC_CALL_C_X86_WIN32_STD ); break; + case DC_SIGCHAR_CC_FASTCALL_MS: dcMode(vm, DC_CALL_C_X86_WIN32_FAST_MS ); break; + case DC_SIGCHAR_CC_FASTCALL_GNU: dcMode(vm, DC_CALL_C_X86_WIN32_FAST_GNU); break; + case DC_SIGCHAR_CC_THISCALL_MS: dcMode(vm, DC_CALL_C_X86_WIN32_THIS_MS ); break; + case DC_SIGCHAR_CC_THISCALL_GNU: dcMode(vm, DC_CALL_C_X86_WIN32_THIS_GNU); break; + case DC_SIGCHAR_CC_ARM_ARM: dcMode(vm, DC_CALL_C_ARM_ARM ); break; + case DC_SIGCHAR_CC_ARM_THUMB: dcMode(vm, DC_CALL_C_ARM_THUMB ); break; + case DC_SIGCHAR_CC_SYSCALL: dcMode(vm, DC_CALL_SYS_DEFAULT ); break; /* @@@ extend with other modes when they become available */ } sig += 2;