#include #include #include #define _GNU_SOURCE /* See feature_test_macros(7) */ #include #include "wrappedlibs.h" #include "debug.h" #include "wrapper32.h" #include "bridge.h" #include "librarian/library_private.h" #include "x64emu.h" #include "emu/x64emu_private.h" #include "callback.h" #include "librarian.h" #include "box32context.h" #include "emu/x64emu_private.h" #include "converter32.h" static const char* mountName = "libmount.so.1"; #define LIBNAME mount #include "generated/wrappedmounttypes32.h" #include "wrappercallback32.h" typedef struct my_libmnt_optmap_s { /*const*/ char *name; int id; int mask; } my_libmnt_optmap_t; typedef struct my_libmnt_optmap_32_s { ptr_t name; //const char * int id; int mask; } my_libmnt_optmap_32_t; void convert_libmnt_optmap_32(void* d, void* s) { if(!s || !d) return; my_libmnt_optmap_t* src = s; my_libmnt_optmap_32_t* dst = d; dst->name = to_ptrv(src->name); dst->id = src->id; dst->mask = src->mask; } void convert_libmnt_optmap_64(void* d, void* s) { if(!s || !d) return; my_libmnt_optmap_32_t* src = s; my_libmnt_optmap_t* dst = d; dst->mask = src->mask; dst->id = src->id; dst->name = from_ptrv(src->name); } #define N 4 static my_libmnt_optmap_t* optmap_64[N] = {0}; static my_libmnt_optmap_32_t optmap_32[N] = {0}; my_libmnt_optmap_32_t* shrink_libmnt_optmap(void* a) { if(!a) return NULL; for(int i; imnt_get_builtin_optmap(a)); } EXPORT int my32_mnt_optstr_get_flags(x64emu_t* emu, void* optstr, void* flag, void* map) { return my->mnt_optstr_get_flags(optstr, flag, enlarge_libmnt_optmap(map)); } #include "wrappedlib_init32.h"