diff options
| author | LiZhuoheng <114734429+zohanzephyr@users.noreply.github.com> | 2024-05-30 20:34:08 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-30 14:34:08 +0200 |
| commit | 19ca78769f4730f751d2baca34cc4358ef68553b (patch) | |
| tree | b288b546a0fefba8f55373044ea6302605326bd6 /src | |
| parent | 3e5784cbc560d21539b1ad1b157206102f25b25c (diff) | |
| download | box64-19ca78769f4730f751d2baca34cc4358ef68553b.tar.gz box64-19ca78769f4730f751d2baca34cc4358ef68553b.zip | |
Wrapped libssh2 (#1538)
* Wrapped libssh2 * Add more libssh2 wrapped functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/library_list.h | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibssh2defs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibssh2types.h | 17 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibssh2undefs.h | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibssh2.c | 19 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibssh2_private.h | 30 |
9 files changed, 89 insertions, 0 deletions
diff --git a/src/library_list.h b/src/library_list.h index b1b33472..8727bb86 100644 --- a/src/library_list.h +++ b/src/library_list.h @@ -256,6 +256,7 @@ GO("libidn2.so.0", idn2) GO("libpam.so.0", pam) GO("libanl.so.1", anl) GO("libpsl.so.5", psl5) +GO("libssh2.so.1", libssh2) #ifdef ANDROID GO("libc.so", libc) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 59a8ab8b..96868e89 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -1607,6 +1607,7 @@ #() iFppuuu #() iFppuup #() iFppupi +#() iFppupu #() iFppupp #() iFppUup #() iFpplii @@ -4727,6 +4728,7 @@ wrappedlibsndfile: - sf_close - pFpipp: - sf_open_virtual +wrappedlibssh2: wrappedlibssl: - pFp: - SSL_get_verify_callback diff --git a/src/wrapped/generated/wrappedlibssh2defs.h b/src/wrapped/generated/wrappedlibssh2defs.h new file mode 100644 index 00000000..96ef86f3 --- /dev/null +++ b/src/wrapped/generated/wrappedlibssh2defs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.4.0.21) * + *******************************************************************/ +#ifndef __wrappedlibssh2DEFS_H_ +#define __wrappedlibssh2DEFS_H_ + + +#endif // __wrappedlibssh2DEFS_H_ diff --git a/src/wrapped/generated/wrappedlibssh2types.h b/src/wrapped/generated/wrappedlibssh2types.h new file mode 100644 index 00000000..3363c6c8 --- /dev/null +++ b/src/wrapped/generated/wrappedlibssh2types.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.4.0.21) * + *******************************************************************/ +#ifndef __wrappedlibssh2TYPES_H_ +#define __wrappedlibssh2TYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedlibssh2TYPES_H_ diff --git a/src/wrapped/generated/wrappedlibssh2undefs.h b/src/wrapped/generated/wrappedlibssh2undefs.h new file mode 100644 index 00000000..8c110957 --- /dev/null +++ b/src/wrapped/generated/wrappedlibssh2undefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.4.0.21) * + *******************************************************************/ +#ifndef __wrappedlibssh2UNDEFS_H_ +#define __wrappedlibssh2UNDEFS_H_ + + +#endif // __wrappedlibssh2UNDEFS_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index d0841a86..605707e6 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1645,6 +1645,7 @@ typedef int32_t (*iFppuip_t)(void*, void*, uint32_t, int32_t, void*); typedef int32_t (*iFppuuu_t)(void*, void*, uint32_t, uint32_t, uint32_t); typedef int32_t (*iFppuup_t)(void*, void*, uint32_t, uint32_t, void*); typedef int32_t (*iFppupi_t)(void*, void*, uint32_t, void*, int32_t); +typedef int32_t (*iFppupu_t)(void*, void*, uint32_t, void*, uint32_t); typedef int32_t (*iFppupp_t)(void*, void*, uint32_t, void*, void*); typedef int32_t (*iFppUup_t)(void*, void*, uint64_t, uint32_t, void*); typedef int32_t (*iFpplii_t)(void*, void*, intptr_t, int32_t, int32_t); @@ -4727,6 +4728,7 @@ void iFppuip(x64emu_t *emu, uintptr_t fcn) { iFppuip_t fn = (iFppuip_t)fcn; R_RA void iFppuuu(x64emu_t *emu, uintptr_t fcn) { iFppuuu_t fn = (iFppuuu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); } void iFppuup(x64emu_t *emu, uintptr_t fcn) { iFppuup_t fn = (iFppuup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); } void iFppupi(x64emu_t *emu, uintptr_t fcn) { iFppupi_t fn = (iFppupi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); } +void iFppupu(x64emu_t *emu, uintptr_t fcn) { iFppupu_t fn = (iFppupu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8); } void iFppupp(x64emu_t *emu, uintptr_t fcn) { iFppupp_t fn = (iFppupp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void iFppUup(x64emu_t *emu, uintptr_t fcn) { iFppUup_t fn = (iFppUup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); } void iFpplii(x64emu_t *emu, uintptr_t fcn) { iFpplii_t fn = (iFpplii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); } @@ -7517,6 +7519,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFppuuu) return 1; if (fun == &iFppuup) return 1; if (fun == &iFppupi) return 1; + if (fun == &iFppupu) return 1; if (fun == &iFppupp) return 1; if (fun == &iFppUup) return 1; if (fun == &iFpplii) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 45e8a03e..d9ef2a1b 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1645,6 +1645,7 @@ void iFppuip(x64emu_t *emu, uintptr_t fnc); void iFppuuu(x64emu_t *emu, uintptr_t fnc); void iFppuup(x64emu_t *emu, uintptr_t fnc); void iFppupi(x64emu_t *emu, uintptr_t fnc); +void iFppupu(x64emu_t *emu, uintptr_t fnc); void iFppupp(x64emu_t *emu, uintptr_t fnc); void iFppUup(x64emu_t *emu, uintptr_t fnc); void iFpplii(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibssh2.c b/src/wrapped/wrappedlibssh2.c new file mode 100644 index 00000000..3dd0158e --- /dev/null +++ b/src/wrapped/wrappedlibssh2.c @@ -0,0 +1,19 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* libssh2Name = "libssh2.so.1"; +#define LIBNAME libssh2 + +#define NEEDED_LIBS "libgcrypt.so.20" + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedlibssh2_private.h b/src/wrapped/wrappedlibssh2_private.h new file mode 100644 index 00000000..6a33d91c --- /dev/null +++ b/src/wrapped/wrappedlibssh2_private.h @@ -0,0 +1,30 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +error Meh... +#endif + +GO(libssh2_agent_connect, iFp) +GO(libssh2_agent_disconnect, iFp) +GO(libssh2_agent_free, vFp) +GO(libssh2_agent_get_identity, iFppp) +GO(libssh2_agent_get_identity_path, iFpppi) +GO(libssh2_agent_init, pFp) +GO(libssh2_agent_list_identities, iFp) +GO(libssh2_agent_set_identity_path, vFpp) +GO(libssh2_agent_userauth, iFppp) +GO(libssh2_banner_set, iFpp) +GO(libssh2_base64_decode, iFppppi) +GO(libssh2_channel_close, iFp) +GO(libssh2_channel_direct_tcpip_ex, iFppipi) +GO(libssh2_channel_eof, iFp) +GO(libssh2_channel_flush_ex, iFpi) +GO(libssh2_channel_forward_accept, pFp) +GO(libssh2_channel_forward_cancel, iFp) +GO(libssh2_channel_forward_listen_ex, pFppipi) +GO(libssh2_channel_free, iFp) +GO(libssh2_channel_get_exit_signal, iFppppppp) +GO(libssh2_channel_get_exit_status, iFp) +GO(libssh2_channel_handle_extended_data, vFpi) +GO(libssh2_channel_handle_extended_data2, iFpi) +GO(libssh2_channel_process_startup, iFppupu) +GO(libssh2_channel_read_ex, iFpipi) +GO(libssh2_crypt_methods, pFv) |