diff options
Diffstat (limited to 'src')
108 files changed, 562 insertions, 408 deletions
diff --git a/src/custommem.c b/src/custommem.c index f4c0102d..f428706d 100644 --- a/src/custommem.c +++ b/src/custommem.c @@ -33,7 +33,7 @@ KHASH_MAP_INIT_INT64(dynablocks, dynablock_t*) static dynablocklist_t*** dynmap123[1<<DYNAMAP_SHIFT]; // 64bits.. in 4x16bits array static pthread_mutex_t mutex_mmap; static mmaplist_t *mmaplist; -static int mmapsize; +static size_t mmapsize; static kh_dynablocks_t *dblist_oversized; // store the list of oversized dynablocks (normal sized are inside mmaplist) static uintptr_t*** box64_jmptbl3[1<<JMPTABL_SHIFT]; static uintptr_t** box64_jmptbldefault2[1<<JMPTABL_SHIFT]; @@ -50,7 +50,7 @@ static int inited = 0; typedef struct blocklist_s { void* block; - int maxfree; + size_t maxfree; size_t size; } blocklist_t; @@ -74,7 +74,7 @@ typedef struct blockmark_s { // get first subblock free in block, stating at start (from block). return NULL if no block, else first subblock free (mark included), filling size -static void* getFirstBlock(void* block, int maxsize, int* size) +static void* getFirstBlock(void* block, size_t maxsize, size_t* size) { // get start of block blockmark_t *m = (blockmark_t*)block; @@ -89,7 +89,7 @@ static void* getFirstBlock(void* block, int maxsize, int* size) return NULL; } -static int getMaxFreeBlock(void* block, size_t block_size) +static size_t getMaxFreeBlock(void* block, size_t block_size) { // get start of block blockmark_t *m = (blockmark_t*)((uintptr_t)block+block_size-sizeof(blockmark_t)); // styart with the end @@ -105,8 +105,10 @@ static int getMaxFreeBlock(void* block, size_t block_size) return maxsize; } -static void* allocBlock(void* block, void *sub, int size) +static void* allocBlock(void* block, void *sub, size_t size) { + (void)block; + blockmark_t *s = (blockmark_t*)sub; blockmark_t *n = (blockmark_t*)((uintptr_t)s + s->next.size); @@ -152,14 +154,17 @@ static void freeBlock(void *block, void* sub) } } // return 1 if block has been expanded to new size, 0 if not -static int expandBlock(void* block, void* sub, int newsize) +static int expandBlock(void* block, void* sub, size_t newsize) { + (void)block; + newsize = (newsize+3)&~3; blockmark_t *s = (blockmark_t*)sub; blockmark_t *n = (blockmark_t*)((uintptr_t)s + s->next.size); if(s->next.fill) return 0; // next block is filled - if(s->next.size + n->next.size < newsize) + // unsigned bitfield of this length gets "promoted" to *signed* int... + if((size_t)(s->next.size + n->next.size) < newsize) return 0; // free space too short // ok, doing the alloc! s->next.size = newsize+sizeof(blockmark_t); @@ -178,7 +183,7 @@ static int expandBlock(void* block, void* sub, int newsize) return 1; } // return size of block -static int sizeBlock(void* sub) +static size_t sizeBlock(void* sub) { blockmark_t *s = (blockmark_t*)sub; return s->next.size; @@ -191,7 +196,7 @@ void* customMalloc(size_t size) pthread_mutex_lock(&mutex_blocks); for(int i=0; i<n_blocks; ++i) { if(p_blocks[i].maxfree>=size) { - int rsize = 0; + size_t rsize = 0; sub = getFirstBlock(p_blocks[i].block, size, &rsize); if(sub) { void* ret = allocBlock(p_blocks[i].block, sub, size); @@ -253,17 +258,16 @@ void* customRealloc(void* p, size_t size) pthread_mutex_unlock(&mutex_blocks); return p; } - pthread_mutex_unlock(&mutex_blocks); - void* newp = customMalloc(size); - memcpy(newp, p, sizeBlock(sub)); - customFree(p); - return newp; - + pthread_mutex_unlock(&mutex_blocks); + void* newp = customMalloc(size); + memcpy(newp, p, sizeBlock(sub)); + customFree(p); + return newp; } } pthread_mutex_unlock(&mutex_blocks); if(n_blocks) - dynarec_log(LOG_NONE, "Warning, block %p not found in p_blocks for Realloc, Malloc'ng again without free\n", (void*)addr); + dynarec_log(LOG_NONE, "Warning, block %p not found in p_blocks for realloc, malloc'ing again without free\n", (void*)addr); return customMalloc(size); } void customFree(void* p) @@ -296,7 +300,7 @@ typedef struct mmaplist_s { uint8_t* helper; } mmaplist_t; -uintptr_t FindFreeDynarecMap(dynablock_t* db, int size) +uintptr_t FindFreeDynarecMap(dynablock_t* db, size_t size) { // look for free space void* sub = NULL; @@ -326,7 +330,7 @@ uintptr_t FindFreeDynarecMap(dynablock_t* db, int size) return 0; } -uintptr_t AddNewDynarecMap(dynablock_t* db, int size) +uintptr_t AddNewDynarecMap(dynablock_t* db, size_t size) { int i = mmapsize++; dynarec_log(LOG_DEBUG, "Ask for DynaRec Block Alloc #%d\n", mmapsize); @@ -832,7 +836,7 @@ uint32_t getProtection(uintptr_t addr) #define LOWEST (void*)0x20000 int availableBlock(uint8_t* p, size_t n) { - for (int i=0; i<n; ++i, ++p) + for (size_t i=0; i<n; ++i, ++p) if(*p) return 0; return 1; @@ -943,6 +947,7 @@ static void atfork_child_custommem(void) void init_custommem_helper(box64context_t* ctx) { + (void)ctx; if(inited) // already initialized return; inited = 1; @@ -966,6 +971,7 @@ void init_custommem_helper(box64context_t* ctx) void fini_custommem_helper(box64context_t *ctx) { + (void)ctx; if(!inited) return; inited = 0; diff --git a/src/dynarec/dynarec.c b/src/dynarec/dynarec.c index 4e7e0953..a142f91d 100755 --- a/src/dynarec/dynarec.c +++ b/src/dynarec/dynarec.c @@ -65,6 +65,11 @@ printf_log(LOG_NONE, "Warning, jumping to a no-block address %p from %p (db=%p, } #endif +#ifdef __GNUC__ +// Disable "clobbered" warnings +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wclobbered" +#endif void DynaCall(x64emu_t* emu, uintptr_t addr) { // prepare setjump for signal handling @@ -214,4 +219,7 @@ int DynaRun(x64emu_t* emu) ejb->jmpbuf_ok = 0; return 0; #endif -} \ No newline at end of file +} +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif diff --git a/src/elfs/elfload_dump.c b/src/elfs/elfload_dump.c index 85d01dcb..0ad72f00 100755 --- a/src/elfs/elfload_dump.c +++ b/src/elfs/elfload_dump.c @@ -253,19 +253,19 @@ void DumpMainHeader(Elf64_Ehdr *header, elfheader_t *h) printf_log(LOG_DUMP, " Section Header table offset = %p\n", (void*)header->e_shoff); printf_log(LOG_DUMP, " Flags = 0x%X\n", header->e_flags); printf_log(LOG_DUMP, " ELF Header size = %d\n", header->e_ehsize); - printf_log(LOG_DUMP, " Program Header Entry num/size = %d(%d)/%d\n", h->numPHEntries, header->e_phnum, header->e_phentsize); - printf_log(LOG_DUMP, " Section Header Entry num/size = %d(%d)/%d\n", h->numSHEntries, header->e_shnum, header->e_shentsize); - printf_log(LOG_DUMP, " Section Header index num = %d(%d)\n", h->SHIdx, header->e_shstrndx); + printf_log(LOG_DUMP, " Program Header Entry num/size = %zu(%d)/%d\n", h->numPHEntries, header->e_phnum, header->e_phentsize); + printf_log(LOG_DUMP, " Section Header Entry num/size = %zu(%d)/%d\n", h->numSHEntries, header->e_shnum, header->e_shentsize); + printf_log(LOG_DUMP, " Section Header index num = %zu(%d)\n", h->SHIdx, header->e_shstrndx); printf_log(LOG_DUMP, "ELF Dump ==========\n"); - printf_log(LOG_DUMP, "ELF Dump PEntries (%d)\n", h->numSHEntries); - for (int i=0; i<h->numPHEntries; ++i) - printf_log(LOG_DUMP, " PHEntry %04d : %s\n", i, DumpPHEntry(h->PHEntries+i)); + printf_log(LOG_DUMP, "ELF Dump PEntries (%zu)\n", h->numPHEntries); + for (size_t i=0; i<h->numPHEntries; ++i) + printf_log(LOG_DUMP, " PHEntry %04zu : %s\n", i, DumpPHEntry(h->PHEntries+i)); printf_log(LOG_DUMP, "ELF Dump PEntries ====\n"); - printf_log(LOG_DUMP, "ELF Dump Sections (%d)\n", h->numSHEntries); - for (int i=0; i<h->numSHEntries; ++i) - printf_log(LOG_DUMP, " Section %04d : %s\n", i, DumpSection(h->SHEntries+i, h->SHStrTab)); + printf_log(LOG_DUMP, "ELF Dump Sections (%zu)\n", h->numSHEntries); + for (size_t i=0; i<h->numSHEntries; ++i) + printf_log(LOG_DUMP, " Section %04zu : %s\n", i, DumpSection(h->SHEntries+i, h->SHStrTab)); printf_log(LOG_DUMP, "ELF Dump Sections ====\n"); } } @@ -274,9 +274,9 @@ void DumpSymTab(elfheader_t *h) { if(box64_log>=LOG_DUMP && h->SymTab) { const char* name = ElfName(h); - printf_log(LOG_DUMP, "ELF Dump SymTab(%d)=\n", h->numSymTab); - for (int i=0; i<h->numSymTab; ++i) - printf_log(LOG_DUMP, " %s:SymTab[%d] = \"%s\", value=%p, size=%ld, info/other=%d/%d index=%d\n", name, + printf_log(LOG_DUMP, "ELF Dump SymTab(%zu)=\n", h->numSymTab); + for (size_t i=0; i<h->numSymTab; ++i) + printf_log(LOG_DUMP, " %s:SymTab[%zu] = \"%s\", value=%p, size=%ld, info/other=%d/%d index=%d\n", name, i, h->StrTab+h->SymTab[i].st_name, (void*)h->SymTab[i].st_value, h->SymTab[i].st_size, h->SymTab[i].st_info, h->SymTab[i].st_other, h->SymTab[i].st_shndx); printf_log(LOG_DUMP, "ELF Dump SymTab=====\n"); @@ -286,9 +286,9 @@ void DumpSymTab(elfheader_t *h) void DumpDynamicSections(elfheader_t *h) { if(box64_log>=LOG_DUMP && h->Dynamic) { - printf_log(LOG_DUMP, "ELF Dump Dynamic(%d)=\n", h->numDynamic); - for (int i=0; i<h->numDynamic; ++i) - printf_log(LOG_DUMP, " Dynamic %04d : %s\n", i, DumpDynamic(h->Dynamic+i)); + printf_log(LOG_DUMP, "ELF Dump Dynamic(%zu)=\n", h->numDynamic); + for (size_t i=0; i<h->numDynamic; ++i) + printf_log(LOG_DUMP, " Dynamic %04zu : %s\n", i, DumpDynamic(h->Dynamic+i)); printf_log(LOG_DUMP, "ELF Dump Dynamic=====\n"); } } @@ -297,9 +297,9 @@ void DumpDynSym(elfheader_t *h) { if(box64_log>=LOG_DUMP && h->DynSym) { const char* name = ElfName(h); - printf_log(LOG_DUMP, "ELF Dump DynSym(%d)=\n", h->numDynSym); - for (int i=0; i<h->numDynSym; ++i) - printf_log(LOG_DUMP, " %s:DynSym[%d] = %s\n", name, i, DumpSym(h, h->DynSym+i)); + printf_log(LOG_DUMP, "ELF Dump DynSym(%zu)=\n", h->numDynSym); + for (size_t i=0; i<h->numDynSym; ++i) + printf_log(LOG_DUMP, " %s:DynSym[%zu] = %s\n", name, i, DumpSym(h, h->DynSym+i)); printf_log(LOG_DUMP, "ELF Dump DynSym=====\n"); } } @@ -308,7 +308,7 @@ void DumpDynamicNeeded(elfheader_t *h) { if(box64_log>=LOG_DUMP && h->DynStrTab) { printf_log(LOG_DUMP, "ELF Dump DT_NEEDED=====\n"); - for (int i=0; i<h->numDynamic; ++i) + for (size_t i=0; i<h->numDynamic; ++i) if(h->Dynamic[i].d_tag==DT_NEEDED) { printf_log(LOG_DUMP, " Needed : %s\n", h->DynStrTab+h->Dynamic[i].d_un.d_val + h->delta); } @@ -320,7 +320,7 @@ void DumpDynamicRPath(elfheader_t *h) { if(box64_log>=LOG_DUMP && h->DynStrTab) { printf_log(LOG_DUMP, "ELF Dump DT_RPATH/DT_RUNPATH=====\n"); - for (int i=0; i<h->numDynamic; ++i) { + for (size_t i=0; i<h->numDynamic; ++i) { if(h->Dynamic[i].d_tag==DT_RPATH) { printf_log(LOG_DUMP, " RPATH : %s\n", h->DynStrTab+h->Dynamic[i].d_un.d_val + h->delta); } diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c index 4e6a3be9..2283609e 100755 --- a/src/elfs/elfloader.c +++ b/src/elfs/elfloader.c @@ -92,7 +92,7 @@ int CalcLoadAddr(elfheader_t* head) head->memsz = 0; head->paddr = head->vaddr = ~(uintptr_t)0; head->align = 1; - for (int i=0; i<head->numPHEntries; ++i) + for (size_t i=0; i<head->numPHEntries; ++i) if(head->PHEntries[i].p_type == PT_LOAD) { if(head->paddr > (uintptr_t)head->PHEntries[i].p_paddr) head->paddr = (uintptr_t)head->PHEntries[i].p_paddr; @@ -107,7 +107,7 @@ int CalcLoadAddr(elfheader_t* head) head->stacksz = 1024*1024; //1M stack size default? head->stackalign = 16; // default align for stack - for (int i=0; i<head->numPHEntries; ++i) { + for (size_t i=0; i<head->numPHEntries; ++i) { if(head->PHEntries[i].p_type == PT_LOAD) { uintptr_t phend = head->PHEntries[i].p_vaddr - head->vaddr + head->PHEntries[i].p_memsz; if(phend > head->memsz) @@ -130,9 +130,9 @@ int CalcLoadAddr(elfheader_t* head) head->tlssize++; } } - printf_log(LOG_DEBUG, "Elf Addr(v/p)=%p/%p Memsize=0x%lx (align=0x%x)\n", (void*)head->vaddr, (void*)head->paddr, head->memsz, head->align); - printf_log(LOG_DEBUG, "Elf Stack Memsize=%lu (align=%u)\n", head->stacksz, head->stackalign); - printf_log(LOG_DEBUG, "Elf TLS Memsize=%u (align=%u)\n", head->tlssize, head->tlsalign); + printf_log(LOG_DEBUG, "Elf Addr(v/p)=%p/%p Memsize=0x%lx (align=0x%zx)\n", (void*)head->vaddr, (void*)head->paddr, head->memsz, head->align); + printf_log(LOG_DEBUG, "Elf Stack Memsize=%lu (align=%zu)\n", head->stacksz, head->stackalign); + printf_log(LOG_DEBUG, "Elf TLS Memsize=%lu (align=%zu)\n", head->tlssize, head->tlsalign); return 0; } @@ -156,7 +156,7 @@ int AllocElfMemory(box64context_t* context, elfheader_t* head, int mainbin) offs = head->vaddr; if(head->vaddr) { head->multiblock_n = 0; // count PHEntrie with LOAD - for (int i=0; i<head->numPHEntries; ++i) + for (size_t i=0; i<head->numPHEntries; ++i) if(head->PHEntries[i].p_type == PT_LOAD && head->PHEntries[i].p_flags) ++head->multiblock_n; head->multiblock_size = (uint64_t*)calloc(head->multiblock_n, sizeof(uint64_t)); @@ -165,11 +165,11 @@ int AllocElfMemory(box64context_t* context, elfheader_t* head, int mainbin) // and now, create all individual blocks head->memory = (char*)0xffffffffffffffff; int n = 0; - for (int i=0; i<head->numPHEntries; ++i) + for (size_t i=0; i<head->numPHEntries; ++i) if(head->PHEntries[i].p_type == PT_LOAD && head->PHEntries[i].p_flags) { Elf64_Phdr * e = &head->PHEntries[i]; uintptr_t bstart = e->p_vaddr; - uint32_t bsize = e->p_memsz; + uint64_t bsize = e->p_memsz; uintptr_t balign = e->p_align; if (balign) balign = balign-1; else balign = 1; if(balign<4095) balign = 4095; @@ -206,22 +206,22 @@ int AllocElfMemory(box64context_t* context, elfheader_t* head, int mainbin) , MAP_PRIVATE | MAP_ANONYMOUS /*| ((wine_preloaded)?MAP_FIXED:0)*/ , -1, 0); if(p==MAP_FAILED) { - printf_log(LOG_NONE, "Cannot create memory map (@%p 0x%lx/0x%x) for elf \"%s\"\n", (void*)head->multiblock_offs[i], head->multiblock_size[i], head->align, head->name); + printf_log(LOG_NONE, "Cannot create memory map (@%p 0x%lx/0x%zx) for elf \"%s\"\n", (void*)head->multiblock_offs[i], head->multiblock_size[i], head->align, head->name); return 1; } if(head->multiblock_offs[i] &&( p!=(void*)head->multiblock_offs[i])) { if((head->e_type!=ET_DYN)) { - printf_log(LOG_NONE, "Error, memory map (@%p 0x%lx/0x%x) for elf \"%s\" allocated @%p\n", (void*)head->multiblock_offs[i], head->multiblock_size[i], head->align, head->name, p); + printf_log(LOG_NONE, "Error, memory map (@%p 0x%lx/0x%zx) for elf \"%s\" allocated @%p\n", (void*)head->multiblock_offs[i], head->multiblock_size[i], head->align, head->name, p); return 1; } else { - printf_log(LOG_INFO, "Allocated memory is not at hinted %p but %p (size %p) \"%s\"\n", (void*)head->multiblock_offs[i], p, (void*)head->multiblock_size[i], head->name); + printf_log(LOG_INFO, "Allocated memory is not at hinted %p but %p (size %lx) \"%s\"\n", (void*)head->multiblock_offs[i], p, head->multiblock_size[i], head->name); // need to adjust vaddr! - for (int i=0; i<head->numPHEntries; ++i) - if(head->PHEntries[i].p_type == PT_LOAD) { - Elf64_Phdr * e = &head->PHEntries[i]; - if(e->p_vaddr>=head->multiblock_offs[i] && e->p_vaddr<(head->multiblock_offs[i]+head->multiblock_size[i])) { - e->p_vaddr = e->p_vaddr - head->multiblock_offs[i] + (uintptr_t)p; - if(!head->delta) head->delta = (intptr_t)p - (intptr_t)head->multiblock_offs[i]; + for (size_t j=0; j<head->numPHEntries; ++j) + if(head->PHEntries[j].p_type == PT_LOAD) { + Elf64_Phdr * e = &head->PHEntries[j]; + if(e->p_vaddr>=head->multiblock_offs[j] && e->p_vaddr<(head->multiblock_offs[j]+head->multiblock_size[j])) { + e->p_vaddr = e->p_vaddr - head->multiblock_offs[j] + (uintptr_t)p; + if(!head->delta) head->delta = (intptr_t)p - (intptr_t)head->multiblock_offs[j]; } } } @@ -239,11 +239,11 @@ int AllocElfMemory(box64context_t* context, elfheader_t* head, int mainbin) , MAP_PRIVATE | MAP_ANONYMOUS /*| (((offs&&wine_preloaded)?MAP_FIXED:0))*/ , -1, 0); if(p==MAP_FAILED) { - printf_log(LOG_NONE, "Cannot create memory map (@%p 0x%lx/0x%x) for elf \"%s\"\n", (void*)offs, head->memsz, head->align, head->name); + printf_log(LOG_NONE, "Cannot create memory map (@%p 0x%lx/0x%zx) for elf \"%s\"\n", (void*)offs, head->memsz, head->align, head->name); return 1; } if(offs && (p!=(void*)offs) && (head->e_type!=ET_DYN)) { - printf_log(LOG_NONE, "Error, memory map (@%p 0x%lx/0x%x) for elf \"%s\" allocated @%p\n", (void*)offs, head->memsz, head->align, head->name, p); + printf_log(LOG_NONE, "Error, memory map (@%p 0x%lx/0x%zx) for elf \"%s\" allocated @%p\n", (void*)offs, head->memsz, head->align, head->name, p); return 1; } setProtection((uintptr_t)p, head->memsz, PROT_READ | PROT_WRITE | PROT_EXEC); @@ -279,15 +279,15 @@ void FreeElfMemory(elfheader_t* head) int LoadElfMemory(FILE* f, box64context_t* context, elfheader_t* head) { - for (int i=0; i<head->numPHEntries; ++i) { + for (size_t i=0; i<head->numPHEntries; ++i) { if(head->PHEntries[i].p_type == PT_LOAD) { Elf64_Phdr * e = &head->PHEntries[i]; char* dest = (char*)e->p_paddr + head->delta; - printf_log(LOG_DEBUG, "Loading block #%i @%p (0x%lx/0x%lx)\n", i, dest, e->p_filesz, e->p_memsz); + printf_log(LOG_DEBUG, "Loading block #%zu @%p (0x%lx/0x%lx)\n", i, dest, e->p_filesz, e->p_memsz); fseeko64(f, e->p_offset, SEEK_SET); if(e->p_filesz) { if(fread(dest, e->p_filesz, 1, f)!=1) { - printf_log(LOG_NONE, "Fail to read PT_LOAD part #%d (size=%ld)\n", i, e->p_filesz); + printf_log(LOG_NONE, "Fail to read PT_LOAD part #%zu (size=%ld)\n", i, e->p_filesz); return 1; } } @@ -305,11 +305,11 @@ int LoadElfMemory(FILE* f, box64context_t* context, elfheader_t* head) if(head->PHEntries[i].p_type == PT_TLS) { Elf64_Phdr * e = &head->PHEntries[i]; char* dest = (char*)(context->tlsdata+context->tlssize+head->tlsbase); - printf_log(LOG_DEBUG, "Loading TLS block #%i @%p (0x%lx/0x%lx)\n", i, dest, e->p_filesz, e->p_memsz); + printf_log(LOG_DEBUG, "Loading TLS block #%zu @%p (0x%lx/0x%lx)\n", i, dest, e->p_filesz, e->p_memsz); if(e->p_filesz) { fseeko64(f, e->p_offset, SEEK_SET); if(fread(dest, e->p_filesz, 1, f)!=1) { - printf_log(LOG_NONE, "Fail to read PT_TLS part #%d (size=%ld)\n", i, e->p_filesz); + printf_log(LOG_NONE, "Fail to read PT_TLS part #%zu (size=%ld)\n", i, e->p_filesz); return 1; } } @@ -323,13 +323,15 @@ int LoadElfMemory(FILE* f, box64context_t* context, elfheader_t* head) int ReloadElfMemory(FILE* f, box64context_t* context, elfheader_t* head) { - for (int i=0; i<head->numPHEntries; ++i) { + (void)context; + + for (size_t i=0; i<head->numPHEntries; ++i) { if(head->PHEntries[i].p_type == PT_LOAD) { Elf64_Phdr * e = &head->PHEntries[i]; char* dest = (char*)e->p_paddr + head->delta; - printf_log(LOG_DEBUG, "Re-loading block #%i @%p (0x%lx/0x%lx)\n", i, dest, e->p_filesz, e->p_memsz); + printf_log(LOG_DEBUG, "Re-loading block #%zu @%p (0x%lx/0x%lx)\n", i, dest, e->p_filesz, e->p_memsz); int ret = fseeko64(f, e->p_offset, SEEK_SET); - if(ret==-1) {printf_log(LOG_NONE, "Fail to (re)seek PT_LOAD part #%d (offset=%ld, errno=%d/%s)\n", i, e->p_offset, errno, strerror(errno)); return 1;} + if(ret==-1) {printf_log(LOG_NONE, "Fail to (re)seek PT_LOAD part #%zu (offset=%ld, errno=%d/%s)\n", i, e->p_offset, errno, strerror(errno)); return 1;} if(e->p_filesz) { ssize_t r = -1; #ifdef DYNAREC @@ -337,7 +339,7 @@ int ReloadElfMemory(FILE* f, box64context_t* context, elfheader_t* head) unprotectDB((uintptr_t)dest, e->p_memsz); #endif if((r=fread(dest, e->p_filesz, 1, f))!=1) { - printf_log(LOG_NONE, "Fail to (re)read PT_LOAD part #%d (dest=%p, size=%ld, return=%ld, feof=%d/ferror=%d/%s)\n", i, dest, e->p_filesz, r, feof(f), ferror(f), strerror(ferror(f))); + printf_log(LOG_NONE, "Fail to (re)read PT_LOAD part #%zu (dest=%p, size=%ld, return=%ld, feof=%d/ferror=%d/%s)\n", i, dest, e->p_filesz, r, feof(f), ferror(f), strerror(ferror(f))); return 1; } } @@ -458,12 +460,10 @@ int RelocateElfREL(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int cn } printf_log(LOG_DUMP, "Apply %s R_X86_64_COPY @%p with sym=%s, @%p size=%ld (", (bind==STB_LOCAL)?"Local":"Global", p, symname, (void*)offs, sym->st_size); memmove(p, (void*)offs, sym->st_size); - if(LOG_DUMP<=box64_log) { - uint32_t*k = (uint32_t*)p; - for (int i=0; i<((sym->st_size>128)?128:sym->st_size); i+=4, ++k) - printf_log(LOG_DUMP, "%s0x%08X", i?" ":"", *k); - printf_log(LOG_DUMP, "%s)\n", (sym->st_size>128)?" ...":""); - } + uint32_t *k = (uint32_t*)p; + for (unsigned j=0; j<((sym->st_size>128u)?128u:sym->st_size); j+=4, ++k) + printf_log(LOG_DUMP, "%s0x%08X", j?" ":"", *k); + printf_log(LOG_DUMP, "%s)\n", (sym->st_size>128u)?" ...":""); } else { printf_log(LOG_NONE, "Error: Symbol %s not found, cannot apply R_X86_64_COPY @%p (%p) in %s\n", symname, p, *(void**)p, head->name); } @@ -475,7 +475,7 @@ int RelocateElfREL(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int cn case R_X86_64_64: if (!offs) { printf_log(LOG_NONE, "Error: Symbol %s not found, cannot apply R_X86_64_64 @%p (%p) in %s\n", symname, p, *(void**)p, head->name); -// return -1; + // return -1; } else { printf_log(LOG_DUMP, "Apply %s R_X86_64_64 @%p with sym=%s (%p -> %p)\n", (bind==STB_LOCAL)?"Local":"Global", p, symname, *(void**)p, (void*)(offs+*(uint64_t*)p)); *p += offs; @@ -496,7 +496,7 @@ int RelocateElfREL(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int cn } else { printf_log(LOG_NONE, "Error: Symbol %s not found, cannot apply R_X86_64_JUMP_SLOT @%p (%p) in %s\n", symname, p, *(void**)p, head->name); } - // return -1; + // return -1; } else { if(p) { printf_log(LOG_DUMP, "Apply %s R_X86_64_JUMP_SLOT @%p with sym=%s (%p -> %p)\n", (bind==STB_LOCAL)?"Local":"Global", p, symname, *(void**)p, (void*)offs); @@ -512,7 +512,7 @@ int RelocateElfREL(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int cn break; #endif default: - printf_log(LOG_INFO, "Warning, don't know of to handle rel #%d %s (%p)\n", i, DumpRelType(ELF64_R_TYPE(rel[i].r_info)), p); + printf_log(LOG_INFO, "Warning, don't know how to handle rel #%d %s (%p)\n", i, DumpRelType(ELF64_R_TYPE(rel[i].r_info)), p); } } return 0; @@ -627,7 +627,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int c } else { printf_log(LOG_NONE, "Error: Symbol %s not found, cannot apply R_X86_64_JUMP_SLOT @%p (%p) in %s\n", symname, p, *(void**)p, head->name); } - // return -1; + // return -1; } else { if(p) { printf_log(LOG_DUMP, "Apply %s R_X86_64_JUMP_SLOT @%p with sym=%s (%p -> %p)\n", @@ -646,7 +646,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int c case R_X86_64_64: if (!offs) { printf_log(LOG_NONE, "Error: Symbol %s not found, cannot apply R_X86_64_64 @%p (%p) in %s\n", symname, p, *(void**)p, head->name); -// return -1; + // return -1; } else { printf_log(LOG_DUMP, "Apply %s R_X86_64_64 @%p with sym=%s addend=0x%lx (%p -> %p)\n", (bind==STB_LOCAL)?"Local":"Global", p, symname, rela[i].r_addend, *(void**)p, (void*)(offs+rela[i].r_addend/*+*(uint64_t*)p*/)); @@ -701,7 +701,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, elfheader_t* head, int c } else { printf_log(LOG_NONE, "Error: Symbol %s not found, cannot apply R_X86_64_DTPOFF64 @%p (%p) in %s\n", symname, p, *(void**)p, head->name); } -// return -1; + // return -1; } else { if(h_tls) offs = sym->st_value; @@ -755,7 +755,7 @@ int RelocateElfPlt(lib_t *maplib, lib_t *local_maplib, elfheader_t* head) if(RelocateElfRELA(maplib, local_maplib, head, cnt, (Elf64_Rela *)(head->jmprel + head->delta))) return -1; } - if(pltResolver==~0) { + if(pltResolver==~0u) { pltResolver = AddBridge(my_context->system, vFE, PltResolver, 0, "PltResolver"); } if(head->pltgot) { @@ -772,7 +772,7 @@ int RelocateElfPlt(lib_t *maplib, lib_t *local_maplib, elfheader_t* head) return 0; } -void CalcStack(elfheader_t* elf, uint32_t* stacksz, int* stackalign) +void CalcStack(elfheader_t* elf, uint64_t* stacksz, size_t* stackalign) { if(*stacksz < elf->stacksz) *stacksz = elf->stacksz; @@ -783,7 +783,7 @@ void CalcStack(elfheader_t* elf, uint32_t* stacksz, int* stackalign) Elf64_Sym* GetFunction(elfheader_t* h, const char* name) { // TODO: create a hash on named to avoid this loop - for (int i=0; i<h->numSymTab; ++i) { + for (size_t i=0; i<h->numSymTab; ++i) { int type = ELF64_ST_TYPE(h->SymTab[i].st_info); if(type==STT_FUNC) { const char * symname = h->StrTab+h->SymTab[i].st_name; @@ -797,9 +797,9 @@ Elf64_Sym* GetFunction(elfheader_t* h, const char* name) Elf64_Sym* GetElfObject(elfheader_t* h, const char* name) { - for (int i=0; i<h->numSymTab; ++i) { + for (size_t i=0; i<h->numSymTab; ++i) { int type = ELF64_ST_TYPE(h->SymTab[i].st_info); - if(/*h->SymTab[i].st_info == 16*/type==STT_OBJECT) { + if(type==STT_OBJECT) { const char * symname = h->StrTab+h->SymTab[i].st_name; if(strcmp(symname, name)==0) { return h->SymTab+i; @@ -819,6 +819,7 @@ uintptr_t GetFunctionAddress(elfheader_t* h, const char* name) uintptr_t GetEntryPoint(lib_t* maplib, elfheader_t* h) { + (void)maplib; uintptr_t ep = h->entrypoint + h->delta; printf_log(LOG_DEBUG, "Entry Point is %p\n", (void*)ep); if(box64_log>=LOG_DUMP) { @@ -829,22 +830,6 @@ uintptr_t GetEntryPoint(lib_t* maplib, elfheader_t* h) sz = lastbyte - ep; DumpBinary((char*)ep, sz); } - /* - // but instead of regular entrypoint, lets grab "main", it will be easier to manage I guess - uintptr_t m = FindSymbol(maplib, "main"); - if(m) { - ep = m; - printf_log(LOG_DEBUG, "Using \"main\" as Entry Point @%p\n", ep); - if(box64_log>=LOG_DUMP) { - printf_log(LOG_DUMP, "(short) Dump of Entry point\n"); - int sz = 64; - uintptr_t lastbyte = GetLastByte(h); - if (ep + sz > lastbyte) - sz = lastbyte - ep; - DumpBinary((char*)ep, sz); - } - } - */ return ep; } @@ -855,8 +840,8 @@ uintptr_t GetLastByte(elfheader_t* h) void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* weaksymbols, kh_mapsymbols_t* localsymbols, elfheader_t* h) { - printf_log(LOG_DUMP, "Will look for Symbol to add in SymTable(%d)\n", h->numSymTab); - for (int i=0; i<h->numSymTab; ++i) { + printf_log(LOG_DUMP, "Will look for Symbol to add in SymTable(%zu)\n", h->numSymTab); + for (size_t i=0; i<h->numSymTab; ++i) { const char * symname = h->StrTab+h->SymTab[i].st_name; int bind = ELF64_ST_BIND(h->SymTab[i].st_info); int type = ELF64_ST_TYPE(h->SymTab[i].st_info); @@ -866,8 +851,8 @@ void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* wea if((bind==10/*STB_GNU_UNIQUE*/ || (bind==STB_GLOBAL && type==STT_FUNC)) && FindGlobalSymbol(maplib, symname)) continue; uintptr_t offs = (type==STT_TLS)?h->SymTab[i].st_value:(h->SymTab[i].st_value + h->delta); - uint32_t sz = h->SymTab[i].st_size; - printf_log(LOG_DUMP, "Adding Symbol(bind=%s) \"%s\" with offset=%p sz=%d\n", (bind==STB_LOCAL)?"LOCAL":((bind==STB_WEAK)?"WEAK":"GLOBAL"), symname, (void*)offs, sz); + uint64_t sz = h->SymTab[i].st_size; + printf_log(LOG_DUMP, "Adding Symbol(bind=%s) \"%s\" with offset=%p sz=%zu\n", (bind==STB_LOCAL)?"LOCAL":((bind==STB_WEAK)?"WEAK":"GLOBAL"), symname, (void*)offs, sz); if(bind==STB_LOCAL) AddSymbol(localsymbols, symname, offs, sz); else // add in local and global map @@ -879,8 +864,8 @@ void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* wea } } - printf_log(LOG_DUMP, "Will look for Symbol to add in DynSym (%d)\n", h->numDynSym); - for (int i=0; i<h->numDynSym; ++i) { + printf_log(LOG_DUMP, "Will look for Symbol to add in DynSym (%zu)\n", h->numDynSym); + for (size_t i=0; i<h->numDynSym; ++i) { const char * symname = h->DynStr+h->DynSym[i].st_name; int bind = ELF64_ST_BIND(h->DynSym[i].st_info); int type = ELF64_ST_TYPE(h->DynSym[i].st_info); @@ -891,8 +876,8 @@ void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* wea if((bind==10/*STB_GNU_UNIQUE*/ || (bind==STB_GLOBAL && type==STT_FUNC)) && FindGlobalSymbol(maplib, symname)) continue; uintptr_t offs = (type==STT_TLS)?h->DynSym[i].st_value:(h->DynSym[i].st_value + h->delta); - uint32_t sz = h->DynSym[i].st_size; - printf_log(LOG_DUMP, "Adding Symbol(bind=%s) \"%s\" with offset=%p sz=%d\n", (bind==STB_LOCAL)?"LOCAL":((bind==STB_WEAK)?"WEAK":"GLOBAL"), symname, (void*)offs, sz); + uint64_t sz = h->DynSym[i].st_size; + printf_log(LOG_DUMP, "Adding Symbol(bind=%s) \"%s\" with offset=%p sz=%zu\n", (bind==STB_LOCAL)?"LOCAL":((bind==STB_WEAK)?"WEAK":"GLOBAL"), symname, (void*)offs, sz); if(bind==STB_LOCAL) AddSymbol(localsymbols, symname, offs, sz); else // add in local and global map @@ -924,7 +909,7 @@ int LoadNeededLibs(elfheader_t* h, lib_t *maplib, needed_libs_t* neededlibs, lib { DumpDynamicRPath(h); // update RPATH first - for (int i=0; i<h->numDynamic; ++i) + for (size_t i=0; i<h->numDynamic; ++i) if(h->Dynamic[i].d_tag==DT_RPATH || h->Dynamic[i].d_tag==DT_RUNPATH) { char *rpathref = h->DynStrTab+h->delta+h->Dynamic[i].d_un.d_val; char* rpath = rpathref; @@ -970,7 +955,7 @@ int LoadNeededLibs(elfheader_t* h, lib_t *maplib, needed_libs_t* neededlibs, lib h->neededlibs = neededlibs; DumpDynamicNeeded(h); - for (int i=0; i<h->numDynamic; ++i) + for (size_t i=0; i<h->numDynamic; ++i) if(h->Dynamic[i].d_tag==DT_NEEDED) { char *needed = h->DynStrTab+h->delta+h->Dynamic[i].d_un.d_val; // TODO: Add LD_LIBRARY_PATH and RPATH handling @@ -987,7 +972,7 @@ int ElfCheckIfUseTCMallocMinimal(elfheader_t* h) { if(!h) return 0; - for (int i=0; i<h->numDynamic; ++i) + for (size_t i=0; i<h->numDynamic; ++i) if(h->Dynamic[i].d_tag==DT_NEEDED) { char *needed = h->DynStrTab+h->delta+h->Dynamic[i].d_un.d_val; if(!strcmp(needed, "libtcmalloc_minimal.so.4")) // tcmalloc needs to be the 1st lib loaded @@ -1020,9 +1005,9 @@ void RunElfInit(elfheader_t* h, x64emu_t *emu) printf_log(LOG_DEBUG, "Done Init for %s\n", ElfName(h)); // and check init array now Elf64_Addr *addr = (Elf64_Addr*)(h->initarray + h->delta); - for (int i=0; i<h->initarray_sz; ++i) { + for (size_t i=0; i<h->initarray_sz; ++i) { if(addr[i]) { - printf_log(LOG_DEBUG, "Calling Init[%d] for %s @%p\n", i, ElfName(h), (void*)addr[i]); + printf_log(LOG_DEBUG, "Calling Init[%zu] for %s @%p\n", i, ElfName(h), (void*)addr[i]); RunFunctionWithEmu(emu, 0, (uintptr_t)addr[i], 3, context->argc, context->argv, context->envv); } } @@ -1116,18 +1101,18 @@ elfheader_t* FindElfAddress(box64context_t *context, uintptr_t addr) return NULL; } -const char* FindNearestSymbolName(elfheader_t* h, void* p, uintptr_t* start, uint32_t* sz) +const char* FindNearestSymbolName(elfheader_t* h, void* p, uintptr_t* start, uint64_t* sz) { uintptr_t addr = (uintptr_t)p; uint32_t distance = 0x7fffffff; const char* ret = NULL; uintptr_t s = 0; - uint32_t size = 0; + uint64_t size = 0; if(!h || h->fini_done) return ret; - for (int i=0; i<h->numSymTab && distance!=0; ++i) { + for (size_t i=0; i<h->numSymTab && distance!=0; ++i) { const char * symname = h->StrTab+h->SymTab[i].st_name; uintptr_t offs = h->SymTab[i].st_value + h->delta; @@ -1140,7 +1125,7 @@ const char* FindNearestSymbolName(elfheader_t* h, void* p, uintptr_t* start, uin } } } - for (int i=0; i<h->numDynSym && distance!=0; ++i) { + for (size_t i=0; i<h->numDynSym && distance!=0; ++i) { const char * symname = h->DynStr+h->DynSym[i].st_name; uintptr_t offs = h->DynSym[i].st_value + h->delta; @@ -1284,7 +1269,7 @@ EXPORT int my_dl_iterate_phdr(x64emu_t *emu, void* F, void *data) { void ResetSpecialCaseMainElf(elfheader_t* h) { Elf64_Sym *sym = NULL; - for (int i=0; i<h->numDynSym; ++i) { + for (size_t i=0; i<h->numDynSym; ++i) { if(h->DynSym[i].st_info == 17) { sym = h->DynSym+i; const char * symname = h->DynStr+sym->st_name; @@ -1324,7 +1309,7 @@ void CreateMemorymapFile(box64context_t* context, int fd) st.st_ino = 0; } - for (int i=0; i<h->numPHEntries; ++i) { + for (size_t i=0; i<h->numPHEntries; ++i) { if (h->PHEntries[i].p_memsz == 0) continue; sprintf(buff, "%016lx-%016lx %c%c%c%c %016lx %02x:%02x %ld %s\n", (uintptr_t)h->PHEntries[i].p_vaddr + h->delta, diff --git a/src/elfs/elfloader_private.h b/src/elfs/elfloader_private.h index a02fcca3..fa488845 100755 --- a/src/elfs/elfloader_private.h +++ b/src/elfs/elfloader_private.h @@ -13,23 +13,23 @@ typedef struct needed_libs_s needed_libs_t; struct elfheader_s { char* name; char* path; // Resolved path to file - int numPHEntries; + size_t numPHEntries; Elf64_Phdr *PHEntries; - int numSHEntries; + size_t numSHEntries; Elf64_Shdr *SHEntries; - int SHIdx; - int numSST; + size_t SHIdx; + size_t numSST; char* SHStrTab; char* StrTab; Elf64_Sym* SymTab; - int numSymTab; + size_t numSymTab; char* DynStr; Elf64_Sym* DynSym; - int numDynSym; + size_t numDynSym; Elf64_Dyn* Dynamic; - int numDynamic; + size_t numDynamic; char* DynStrTab; - int szDynStrTab; + size_t szDynStrTab; int e_type; intptr_t delta; // should be 0 @@ -37,19 +37,19 @@ struct elfheader_s { uintptr_t entrypoint; uintptr_t initentry; uintptr_t initarray; - int initarray_sz; + size_t initarray_sz; uintptr_t finientry; uintptr_t finiarray; - int finiarray_sz; + size_t finiarray_sz; uintptr_t rel; - int relsz; + size_t relsz; int relent; uintptr_t rela; - int relasz; + size_t relasz; int relaent; uintptr_t jmprel; - int pltsz; + size_t pltsz; int pltent; uint64_t pltrel; uintptr_t gotplt; @@ -60,18 +60,18 @@ struct elfheader_s { uintptr_t plt; uintptr_t plt_end; uintptr_t text; - int textsz; + size_t textsz; uintptr_t paddr; uintptr_t vaddr; - int align; + size_t align; uint64_t memsz; uint64_t stacksz; - int stackalign; - uint32_t tlssize; - int tlsalign; + size_t stackalign; + uint64_t tlssize; + size_t tlsalign; - int32_t tlsbase; // the base of the tlsdata in the global tlsdata (always negative) + int64_t tlsbase; // the base of the tlsdata in the global tlsdata (always negative) int init_done; int fini_done; @@ -133,4 +133,4 @@ struct elfheader_s { elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec); -#endif //__ELFLOADER_PRIVATE_H_ \ No newline at end of file +#endif //__ELFLOADER_PRIVATE_H_ diff --git a/src/elfs/elfparser.c b/src/elfs/elfparser.c index dcca49b3..7d5600ea 100755 --- a/src/elfs/elfparser.c +++ b/src/elfs/elfparser.c @@ -43,7 +43,7 @@ int FindSection(Elf64_Shdr *s, int n, char* SHStrTab, const char* name) return 0; } -void LoadNamedSection(FILE *f, Elf64_Shdr *s, int size, char* SHStrTab, const char* name, const char* clearname, uint32_t type, void** what, int* num) +void LoadNamedSection(FILE *f, Elf64_Shdr *s, int size, char* SHStrTab, const char* name, const char* clearname, uint32_t type, void** what, size_t* num) { int n = FindSection(s, size, SHStrTab, name); printf_log(LOG_DEBUG, "Loading %s (idx = %d)\n", clearname, n); @@ -141,7 +141,7 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) h->numSHEntries = section.sh_size; } // now read all section headers - printf_log(LOG_DEBUG, "Read %d Section header\n", h->numSHEntries); + printf_log(LOG_DEBUG, "Read %zu Section header\n", h->numSHEntries); h->SHEntries = (Elf64_Shdr*)calloc(h->numSHEntries, sizeof(Elf64_Shdr)); fseeko64(f, header.e_shoff ,SEEK_SET); if(fread(h->SHEntries, sizeof(Elf64_Shdr), h->numSHEntries, f)!=h->numSHEntries) { @@ -157,7 +157,7 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) } } - printf_log(LOG_DEBUG, "Read %d Program header\n", h->numPHEntries); + printf_log(LOG_DEBUG, "Read %zu Program header\n", h->numPHEntries); h->PHEntries = (Elf64_Phdr*)calloc(h->numPHEntries, sizeof(Elf64_Phdr)); fseeko64(f, header.e_phoff ,SEEK_SET); if(fread(h->PHEntries, sizeof(Elf64_Phdr), h->numPHEntries, f)!=h->numPHEntries) { @@ -172,12 +172,12 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) h->SHIdx = h->SHEntries[0].sh_link; } if(h->SHIdx > h->numSHEntries) { - printf_log(LOG_INFO, "Incoherent Section String Table Index : %d / %d\n", h->SHIdx, h->numSHEntries); + printf_log(LOG_INFO, "Incoherent Section String Table Index : %zu / %zu\n", h->SHIdx, h->numSHEntries); FreeElfHeader(&h); return NULL; } // load Section table - printf_log(LOG_DEBUG, "Loading Sections Table String (idx = %d)\n", h->SHIdx); + printf_log(LOG_DEBUG, "Loading Sections Table String (idx = %zu)\n", h->SHIdx); if(LoadSH(f, h->SHEntries+h->SHIdx, (void*)&h->SHStrTab, ".shstrtab", SHT_STRTAB)) { FreeElfHeader(&h); return NULL; @@ -193,7 +193,7 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) // grab DT_REL & DT_RELA stuffs // also grab the DT_STRTAB string table { - for (int i=0; i<h->numDynamic; ++i) { + for (size_t i=0; i<h->numDynamic; ++i) { if(h->Dynamic[i].d_tag == DT_REL) h->rel = h->Dynamic[i].d_un.d_ptr; else if(h->Dynamic[i].d_tag == DT_RELSZ) @@ -221,19 +221,19 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) } if(h->rel) { if(h->relent != sizeof(Elf64_Rel)) { - printf_log(LOG_NONE, "Rel Table Entry size invalid (0x%x should be 0x%lx)\n", h->relent, sizeof(Elf64_Rel)); + printf_log(LOG_NONE, "Rel Table Entry size invalid (0x%x should be 0x%zx)\n", h->relent, sizeof(Elf64_Rel)); FreeElfHeader(&h); return NULL; } - printf_log(LOG_DEBUG, "Rel Table @%p (0x%x/0x%x)\n", (void*)h->rel, h->relsz, h->relent); + printf_log(LOG_DEBUG, "Rel Table @%p (0x%zx/0x%x)\n", (void*)h->rel, h->relsz, h->relent); } if(h->rela) { if(h->relaent != sizeof(Elf64_Rela)) { - printf_log(LOG_NONE, "RelA Table Entry size invalid (0x%x should be 0x%lx)\n", h->relaent, sizeof(Elf64_Rela)); + printf_log(LOG_NONE, "RelA Table Entry size invalid (0x%x should be 0x%zx)\n", h->relaent, sizeof(Elf64_Rela)); FreeElfHeader(&h); return NULL; } - printf_log(LOG_DEBUG, "RelA Table @%p (0x%x/0x%x)\n", (void*)h->rela, h->relasz, h->relaent); + printf_log(LOG_DEBUG, "RelA Table @%p (0x%zx/0x%x)\n", (void*)h->rela, h->relasz, h->relaent); } if(h->jmprel) { if(h->pltrel == DT_REL) { @@ -241,16 +241,16 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) } else if(h->pltrel == DT_RELA) { h->pltent = sizeof(Elf64_Rela); } else { - printf_log(LOG_NONE, "PLT Table type is unknown (size = 0x%x, type=%ld)\n", h->pltsz, h->pltrel); + printf_log(LOG_NONE, "PLT Table type is unknown (size = 0x%zx, type=%ld)\n", h->pltsz, h->pltrel); FreeElfHeader(&h); return NULL; } if((h->pltsz / h->pltent)*h->pltent != h->pltsz) { - printf_log(LOG_NONE, "PLT Table Entry size invalid (0x%x, ent=0x%x, type=%ld)\n", h->pltsz, h->pltent, h->pltrel); + printf_log(LOG_NONE, "PLT Table Entry size invalid (0x%zx, ent=0x%x, type=%ld)\n", h->pltsz, h->pltent, h->pltrel); FreeElfHeader(&h); return NULL; } - printf_log(LOG_DEBUG, "PLT Table @%p (type=%ld 0x%x/0x%0x)\n", (void*)h->jmprel, h->pltrel, h->pltsz, h->pltent); + printf_log(LOG_DEBUG, "PLT Table @%p (type=%ld 0x%zx/0x%0x)\n", (void*)h->jmprel, h->pltrel, h->pltsz, h->pltent); } if(h->DynStrTab && h->szDynStrTab) { //DumpDynamicNeeded(h); cannot dump now, it's not loaded yet @@ -286,7 +286,7 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) if(ii) { h->initarray_sz = h->SHEntries[ii].sh_size / sizeof(Elf64_Addr); h->initarray = (uintptr_t)(h->SHEntries[ii].sh_addr); - printf_log(LOG_DEBUG, "The .init_array is at address %p, and have %d elements\n", (void*)h->initarray, h->initarray_sz); + printf_log(LOG_DEBUG, "The .init_array is at address %p, and have %zu elements\n", (void*)h->initarray, h->initarray_sz); } // look for .fini entry point ii = FindSection(h->SHEntries, h->numSHEntries, h->SHStrTab, ".fini"); @@ -299,14 +299,14 @@ elfheader_t* ParseElfHeader(FILE* f, const char* name, int exec) if(ii) { h->finiarray_sz = h->SHEntries[ii].sh_size / sizeof(Elf64_Addr); h->finiarray = (uintptr_t)(h->SHEntries[ii].sh_addr); - printf_log(LOG_DEBUG, "The .fini_array is at address %p, and have %d elements\n", (void*)h->finiarray, h->finiarray_sz); + printf_log(LOG_DEBUG, "The .fini_array is at address %p, and have %zu elements\n", (void*)h->finiarray, h->finiarray_sz); } // grab .text for main code ii = FindSection(h->SHEntries, h->numSHEntries, h->SHStrTab, ".text"); if(ii) { h->text = (uintptr_t)(h->SHEntries[ii].sh_addr); h->textsz = h->SHEntries[ii].sh_size; - printf_log(LOG_DEBUG, "The .text is at address %p, and is %d big\n", (void*)h->text, h->textsz); + printf_log(LOG_DEBUG, "The .text is at address %p, and is %zu big\n", (void*)h->text, h->textsz); } LoadNamedSection(f, h->SHEntries, h->numSHEntries, h->SHStrTab, ".dynstr", "DynSym Strings", SHT_STRTAB, (void**)&h->DynStr, NULL); diff --git a/src/emu/x64emu.c b/src/emu/x64emu.c index c1f3946c..75ce18fd 100755 --- a/src/emu/x64emu.c +++ b/src/emu/x64emu.c @@ -109,6 +109,7 @@ EXPORTDYN void SetupX64Emu(x64emu_t *emu) { printf_log(LOG_DEBUG, "Setup X86_64 Emu\n"); + (void)emu; // Not doing much here... } #ifdef HAVE_TRACE @@ -130,6 +131,8 @@ void SetTraceEmu(uintptr_t start, uintptr_t end) void AddCleanup(x64emu_t *emu, void *p) { + (void)emu; + if(my_context->clean_sz == my_context->clean_cap) { my_context->clean_cap += 4; my_context->cleanups = (cleanup_t*)realloc(my_context->cleanups, sizeof(cleanup_t)*my_context->clean_cap); @@ -141,6 +144,8 @@ void AddCleanup(x64emu_t *emu, void *p) void AddCleanup1Arg(x64emu_t *emu, void *p, void* a) { + (void)emu; + if(my_context->clean_sz == my_context->clean_cap) { my_context->clean_cap += 4; my_context->cleanups = (cleanup_t*)realloc(my_context->cleanups, sizeof(cleanup_t)*my_context->clean_cap); @@ -473,7 +478,9 @@ void EmuCall(x64emu_t* emu, uintptr_t addr) uint64_t ReadTSC(x64emu_t* emu) { - //TODO: implement hardware counter read? + (void)emu; + + //TODO: implement hardware counter read? (only available in kernel space?) // Read the TimeStamp Counter as 64bits. // this is supposed to be the number of instructions executed since last reset // fall back to gettime... diff --git a/src/emu/x64int3.c b/src/emu/x64int3.c index 21d7d10b..4c9ceb3d 100755 --- a/src/emu/x64int3.c +++ b/src/emu/x64int3.c @@ -161,7 +161,7 @@ void x64Int3(x64emu_t* emu) pthread_mutex_lock(&emu->context->mutex_trace); if(post) switch(post) { - case 1: snprintf(buff2, 63, " [%d sec %d nsec]", pu32?pu32[0]:-1, pu32?pu32[1]:-1); + case 1: snprintf(buff2, 63, " [%d sec %d nsec]", pu32?pu32[0]:~0u, pu32?pu32[1]:~0u); break; case 2: snprintf(buff2, 63, "(%s)", R_RAX?((char*)R_RAX):"nil"); break; @@ -175,8 +175,8 @@ void x64Int3(x64emu_t* emu) snprintf(buff2, 63, " size=%dx%d, pitch=%d, pixels=%p", p[2], p[3], p[4], p+5); else snprintf(buff2, 63, "NULL Surface"); - } - break; + } + break; } if(perr==1 && ((int)R_EAX)<0) snprintf(buff3, 63, " (errno=%d:\"%s\")", errno, strerror(errno)); @@ -199,4 +199,4 @@ void x64Int3(x64emu_t* emu) int GetTID() { return syscall(SYS_gettid); -} \ No newline at end of file +} diff --git a/src/emu/x64primop.h b/src/emu/x64primop.h index e42c7062..ae2f9a02 100755 --- a/src/emu/x64primop.h +++ b/src/emu/x64primop.h @@ -235,21 +235,25 @@ static inline uint64_t neg64(x64emu_t *emu, uint64_t s) static inline uint8_t not8(x64emu_t *emu, uint8_t s) { + (void)emu; // No flags affected return ~s; } static inline uint16_t not16(x64emu_t *emu, uint16_t s) { + (void)emu; // No flags affected return ~s; } static inline uint32_t not32(x64emu_t *emu, uint32_t s) { + (void)emu; // No flags affected return ~s; } static inline uint64_t not64(x64emu_t *emu, uint64_t s) { + (void)emu; // No flags affected return ~s; } diff --git a/src/emu/x64run64.c b/src/emu/x64run64.c index 3e8bdbff..ae4dbe63 100644 --- a/src/emu/x64run64.c +++ b/src/emu/x64run64.c @@ -26,9 +26,9 @@ int Run64(x64emu_t *emu, rex_t rex) { uint8_t opcode; uint8_t nextop; - uint8_t tmp8u; - int16_t tmp16s; - uint16_t tmp16u; + uint8_t tmp8u; (void)tmp8u; + int16_t tmp16s; (void)tmp16s; + uint16_t tmp16u; (void)tmp16u; int32_t tmp32s; uint32_t tmp32u; uint64_t tmp64u; @@ -318,4 +318,4 @@ int Run64(x64emu_t *emu, rex_t rex) return 1; } return 0; -} \ No newline at end of file +} diff --git a/src/emu/x64run6766.c b/src/emu/x64run6766.c index 256a2671..2702012c 100644 --- a/src/emu/x64run6766.c +++ b/src/emu/x64run6766.c @@ -27,16 +27,18 @@ int Run6766(x64emu_t *emu, rex_t rex, int rep) { + // Hmmmm.... + (void)rep; uint8_t opcode; - uint8_t nextop; - int8_t tmp8s; - uint8_t tmp8u, tmp8u2; - int16_t tmp16s; - uint16_t tmp16u, tmp16u2; - int32_t tmp32s; - int64_t tmp64s; - uint64_t tmp64u, tmp64u2, tmp64u3; - reg64_t *oped, *opgd; + uint8_t nextop; (void)nextop; + int8_t tmp8s; (void)tmp8s; + uint8_t tmp8u, tmp8u2; (void)tmp8u; (void)tmp8u2; + int16_t tmp16s; (void)tmp16s; + uint16_t tmp16u, tmp16u2; (void)tmp16u; (void)tmp16u2; + int32_t tmp32s; (void)tmp32s; + int64_t tmp64s; (void)tmp64s; + uint64_t tmp64u, tmp64u2, tmp64u3; (void)tmp64u; (void)tmp64u2; (void)tmp64u3; + reg64_t *oped, *opgd; (void)oped; (void)opgd; opcode = F8; @@ -47,7 +49,7 @@ int Run6766(x64emu_t *emu, rex_t rex, int rep) rep = opcode-0xF1; opcode = F8; } - // REX prefix before the F0 are ignored + // REX prefix before the 66 are ignored rex.rex = 0; while(opcode>=0x40 && opcode<=0x4f) { rex.rex = opcode; @@ -56,11 +58,11 @@ int Run6766(x64emu_t *emu, rex_t rex, int rep) switch(opcode) { - case 0x0F: /* more opcdes */ + case 0x0F: /* more opcodes */ return Run67660F(emu, rex); default: return 1; } return 0; -} \ No newline at end of file +} diff --git a/src/emu/x64run67660f.c b/src/emu/x64run67660f.c index e5a9d1f8..6be0b044 100644 --- a/src/emu/x64run67660f.c +++ b/src/emu/x64run67660f.c @@ -26,22 +26,22 @@ int Run67660F(x64emu_t *emu, rex_t rex) { uint8_t opcode; uint8_t nextop; - uint8_t tmp8u; - int8_t tmp8s; - int16_t tmp16s; - uint16_t tmp16u; - int32_t tmp32s; - uint32_t tmp32u; - uint64_t tmp64u; - reg64_t *oped, *opgd; - sse_regs_t *opex, *opgx, eax1, *opex2; - mmx87_regs_t *opem, *opgm; + int8_t tmp8s; (void)tmp8s; + uint8_t tmp8u; (void)tmp8u; + int16_t tmp16s; (void)tmp16s; + uint16_t tmp16u; (void)tmp16u; + int32_t tmp32s; (void)tmp32s; + uint32_t tmp32u; (void)tmp32u; + int64_t tmp64s; (void)tmp64s; + uint64_t tmp64u; (void)tmp64u; + reg64_t *oped, *opgd; (void)oped; (void)opgd; + sse_regs_t *opex, *opgx; opcode = F8; switch(opcode) { - case 0x6F: /* MOVDQA Gx,Ex */ + case 0x6F: /* MOVDQA Gx,Ex */ nextop = F8; GETEX32(0); GETGX; @@ -49,7 +49,7 @@ int Run67660F(x64emu_t *emu, rex_t rex) GX->q[1] = EX->q[1]; break; - case 0x76: /* PCMPEQD Gx,Ex */ + case 0x76: /* PCMPEQD Gx,Ex */ nextop = F8; GETEX32(0); GETGX; @@ -61,4 +61,4 @@ int Run67660F(x64emu_t *emu, rex_t rex) return 1; } return 0; -} \ No newline at end of file +} diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index c6a7ac88..4eeddd06 100755 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -30,6 +30,8 @@ int32_t EXPORT my___libc_start_main(x64emu_t* emu, int *(main) (int, char * *, char * *), int argc, char * * ubp_av, void (*init) (void), void (*fini) (void), void (*rtld_fini) (void), void (* stack_end)) { + (void)argc; (void)ubp_av; (void)fini; (void)rtld_fini; (void)stack_end; + // let's cheat and set all args... if(init) { PushExit(emu); @@ -944,7 +946,7 @@ uintptr_t GetSegmentBaseEmu(x64emu_t* emu, int seg) const char* getAddrFunctionName(uintptr_t addr) { static char ret[1000]; - uint32_t sz = 0; + uint64_t sz = 0; uintptr_t start = 0; const char* symbname = FindNearestSymbolName(FindElfAddress(my_context, addr), (void*)addr, &start, &sz); if(symbname && addr>=start && (addr<(start+sz) || !sz)) { @@ -959,7 +961,7 @@ const char* getAddrFunctionName(uintptr_t addr) void printFunctionAddr(uintptr_t nextaddr, const char* text) { - uint32_t sz = 0; + uint64_t sz = 0; uintptr_t start = 0; const char* symbname = FindNearestSymbolName(FindElfAddress(my_context, nextaddr), (void*)nextaddr, &start, &sz); if(symbname && nextaddr>=start && (nextaddr<(start+sz) || !sz)) { @@ -991,6 +993,7 @@ void PrintTrace(x64emu_t* emu, uintptr_t ip, int dynarec) my_context->trace_dynarec = dynarec; } #else + (void)dynarec; if(my_context->trace_tid != tid) { printf_log(LOG_NONE, "Thread %04d|\n", tid); my_context->trace_tid = tid; @@ -1178,6 +1181,8 @@ reg64_t* GetEb32O(x64emu_t *emu, rex_t rex, uint8_t v, uint8_t delta, uintptr_t reg64_t* GetEw16(x64emu_t *emu, rex_t rex, uint8_t v) { + (void)rex; + uint8_t m = v&0xC7; // filter Ed if(m>=0xC0) { return &emu->regs[(m&0x07)]; @@ -1205,6 +1210,8 @@ reg64_t* GetEw16(x64emu_t *emu, rex_t rex, uint8_t v) reg64_t* GetEw16off(x64emu_t *emu, rex_t rex, uint8_t v, uintptr_t offset) { + (void)rex; + uint32_t m = v&0xC7; // filter Ed if(m>=0xC0) { return &emu->regs[(m&0x07)]; @@ -1279,6 +1286,8 @@ reg64_t* GetGb(x64emu_t *emu, rex_t rex, uint8_t v) mmx87_regs_t* GetGm(x64emu_t *emu, rex_t rex, uint8_t v) { + (void)rex; + uint8_t m = (v&0x38)>>3; return &emu->mmx87[m&7]; } diff --git a/src/emu/x64run_private.h b/src/emu/x64run_private.h index e30edbec..525771f2 100755 --- a/src/emu/x64run_private.h +++ b/src/emu/x64run_private.h @@ -123,12 +123,6 @@ int RunDF(x64emu_t *emu, rex_t rex); int RunF0(x64emu_t *emu, rex_t rex); int RunF20F(x64emu_t *emu, rex_t rex); int RunF30F(x64emu_t *emu, rex_t rex); -//void Run66D9(x64emu_t *emu); // x87 -//void Run6766(x64emu_t *emu); -//void RunGS(x64emu_t *emu); -//void RunFS(x64emu_t *emu); -//void RunFS66(x64emu_t *emu, uintptr_t tlsdata); -//void RunLock66(x64emu_t *emu); void x64Syscall(x64emu_t *emu); void x64Int3(x64emu_t* emu); @@ -146,4 +140,4 @@ const char* GetNativeName(void* p); void PrintTrace(x64emu_t* emu, uintptr_t ip, int dynarec); #endif -#endif //__X86RUN_PRIVATE_H_ \ No newline at end of file +#endif //__X86RUN_PRIVATE_H_ diff --git a/src/emu/x64rundf.c b/src/emu/x64rundf.c index 613c90f8..7abf665a 100644 --- a/src/emu/x64rundf.c +++ b/src/emu/x64rundf.c @@ -162,7 +162,7 @@ int RunDF(x64emu_t *emu, rex_t rex) break; case 7: /* FISTP i64 */ GETED(0); - if(STll(0).ref==ST(0).q) + if(STll(0).ref==ST(0).sq) ED->sq[0] = STll(0).ll; else { if(isgreater(ST0.d, (double)(int64_t)0x7fffffffffffffffLL) || isless(ST0.d, -(double)(int64_t)0x7fffffffffffffffLL) || !isfinite(ST0.d)) @@ -177,4 +177,4 @@ int RunDF(x64emu_t *emu, rex_t rex) } } return 0; -} \ No newline at end of file +} diff --git a/src/emu/x64runf0.c b/src/emu/x64runf0.c index 883b35ac..41b51362 100644 --- a/src/emu/x64runf0.c +++ b/src/emu/x64runf0.c @@ -31,7 +31,7 @@ int RunF0(x64emu_t *emu, rex_t rex) uint8_t opcode; uint8_t nextop; uint8_t tmp8u; - int32_t tmp32s; + int32_t tmp32s; (void)tmp32s; uint32_t tmp32u, tmp32u2; int64_t tmp64s; uint64_t tmp64u, tmp64u2; @@ -700,4 +700,4 @@ int RunF0(x64emu_t *emu, rex_t rex) return 1; } return 0; -} \ No newline at end of file +} diff --git a/src/emu/x64syscall.c b/src/emu/x64syscall.c index e4d167a0..681a5583 100755 --- a/src/emu/x64syscall.c +++ b/src/emu/x64syscall.c @@ -57,7 +57,7 @@ int fcntl(int fd, int cmd, ... /* arg */ ); // Syscall table for x86_64 can be found typedef struct scwrap_s { - int x64s; + uint32_t x64s; // 32 bits? int nats; int nbpars; } scwrap_t; @@ -135,7 +135,7 @@ struct mmap_arg_struct { void EXPORT x64Syscall(x64emu_t *emu) { RESET_FLAGS(emu); - uint32_t s = R_EAX; + uint32_t s = R_EAX; // EAX? (syscalls only go up to 547 anyways) printf_log(LOG_DEBUG, "%p: Calling syscall 0x%02X (%d) %p %p %p %p %p %p", (void*)R_RIP, s, s, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_R10, (void*)R_R8, (void*)R_R9); // check wrapper first int cnt = sizeof(syscallwrap) / sizeof(scwrap_t); diff --git a/src/emu/x64tls.c b/src/emu/x64tls.c index 2396eee6..783a1b2f 100755 --- a/src/emu/x64tls.c +++ b/src/emu/x64tls.c @@ -123,7 +123,7 @@ uint32_t my_modify_ldt(x64emu_t* emu, int op, thread_area_t* td, int size) pthread_setspecific(my_context->segtls[idx].key, (void*)my_context->segtls[idx].base); */ - ResetSegmentsCache(thread_get_emu()); + ResetSegmentsCache(emu); return 0; } @@ -148,11 +148,11 @@ static tlsdatasize_t* setupTLSData(box64context_t* context) uintptr_t dtp = (uintptr_t)ptr+context->tlssize+POS_TLS; memcpy((void*)(tlsptr+sizeof(void*)), &dtp, sizeof(void*)); if(dtsize) { - for (size_t i=0; i<context->elfsize; ++i) { + for (int i=0; i<context->elfsize; ++i) { // set pointer dtp = (uintptr_t)ptr + (context->tlssize + GetTLSBase(context->elfs[i])); - memcpy((void*)((uintptr_t)ptr+context->tlssize+POS_TLS+i*16), &dtp, sizeof(void*)); - memcpy((void*)((uintptr_t)ptr+context->tlssize+POS_TLS+i*16+8), &i, sizeof(void*)); // index + *(uint64_t*)((uintptr_t)ptr+context->tlssize+POS_TLS+i*16) = dtp; + *(uint64_t*)((uintptr_t)ptr+context->tlssize+POS_TLS+i*16+8) = i; // index } } memcpy((void*)((uintptr_t)ptr+context->tlssize+0x10), &context->vsyscall, sizeof(void*)); // address of vsyscall diff --git a/src/emu/x87emu_private.h b/src/emu/x87emu_private.h index f188187a..fc71b6d1 100755 --- a/src/emu/x87emu_private.h +++ b/src/emu/x87emu_private.h @@ -14,10 +14,6 @@ typedef struct x64emu_s x64emu_t; #define LN2 0.69314718055994531 #define LG2 0.3010299956639812 -//void Run66D9(x64emu_t *emu); -//void Run66DD(x64emu_t *emu); -//void RunDF(x64emu_t *emu); - #define ST0 emu->mmx87[emu->top] #define ST1 emu->mmx87[(emu->top+1)&7] #define ST(a) emu->mmx87[(emu->top+(a))&7] @@ -58,8 +54,8 @@ static inline void fpu_do_free(x64emu_t* emu, int i) { emu->p_regs[(emu->top+i)&7].tag = 0b11; // empty // check if all empty - for(int i=0; i<8; ++i) - if(emu->p_regs[i].tag != 0b11) + for(int j=0; j<8; ++j) + if(emu->p_regs[j].tag != 0b11) return; emu->fpu_stack = 0; } diff --git a/src/include/box64context.h b/src/include/box64context.h index 1b215378..d5e8b82d 100755 --- a/src/include/box64context.h +++ b/src/include/box64context.h @@ -82,8 +82,8 @@ typedef struct box64context_s { char* fullpath; char* box64path; // path of current box64 executable - uint32_t stacksz; - int stackalign; + uint64_t stacksz; + size_t stackalign; void* stack; // alocated stack elfheader_t **elfs; // elf headers and memory @@ -152,7 +152,7 @@ typedef struct box64context_s { pthread_key_t tlskey; // then tls key to have actual tlsdata void* tlsdata; // the initial global tlsdata - int32_t tlssize; // wanted size of tlsdata + int64_t tlssize; // wanted size of tlsdata base_segment_t segtls[3]; // only handling 0/1/2 descriptors uintptr_t *auxval_start; diff --git a/src/include/custommem.h b/src/include/custommem.h index 1b86d251..bd687468 100644 --- a/src/include/custommem.h +++ b/src/include/custommem.h @@ -20,7 +20,7 @@ void customFree(void* p); typedef struct dynablock_s dynablock_t; typedef struct dynablocklist_s dynablocklist_t; // custom protection flag to mark Page that are Write protected for Dynarec purpose -uintptr_t AllocDynarecMap(dynablock_t* db, int size); +uintptr_t AllocDynarecMap(dynablock_t* db, size_t size); void FreeDynarecMap(dynablock_t* db, uintptr_t addr, uint32_t size); void addDBFromAddressRange(uintptr_t addr, uintptr_t size); @@ -60,4 +60,4 @@ void relockCustommemMutex(int locks); void init_custommem_helper(box64context_t* ctx); void fini_custommem_helper(box64context_t* ctx); -#endif //__CUSTOM_MEM__H_ \ No newline at end of file +#endif //__CUSTOM_MEM__H_ diff --git a/src/include/elfloader.h b/src/include/elfloader.h index a46d9b05..aef5ae35 100755 --- a/src/include/elfloader.h +++ b/src/include/elfloader.h @@ -26,7 +26,7 @@ int LoadElfMemory(FILE* f, box64context_t* context, elfheader_t* head); int ReloadElfMemory(FILE* f, box64context_t* context, elfheader_t* head); int RelocateElf(lib_t *maplib, lib_t* local_maplib, elfheader_t* head); int RelocateElfPlt(lib_t *maplib, lib_t* local_maplib, elfheader_t* head); -void CalcStack(elfheader_t* h, uint32_t* stacksz, int* stackalign); +void CalcStack(elfheader_t* h, uint64_t* stacksz, size_t* stackalign); uintptr_t GetEntryPoint(lib_t* maplib, elfheader_t* h); uintptr_t GetLastByte(elfheader_t* h); void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* weaksymbols, kh_mapsymbols_t* localsymbols, elfheader_t* h); @@ -41,7 +41,7 @@ void* GetElfDelta(elfheader_t* h); uint32_t GetBaseSize(elfheader_t* h); int IsAddressInElfSpace(elfheader_t* h, uintptr_t addr); elfheader_t* FindElfAddress(box64context_t *context, uintptr_t addr); -const char* FindNearestSymbolName(elfheader_t* h, void* p, uintptr_t* start, uint32_t* sz); +const char* FindNearestSymbolName(elfheader_t* h, void* p, uintptr_t* start, uint64_t* sz); int32_t GetTLSBase(elfheader_t* h); uint32_t GetTLSSize(elfheader_t* h); void* GetTLSPointer(box64context_t* context, elfheader_t* h); @@ -55,5 +55,4 @@ void CreateMemorymapFile(box64context_t* context, int fd); int ElfCheckIfUseTCMallocMinimal(elfheader_t* h); // return 1 if tcmalloc is used - #endif //__ELF_LOADER_H_ diff --git a/src/include/librarian.h b/src/include/librarian.h index 6e69349b..37eda132 100755 --- a/src/include/librarian.h +++ b/src/include/librarian.h @@ -37,13 +37,13 @@ int GetNoWeakSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, u elfheader_t* GetGlobalSymbolElf(lib_t *maplib, const char* name); int IsGlobalNoWeakSymbolInNative(lib_t *maplib, const char* name); -void AddSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz); // replace if already there +void AddSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint64_t sz); // replace if already there uintptr_t FindSymbol(kh_mapsymbols_t *mapsymbols, const char* name); -void AddWeakSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz); // don't add if already there +void AddWeakSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint64_t sz); // don't add if already there int GetSymbolStartEnd(kh_mapsymbols_t* mapsymbols, const char* name, uintptr_t* start, uintptr_t* end); -const char* GetSymbolName(kh_mapsymbols_t* mapsymbols, void* p, uintptr_t* offs, uint32_t* sz); +const char* GetSymbolName(kh_mapsymbols_t* mapsymbols, void* p, uintptr_t* offs, uint64_t* sz); -const char* FindSymbolName(lib_t *maplib, void* p, void** start, uint32_t* sz, const char** libname, void** base); +const char* FindSymbolName(lib_t *maplib, void* p, void** start, uint64_t* sz, const char** libname, void** base); void AddOffsetSymbol(lib_t *maplib, void* offs, const char* name); const char* GetNameOffset(lib_t *maplib, void* offs); diff --git a/src/include/wrappedlibs.h b/src/include/wrappedlibs.h index d8cf3a64..41e27765 100755 --- a/src/include/wrappedlibs.h +++ b/src/include/wrappedlibs.h @@ -15,7 +15,6 @@ typedef struct wrappedlib_s { wrappedlib_fini_t fini; wrappedlib_get_t get; wrappedlib_get_t getnoweak; - wrappedlib_get_t getlocal; } wrappedlib_t; -#endif //__WRAPPEDLIBS_H__ \ No newline at end of file +#endif //__WRAPPEDLIBS_H__ diff --git a/src/librarian/librarian.c b/src/librarian/librarian.c index 9afdd395..9eb191fd 100755 --- a/src/librarian/librarian.c +++ b/src/librarian/librarian.c @@ -539,7 +539,7 @@ int GetNoWeakSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, u } -void AddSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz) +void AddSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint64_t sz) { int ret; khint_t k = kh_put(mapsymbols, mapsymbols, name, &ret); @@ -553,7 +553,7 @@ uintptr_t FindSymbol(kh_mapsymbols_t *mapsymbols, const char* name) return 0; return kh_val(mapsymbols, k).offs; } -void AddWeakSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz) +void AddWeakSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint64_t sz) { int ret; khint_t k = kh_put(mapsymbols, mapsymbols, name, &ret); @@ -573,7 +573,7 @@ int GetSymbolStartEnd(kh_mapsymbols_t* mapsymbols, const char* name, uintptr_t* return 1; } -const char* GetSymbolName(kh_mapsymbols_t* mapsymbols, void* p, uintptr_t* start, uint32_t* sz) +const char* GetSymbolName(kh_mapsymbols_t* mapsymbols, void* p, uintptr_t* start, uint64_t* sz) { uintptr_t addr = (uintptr_t)p; onesymbol_t *one; @@ -587,12 +587,12 @@ const char* GetSymbolName(kh_mapsymbols_t* mapsymbols, void* p, uintptr_t* start return NULL; } -const char* FindSymbolName(lib_t *maplib, void* p, void** start, uint32_t* sz, const char** libname, void** base) +const char* FindSymbolName(lib_t *maplib, void* p, void** start, uint64_t* sz, const char** libname, void** base) { // first, search in self... const char* ret = NULL; uintptr_t offs = 0; - uint32_t size = 0; + uint64_t size = 0; elfheader_t* h = FindElfAddress(my_context, (uintptr_t)p); if(h) { ret = FindNearestSymbolName(h, p, &offs, &size); @@ -609,6 +609,7 @@ const char* FindSymbolName(lib_t *maplib, void* p, void** start, uint32_t* sz, c return ret; } // TODO: find if cyclic references exists (should also fix MapLibAddMapLib) + (void)maplib; /* for (int i = 0; i < maplib->libsz; ++i) { // if (maplib == maplib->libraries[i]->maplib) continue; const char *nameInLib = FindSymbolName(maplib->libraries[i]->maplib, p, start, sz, libname, base); diff --git a/src/librarian/librarian_private.h b/src/librarian/librarian_private.h index 881f527f..d76157c7 100755 --- a/src/librarian/librarian_private.h +++ b/src/librarian/librarian_private.h @@ -9,7 +9,7 @@ typedef struct box64context_s box64context_t; typedef struct onesymbol_s { uintptr_t offs; - uint32_t sz; + uint64_t sz; // need to track type of symbol? // need to track origin? } onesymbol_t; diff --git a/src/librarian/library.c b/src/librarian/library.c index e5ab8a2f..cb2bb575 100755 --- a/src/librarian/library.c +++ b/src/librarian/library.c @@ -129,6 +129,8 @@ int EmuLib_GetLocal(library_t* lib, const char* name, uintptr_t *offs, uintptr_t int NativeLib_GetLocal(library_t* lib, const char* name, uintptr_t *offs, uintptr_t *sz) { + // TODO + (void)lib; (void)name; (void)offs; (void)sz; return 0; } @@ -150,9 +152,9 @@ static void initNativeLib(library_t *lib, box64context_t* context) { lib->getlocal = NativeLib_GetLocal; lib->type = 0; // Call librarian to load all dependant elf - for(int i=0; i<lib->priv.w.needed; ++i) { - if(AddNeededLib(context->maplib, &lib->needed, lib, 0, lib->priv.w.neededlibs[i], context, thread_get_emu())) { - printf_log(LOG_NONE, "Error: loading needed libs in elf %s\n", lib->priv.w.neededlibs[i]); + for(int j=0; j<lib->priv.w.needed; ++j) { + if(AddNeededLib(context->maplib, &lib->needed, lib, 0, lib->priv.w.neededlibs[j], context, thread_get_emu())) { + printf_log(LOG_NONE, "Error: loading needed libs in elf %s\n", lib->priv.w.neededlibs[j]); return; } } @@ -280,6 +282,8 @@ library_t *NewLibrary(const char* path, box64context_t* context) } int AddSymbolsLibrary(lib_t *maplib, library_t* lib, x64emu_t* emu) { + (void)emu; + lib->active = 1; if(lib->type==1) { elfheader_t *elf_header = lib->context->elfs[lib->priv.n.elf_index]; diff --git a/src/libtools/auxval.c b/src/libtools/auxval.c index a038f2dd..82c6fd35 100755 --- a/src/libtools/auxval.c +++ b/src/libtools/auxval.c @@ -23,6 +23,8 @@ static uintptr_t* auxval_start = NULL; int init_auxval(int argc, const char **argv, const char **env) { + (void)argc; (void)argv; + // auxval vector is after envs... while(*env) env++; @@ -56,4 +58,4 @@ unsigned long real_getauxval(unsigned long type) // p+=2; // } // return 0; -//} \ No newline at end of file +//} diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 5c66522e..c7fa6fe4 100755 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -449,6 +449,8 @@ void my_sigactionhandler_oldcode(int32_t sig, siginfo_t* info, void * ucntx, int if(db) { frame = (uintptr_t*)p->uc_mcontext.regs[10+_SP]; } +#else + (void)ucntx; (void)cur_db; #endif // stack tracking x64_stack_t *new_ss = my_context->onstack[sig]?(x64_stack_t*)pthread_getspecific(sigstack_key):NULL; diff --git a/src/libtools/threads.c b/src/libtools/threads.c index 0cd08a1b..b2ab3b5d 100755 --- a/src/libtools/threads.c +++ b/src/libtools/threads.c @@ -245,6 +245,7 @@ pthread_attr_t* getAlignedAttr(pthread_attr_t* m) { return m; } void freeAlignedAttr(void* attr) { + (void)attr; } #else typedef struct aligned_attr_s { @@ -313,6 +314,7 @@ EXPORT int my_pthread_attr_setstack(x64emu_t* emu, void* attr, void* stackaddr, EXPORT int my_pthread_attr_setstacksize(x64emu_t* emu, void* attr, size_t stacksize) { + (void)emu; //aarch64 have an PTHREAD_STACK_MIN of 131072 instead of 16384 on x86_64! if(stacksize<PTHREAD_STACK_MIN) stacksize = PTHREAD_STACK_MIN; @@ -322,70 +324,86 @@ EXPORT int my_pthread_attr_setstacksize(x64emu_t* emu, void* attr, size_t stacks #ifndef NOALIGN EXPORT int my_pthread_attr_getdetachstate(x64emu_t* emu, pthread_attr_t* attr, int *state) { + (void)emu; return pthread_attr_getdetachstate(getAlignedAttr(attr), state); } EXPORT int my_pthread_attr_getguardsize(x64emu_t* emu, pthread_attr_t* attr, size_t* size) { + (void)emu; return pthread_attr_getguardsize(getAlignedAttr(attr), size); } EXPORT int my_pthread_attr_getinheritsched(x64emu_t* emu, pthread_attr_t* attr, int* sched) { + (void)emu; return pthread_attr_getinheritsched(getAlignedAttr(attr), sched); } EXPORT int my_pthread_attr_getschedparam(x64emu_t* emu, pthread_attr_t* attr, void* param) { + (void)emu; return pthread_attr_getschedparam(getAlignedAttr(attr), param); } EXPORT int my_pthread_attr_getschedpolicy(x64emu_t* emu, pthread_attr_t* attr, int* policy) { + (void)emu; return pthread_attr_getschedpolicy(getAlignedAttr(attr), policy); } EXPORT int my_pthread_attr_getscope(x64emu_t* emu, pthread_attr_t* attr, int* scope) { + (void)emu; return pthread_attr_getscope(getAlignedAttr(attr), scope); } EXPORT int my_pthread_attr_getstackaddr(x64emu_t* emu, pthread_attr_t* attr, void* addr) { + (void)emu; size_t size; return pthread_attr_getstack(getAlignedAttr(attr), addr, &size); //return pthread_attr_getstackaddr(getAlignedAttr(attr), addr); } EXPORT int my_pthread_attr_getstacksize(x64emu_t* emu, pthread_attr_t* attr, size_t* size) { + (void)emu; void* addr; return pthread_attr_getstack(getAlignedAttr(attr), &addr, size); //return pthread_attr_getstacksize(getAlignedAttr(attr), size); } EXPORT int my_pthread_attr_init(x64emu_t* emu, pthread_attr_t* attr) { + (void)emu; return pthread_attr_init(getAlignedAttrWithInit(attr, 0)); } EXPORT int my_pthread_attr_setaffinity_np(x64emu_t* emu, pthread_attr_t* attr, size_t cpusize, void* cpuset) { + (void)emu; return pthread_attr_setaffinity_np(getAlignedAttr(attr), cpusize, cpuset); } EXPORT int my_pthread_attr_setdetachstate(x64emu_t* emu, pthread_attr_t* attr, int state) { + (void)emu; return pthread_attr_setdetachstate(getAlignedAttr(attr), state); } EXPORT int my_pthread_attr_setguardsize(x64emu_t* emu, pthread_attr_t* attr, size_t size) { + (void)emu; return pthread_attr_setguardsize(getAlignedAttr(attr), size); } EXPORT int my_pthread_attr_setinheritsched(x64emu_t* emu, pthread_attr_t* attr, int sched) { + (void)emu; return pthread_attr_setinheritsched(getAlignedAttr(attr), sched); } EXPORT int my_pthread_attr_setschedparam(x64emu_t* emu, pthread_attr_t* attr, void* param) { + (void)emu; return pthread_attr_setschedparam(getAlignedAttr(attr), param); } EXPORT int my_pthread_attr_setschedpolicy(x64emu_t* emu, pthread_attr_t* attr, int policy) { + (void)emu; return pthread_attr_setschedpolicy(getAlignedAttr(attr), policy); } EXPORT int my_pthread_attr_setscope(x64emu_t* emu, pthread_attr_t* attr, int scope) { + (void)emu; return pthread_attr_setscope(getAlignedAttr(attr), scope); } EXPORT int my_pthread_attr_setstackaddr(x64emu_t* emu, pthread_attr_t* attr, void* addr) @@ -495,6 +513,7 @@ EXPORT void my___pthread_register_cancel(void* E, void* B) EXPORT void my___pthread_unregister_cancel(x64emu_t* emu, x64_unwind_buff_t* buff) { + (void)emu; __pthread_unwind_buf_t * pbuff = GetCancelThread(buff); __pthread_unregister_cancel(pbuff); @@ -504,6 +523,7 @@ EXPORT void my___pthread_unregister_cancel(x64emu_t* emu, x64_unwind_buff_t* buf EXPORT void my___pthread_unwind_next(x64emu_t* emu, x64_unwind_buff_t* buff) { + (void)emu; __pthread_unwind_buf_t pbuff = *GetCancelThread(buff); DelCancelThread(buff); // function is noreturn, putting stuff on the stack to have it auto-free (is that correct?) @@ -610,6 +630,7 @@ static void my_once_callback() int EXPORT my_pthread_once(x64emu_t* emu, void* once, void* cb) { + (void)emu; my_once_callback_fct = (uintptr_t)cb; return pthread_once(once, my_once_callback); } @@ -617,6 +638,7 @@ EXPORT int my___pthread_once(x64emu_t* emu, void* once, void* cb) __attribute__( EXPORT int my_pthread_key_create(x64emu_t* emu, void* key, void* dtor) { + (void)emu; return pthread_key_create(key, findkey_destructorFct(dtor)); } EXPORT int my___pthread_key_create(x64emu_t* emu, void* key, void* dtor) __attribute__((alias("my_pthread_key_create"))); @@ -626,43 +648,42 @@ pthread_mutex_t* getAlignedMutex(pthread_mutex_t* m); EXPORT int my_pthread_cond_timedwait(x64emu_t* emu, pthread_cond_t* cond, void* mutex, void* abstime) { + (void)emu; return pthread_cond_timedwait(cond, getAlignedMutex((pthread_mutex_t*)mutex), (const struct timespec*)abstime); } EXPORT int my_pthread_cond_wait(x64emu_t* emu, pthread_cond_t* cond, void* mutex) { + (void)emu; return pthread_cond_wait(cond, getAlignedMutex((pthread_mutex_t*)mutex)); } -//EXPORT int my_pthread_attr_setscope(x64emu_t* emu, void* at*tr, int scope) -//{ -// if(scope!=PTHREAD_SCOPE_SYSTEM) printf_log(LOG_INFO, "Warning, scope of call to pthread_attr_setscope(...) changed from %d to PTHREAD_SCOPE_SYSTEM\n", scope); -// return pthread_attr_setscope(attr, PTHREAD_SCOPE_SYSTEM); -// //The scope is either PTHREAD_SCOPE_SYSTEM or PTHREAD_SCOPE_PROCESS -// // but PTHREAD_SCOPE_PROCESS doesn't seem supported on ARM linux, and PTHREAD_SCOPE_SYSTEM is default -//} - EXPORT void my__pthread_cleanup_push_defer(x64emu_t* emu, void* buffer, void* routine, void* arg) { + (void)emu; _pthread_cleanup_push_defer(buffer, findcleanup_routineFct(routine), arg); } EXPORT void my__pthread_cleanup_push(x64emu_t* emu, void* buffer, void* routine, void* arg) { + (void)emu; _pthread_cleanup_push(buffer, findcleanup_routineFct(routine), arg); } EXPORT void my__pthread_cleanup_pop_restore(x64emu_t* emu, void* buffer, int exec) { + (void)emu; _pthread_cleanup_pop_restore(buffer, exec); } EXPORT void my__pthread_cleanup_pop(x64emu_t* emu, void* buffer, int exec) { + (void)emu; _pthread_cleanup_pop(buffer, exec); } //EXPORT int my_pthread_getaffinity_np(x64emu_t* emu, pthread_t thread, int cpusetsize, void* cpuset) //{ +// (void)emu; // int ret = pthread_getaffinity_np(thread, cpusetsize, cpuset); // if(ret<0) { // printf_log(LOG_INFO, "Warning, pthread_getaffinity_np(%p, %d, %p) errored, with errno=%d\n", (void*)thread, cpusetsize, cpuset, errno); @@ -673,6 +694,7 @@ EXPORT void my__pthread_cleanup_pop(x64emu_t* emu, void* buffer, int exec) //EXPORT int my_pthread_setaffinity_np(x64emu_t* emu, pthread_t thread, int cpusetsize, void* cpuset) //{ +// (void)emu; // int ret = pthread_setaffinity_np(thread, cpusetsize, cpuset); // if(ret<0) { // printf_log(LOG_INFO, "Warning, pthread_setaffinity_np(%p, %d, %p) errored, with errno=%d\n", (void*)thread, cpusetsize, cpuset, errno); @@ -683,7 +705,7 @@ EXPORT void my__pthread_cleanup_pop(x64emu_t* emu, void* buffer, int exec) //EXPORT int my_pthread_attr_setaffinity_np(x64emu_t* emu, void* attr, uint32_t cpusetsize, void* cpuset) //{ -// +// (void)emu; // int ret = pthread_attr_setaffinity_np(attr, cpusetsize, cpuset); // if(ret<0) { // printf_log(LOG_INFO, "Warning, pthread_attr_setaffinity_np(%p, %d, %p) errored, with errno=%d\n", attr, cpusetsize, cpuset, errno); @@ -694,14 +716,16 @@ EXPORT void my__pthread_cleanup_pop(x64emu_t* emu, void* buffer, int exec) EXPORT int my_pthread_kill(x64emu_t* emu, void* thread, int sig) { - // check for old "is everything ok?" - if(thread==NULL && sig==0) - return pthread_kill(pthread_self(), 0); - return pthread_kill((pthread_t)thread, sig); + (void)emu; + // check for old "is everything ok?" + if(thread==NULL && sig==0) + return pthread_kill(pthread_self(), 0); + return pthread_kill((pthread_t)thread, sig); } //EXPORT void my_pthread_exit(x64emu_t* emu, void* retval) //{ +// (void)emu; // pthread_exit(retval); //} diff --git a/src/main.c b/src/main.c index e6401c24..034ce6b3 100755 --- a/src/main.c +++ b/src/main.c @@ -519,26 +519,26 @@ void LoadEnvVars(box64context_t *context) } EXPORTDYN -void setupTraceInit(box64context_t* context) +void setupTraceInit() { #ifdef HAVE_TRACE char* p = getenv("BOX64_TRACE_INIT"); if(p) { setbuf(stdout, NULL); - uintptr_t trace_start=0, trace_end=0; + uintptr_t s_trace_start=0, s_trace_end=0; if (strcmp(p, "1")==0) SetTraceEmu(0, 0); else if (strchr(p,'-')) { - if(sscanf(p, "%ld-%ld", &trace_start, &trace_end)!=2) { - if(sscanf(p, "0x%lX-0x%lX", &trace_start, &trace_end)!=2) - sscanf(p, "%lx-%lx", &trace_start, &trace_end); + if(sscanf(p, "%ld-%ld", &s_trace_start, &s_trace_end)!=2) { + if(sscanf(p, "0x%lX-0x%lX", &s_trace_start, &s_trace_end)!=2) + sscanf(p, "%lx-%lx", &s_trace_start, &s_trace_end); } - if(trace_start || trace_end) - SetTraceEmu(trace_start, trace_end); + if(s_trace_start || s_trace_end) + SetTraceEmu(s_trace_start, s_trace_end); } else { - if (GetSymbolStartEnd(GetMapSymbol(my_context->maplib), p, &trace_start, &trace_end)) { - SetTraceEmu(trace_start, trace_end); - printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)trace_start, (void*)trace_end); + if (GetSymbolStartEnd(GetMapSymbol(my_context->maplib), p, &s_trace_start, &s_trace_end)) { + SetTraceEmu(s_trace_start, s_trace_end); + printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)s_trace_start, (void*)s_trace_end); } else { printf_log(LOG_NONE, "Warning, symbol to Traced (\"%s\") not found, disabling trace\n", p); SetTraceEmu(0, 100); // disabling trace, mostly @@ -554,35 +554,35 @@ void setupTraceInit(box64context_t* context) } EXPORTDYN -void setupTrace(box64context_t* context) +void setupTrace() { #ifdef HAVE_TRACE char* p = getenv("BOX64_TRACE"); if(p) { setbuf(stdout, NULL); - uintptr_t trace_start=0, trace_end=0; + uintptr_t s_trace_start=0, s_trace_end=0; if (strcmp(p, "1")==0) SetTraceEmu(0, 0); else if (strchr(p,'-')) { - if(sscanf(p, "%ld-%ld", &trace_start, &trace_end)!=2) { - if(sscanf(p, "0x%lX-0x%lX", &trace_start, &trace_end)!=2) - sscanf(p, "%lx-%lx", &trace_start, &trace_end); + if(sscanf(p, "%ld-%ld", &s_trace_start, &s_trace_end)!=2) { + if(sscanf(p, "0x%lX-0x%lX", &s_trace_start, &s_trace_end)!=2) + sscanf(p, "%lx-%lx", &s_trace_start, &s_trace_end); } - if(trace_start || trace_end) { - SetTraceEmu(trace_start, trace_end); - if(!trace_start && trace_end==1) { + if(s_trace_start || s_trace_end) { + SetTraceEmu(s_trace_start, s_trace_end); + if(!s_trace_start && s_trace_end==1) { printf_log(LOG_INFO, "TRACE enabled but inactive\n"); } else { - printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)trace_start, (void*)trace_end); + printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)s_trace_start, (void*)s_trace_end); } } } else { - if (GetGlobalSymbolStartEnd(my_context->maplib, p, &trace_start, &trace_end)) { - SetTraceEmu(trace_start, trace_end); - printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)trace_start, (void*)trace_end); - } else if(GetLocalSymbolStartEnd(my_context->maplib, p, &trace_start, &trace_end, NULL)) { - SetTraceEmu(trace_start, trace_end); - printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)trace_start, (void*)trace_end); + if (GetGlobalSymbolStartEnd(my_context->maplib, p, &s_trace_start, &s_trace_end)) { + SetTraceEmu(s_trace_start, s_trace_end); + printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)s_trace_start, (void*)s_trace_end); + } else if(GetLocalSymbolStartEnd(my_context->maplib, p, &s_trace_start, &s_trace_end, NULL)) { + SetTraceEmu(s_trace_start, s_trace_end); + printf_log(LOG_INFO, "TRACE on %s only (%p-%p)\n", p, (void*)s_trace_start, (void*)s_trace_end); } else { printf_log(LOG_NONE, "Warning, symbol to Traced (\"%s\") not found, trying to set trace later\n", p); SetTraceEmu(0, 1); // disabling trace, mostly @@ -966,7 +966,7 @@ int main(int argc, const char **argv, const char **env) { thread_set_emu(emu); - setupTraceInit(my_context); + setupTraceInit(); // export symbols AddSymbols(my_context->maplib, GetMapSymbol(my_context->maplib), GetWeakSymbol(my_context->maplib), GetLocalSymbol(my_context->maplib), elf_header); if(wine_preloaded) { @@ -1012,7 +1012,7 @@ int main(int argc, const char **argv, const char **env) { // do some special case check, _IO_2_1_stderr_ and friends, that are setup by libc, but it's already done here, so need to do a copy ResetSpecialCaseMainElf(elf_header); // init... - setupTrace(my_context); + setupTrace(); // get entrypoint my_context->ep = GetEntryPoint(my_context->maplib, elf_header); #if defined(RPI) || defined(RK3399) || defined(RK3326) diff --git a/src/tools/box64stack.c b/src/tools/box64stack.c index 7c330128..cfc778ae 100755 --- a/src/tools/box64stack.c +++ b/src/tools/box64stack.c @@ -20,14 +20,14 @@ int CalcStackSize(box64context_t *context) for (int i=0; i<context->elfsize; ++i) CalcStack(context->elfs[i], &context->stacksz, &context->stackalign); -// if (posix_memalign((void**)&context->stack, context->stackalign, context->stacksz)) { + //if (posix_memalign((void**)&context->stack, context->stackalign, context->stacksz)) { context->stack = mmap(NULL, context->stacksz, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_GROWSDOWN, -1, 0); if (context->stack==(void*)-1) { - printf_log(LOG_NONE, "Cannot allocate aligned memory (0x%x/0x%x) for stack\n", context->stacksz, context->stackalign); + printf_log(LOG_NONE, "Cannot allocate aligned memory (0x%lx/0x%zx) for stack\n", context->stacksz, context->stackalign); return 1; } //memset(context->stack, 0, context->stacksz); - printf_log(LOG_DEBUG, "Stack is @%p size=0x%x align=0x%x\n", context->stack, context->stacksz, context->stackalign); + printf_log(LOG_DEBUG, "Stack is @%p size=0x%lx align=0x%zx\n", context->stack, context->stacksz, context->stackalign); return 0; } diff --git a/src/tools/bridge.c b/src/tools/bridge.c index 3a3e6768..fb349ccf 100755 --- a/src/tools/bridge.c +++ b/src/tools/bridge.c @@ -149,6 +149,8 @@ uintptr_t AddCheckBridge(bridge_t* bridge, wrapper_t w, void* fnc, int N, const uintptr_t AddAutomaticBridge(x64emu_t* emu, bridge_t* bridge, wrapper_t w, void* fnc, int N) { + (void)emu; + if(!fnc) return 0; uintptr_t ret = CheckBridged(bridge, fnc); diff --git a/src/tools/callback.c b/src/tools/callback.c index 8c46139e..1f7250a6 100755 --- a/src/tools/callback.c +++ b/src/tools/callback.c @@ -16,6 +16,8 @@ EXPORTDYN uint64_t RunFunction(box64context_t *context, uintptr_t fnc, int nargs, ...) { + (void)context; + x64emu_t *emu = thread_get_emu(); if(nargs>6) diff --git a/src/tools/fileutils.c b/src/tools/fileutils.c index 870bbd1b..18b8dc4d 100755 --- a/src/tools/fileutils.c +++ b/src/tools/fileutils.c @@ -46,7 +46,7 @@ char* ResolveFile(const char* filename, path_collection_t* paths) for (int i=0; i<paths->size; ++i) { if(paths->paths[i][0]!='/') { // not an absolute path... - getcwd(p, sizeof(p)); + if(!getcwd(p, sizeof(p))) return NULL; if(p[strlen(p)-1]!='/') strcat(p, "/"); strcat(p, paths->paths[i]); diff --git a/src/wrapped/generated/wrappedbz2types.h b/src/wrapped/generated/wrappedbz2types.h index 7ea64a63..ec0f499a 100644 --- a/src/wrapped/generated/wrappedbz2types.h +++ b/src/wrapped/generated/wrappedbz2types.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedbz2TYPES_H_ #define __wrappedbz2TYPES_H_ diff --git a/src/wrapped/generated/wrappedcryptotypes.h b/src/wrapped/generated/wrappedcryptotypes.h index 30d8180f..3e37a464 100644 --- a/src/wrapped/generated/wrappedcryptotypes.h +++ b/src/wrapped/generated/wrappedcryptotypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedcryptoTYPES_H_ #define __wrappedcryptoTYPES_H_ diff --git a/src/wrapped/generated/wrappedcurltypes.h b/src/wrapped/generated/wrappedcurltypes.h index 5f0cccfd..95fae23c 100644 --- a/src/wrapped/generated/wrappedcurltypes.h +++ b/src/wrapped/generated/wrappedcurltypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedcurlTYPES_H_ #define __wrappedcurlTYPES_H_ diff --git a/src/wrapped/generated/wrappeddbustypes.h b/src/wrapped/generated/wrappeddbustypes.h index ea6dd689..f7468c89 100644 --- a/src/wrapped/generated/wrappeddbustypes.h +++ b/src/wrapped/generated/wrappeddbustypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappeddbusTYPES_H_ #define __wrappeddbusTYPES_H_ diff --git a/src/wrapped/generated/wrappedfontconfigtypes.h b/src/wrapped/generated/wrappedfontconfigtypes.h index 46e77c3f..580e5974 100644 --- a/src/wrapped/generated/wrappedfontconfigtypes.h +++ b/src/wrapped/generated/wrappedfontconfigtypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedfontconfigTYPES_H_ #define __wrappedfontconfigTYPES_H_ diff --git a/src/wrapped/generated/wrappedfreetypetypes.h b/src/wrapped/generated/wrappedfreetypetypes.h index 9378eb8f..034f108b 100644 --- a/src/wrapped/generated/wrappedfreetypetypes.h +++ b/src/wrapped/generated/wrappedfreetypetypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedfreetypeTYPES_H_ #define __wrappedfreetypeTYPES_H_ diff --git a/src/wrapped/generated/wrappedgnutlstypes.h b/src/wrapped/generated/wrappedgnutlstypes.h index d465739c..62fe8d58 100644 --- a/src/wrapped/generated/wrappedgnutlstypes.h +++ b/src/wrapped/generated/wrappedgnutlstypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedgnutlsTYPES_H_ #define __wrappedgnutlsTYPES_H_ diff --git a/src/wrapped/generated/wrappedldlinuxtypes.h b/src/wrapped/generated/wrappedldlinuxtypes.h index 4a7a4158..45bb4eba 100644 --- a/src/wrapped/generated/wrappedldlinuxtypes.h +++ b/src/wrapped/generated/wrappedldlinuxtypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedldlinuxTYPES_H_ #define __wrappedldlinuxTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibasoundtypes.h b/src/wrapped/generated/wrappedlibasoundtypes.h index ab06d481..a82a4d58 100644 --- a/src/wrapped/generated/wrappedlibasoundtypes.h +++ b/src/wrapped/generated/wrappedlibasoundtypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibasoundTYPES_H_ #define __wrappedlibasoundTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h index d252e38a..894b8e08 100644 --- a/src/wrapped/generated/wrappedlibctypes.h +++ b/src/wrapped/generated/wrappedlibctypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibcTYPES_H_ #define __wrappedlibcTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibdltypes.h b/src/wrapped/generated/wrappedlibdltypes.h index 9a903f6d..a30c1185 100644 --- a/src/wrapped/generated/wrappedlibdltypes.h +++ b/src/wrapped/generated/wrappedlibdltypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibdlTYPES_H_ #define __wrappedlibdlTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibgltypes.h b/src/wrapped/generated/wrappedlibgltypes.h index 463bced6..5295a21b 100644 --- a/src/wrapped/generated/wrappedlibgltypes.h +++ b/src/wrapped/generated/wrappedlibgltypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibglTYPES_H_ #define __wrappedlibglTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibglutypes.h b/src/wrapped/generated/wrappedlibglutypes.h index c3f295fa..eecbceff 100644 --- a/src/wrapped/generated/wrappedlibglutypes.h +++ b/src/wrapped/generated/wrappedlibglutypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibgluTYPES_H_ #define __wrappedlibgluTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibpthreadtypes.h b/src/wrapped/generated/wrappedlibpthreadtypes.h index 87d38988..107e43eb 100644 --- a/src/wrapped/generated/wrappedlibpthreadtypes.h +++ b/src/wrapped/generated/wrappedlibpthreadtypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibpthreadTYPES_H_ #define __wrappedlibpthreadTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibrttypes.h b/src/wrapped/generated/wrappedlibrttypes.h index f3c61b10..2b3bd15e 100644 --- a/src/wrapped/generated/wrappedlibrttypes.h +++ b/src/wrapped/generated/wrappedlibrttypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibrtTYPES_H_ #define __wrappedlibrtTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibsmtypes.h b/src/wrapped/generated/wrappedlibsmtypes.h index 27f9c636..26e2a700 100644 --- a/src/wrapped/generated/wrappedlibsmtypes.h +++ b/src/wrapped/generated/wrappedlibsmtypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibsmTYPES_H_ #define __wrappedlibsmTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibssltypes.h b/src/wrapped/generated/wrappedlibssltypes.h index a56ea812..b8c176e1 100644 --- a/src/wrapped/generated/wrappedlibssltypes.h +++ b/src/wrapped/generated/wrappedlibssltypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibsslTYPES_H_ #define __wrappedlibsslTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibx11types.h b/src/wrapped/generated/wrappedlibx11types.h index 0810f2a3..e9a2e3e5 100644 --- a/src/wrapped/generated/wrappedlibx11types.h +++ b/src/wrapped/generated/wrappedlibx11types.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibx11TYPES_H_ #define __wrappedlibx11TYPES_H_ diff --git a/src/wrapped/generated/wrappedlibxexttypes.h b/src/wrapped/generated/wrappedlibxexttypes.h index cb48dac5..e813ec93 100644 --- a/src/wrapped/generated/wrappedlibxexttypes.h +++ b/src/wrapped/generated/wrappedlibxexttypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibxextTYPES_H_ #define __wrappedlibxextTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibxtsttypes.h b/src/wrapped/generated/wrappedlibxtsttypes.h index f13097ea..c4e2ed70 100644 --- a/src/wrapped/generated/wrappedlibxtsttypes.h +++ b/src/wrapped/generated/wrappedlibxtsttypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibxtstTYPES_H_ #define __wrappedlibxtstTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibxttypes.h b/src/wrapped/generated/wrappedlibxttypes.h index 8d49e866..dbc64d50 100644 --- a/src/wrapped/generated/wrappedlibxttypes.h +++ b/src/wrapped/generated/wrappedlibxttypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibxtTYPES_H_ #define __wrappedlibxtTYPES_H_ diff --git a/src/wrapped/generated/wrappedlibztypes.h b/src/wrapped/generated/wrappedlibztypes.h index b2201a7d..a4aaf3c8 100644 --- a/src/wrapped/generated/wrappedlibztypes.h +++ b/src/wrapped/generated/wrappedlibztypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedlibzTYPES_H_ #define __wrappedlibzTYPES_H_ diff --git a/src/wrapped/generated/wrappedopenaltypes.h b/src/wrapped/generated/wrappedopenaltypes.h index 6889c3ba..d63b7311 100644 --- a/src/wrapped/generated/wrappedopenaltypes.h +++ b/src/wrapped/generated/wrappedopenaltypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedopenalTYPES_H_ #define __wrappedopenalTYPES_H_ diff --git a/src/wrapped/generated/wrappedpangotypes.h b/src/wrapped/generated/wrappedpangotypes.h index 7e535062..ee78f918 100644 --- a/src/wrapped/generated/wrappedpangotypes.h +++ b/src/wrapped/generated/wrappedpangotypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedpangoTYPES_H_ #define __wrappedpangoTYPES_H_ diff --git a/src/wrapped/generated/wrappedpulsetypes.h b/src/wrapped/generated/wrappedpulsetypes.h index 2fc994fd..43292d65 100644 --- a/src/wrapped/generated/wrappedpulsetypes.h +++ b/src/wrapped/generated/wrappedpulsetypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedpulseTYPES_H_ #define __wrappedpulseTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl1imagetypes.h b/src/wrapped/generated/wrappedsdl1imagetypes.h index 89c5e486..1b7e989b 100644 --- a/src/wrapped/generated/wrappedsdl1imagetypes.h +++ b/src/wrapped/generated/wrappedsdl1imagetypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl1imageTYPES_H_ #define __wrappedsdl1imageTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl1mixertypes.h b/src/wrapped/generated/wrappedsdl1mixertypes.h index 26106a46..5d4c5819 100644 --- a/src/wrapped/generated/wrappedsdl1mixertypes.h +++ b/src/wrapped/generated/wrappedsdl1mixertypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl1mixerTYPES_H_ #define __wrappedsdl1mixerTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl1ttftypes.h b/src/wrapped/generated/wrappedsdl1ttftypes.h index b61ad3e7..058a8b12 100644 --- a/src/wrapped/generated/wrappedsdl1ttftypes.h +++ b/src/wrapped/generated/wrappedsdl1ttftypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl1ttfTYPES_H_ #define __wrappedsdl1ttfTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl1types.h b/src/wrapped/generated/wrappedsdl1types.h index b510c583..f4b819d2 100644 --- a/src/wrapped/generated/wrappedsdl1types.h +++ b/src/wrapped/generated/wrappedsdl1types.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl1TYPES_H_ #define __wrappedsdl1TYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl2imagetypes.h b/src/wrapped/generated/wrappedsdl2imagetypes.h index 57120cbe..dde655f7 100644 --- a/src/wrapped/generated/wrappedsdl2imagetypes.h +++ b/src/wrapped/generated/wrappedsdl2imagetypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl2imageTYPES_H_ #define __wrappedsdl2imageTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl2mixertypes.h b/src/wrapped/generated/wrappedsdl2mixertypes.h index 7bc662db..45585588 100644 --- a/src/wrapped/generated/wrappedsdl2mixertypes.h +++ b/src/wrapped/generated/wrappedsdl2mixertypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl2mixerTYPES_H_ #define __wrappedsdl2mixerTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl2ttftypes.h b/src/wrapped/generated/wrappedsdl2ttftypes.h index fe3c4815..81c411cd 100644 --- a/src/wrapped/generated/wrappedsdl2ttftypes.h +++ b/src/wrapped/generated/wrappedsdl2ttftypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl2ttfTYPES_H_ #define __wrappedsdl2ttfTYPES_H_ diff --git a/src/wrapped/generated/wrappedsdl2types.h b/src/wrapped/generated/wrappedsdl2types.h index 3c8bb639..d59b86a1 100644 --- a/src/wrapped/generated/wrappedsdl2types.h +++ b/src/wrapped/generated/wrappedsdl2types.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsdl2TYPES_H_ #define __wrappedsdl2TYPES_H_ diff --git a/src/wrapped/generated/wrappedsmpeg2types.h b/src/wrapped/generated/wrappedsmpeg2types.h index 8fe02baf..0b1b13ed 100644 --- a/src/wrapped/generated/wrappedsmpeg2types.h +++ b/src/wrapped/generated/wrappedsmpeg2types.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsmpeg2TYPES_H_ #define __wrappedsmpeg2TYPES_H_ diff --git a/src/wrapped/generated/wrappedsmpegtypes.h b/src/wrapped/generated/wrappedsmpegtypes.h index 658adb1e..fa6f397b 100644 --- a/src/wrapped/generated/wrappedsmpegtypes.h +++ b/src/wrapped/generated/wrappedsmpegtypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedsmpegTYPES_H_ #define __wrappedsmpegTYPES_H_ diff --git a/src/wrapped/generated/wrappedutiltypes.h b/src/wrapped/generated/wrappedutiltypes.h index 33e5ddec..050f59ec 100644 --- a/src/wrapped/generated/wrappedutiltypes.h +++ b/src/wrapped/generated/wrappedutiltypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedutilTYPES_H_ #define __wrappedutilTYPES_H_ diff --git a/src/wrapped/generated/wrappedvorbisfiletypes.h b/src/wrapped/generated/wrappedvorbisfiletypes.h index c135492f..f430cab5 100644 --- a/src/wrapped/generated/wrappedvorbisfiletypes.h +++ b/src/wrapped/generated/wrappedvorbisfiletypes.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __wrappedvorbisfileTYPES_H_ #define __wrappedvorbisfileTYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index b6a0083a..0b90c863 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #include <stdio.h> #include <stdlib.h> @@ -1236,7 +1236,7 @@ typedef double (*KFKp_t)(double, void*); #endif void vFE(x64emu_t *emu, uintptr_t fcn) { vFE_t fn = (vFE_t)fcn; fn(emu); } -void vFv(x64emu_t *emu, uintptr_t fcn) { vFv_t fn = (vFv_t)fcn; fn(); } +void vFv(x64emu_t *emu, uintptr_t fcn) { vFv_t fn = (vFv_t)fcn; fn(); (void)emu; } void vFi(x64emu_t *emu, uintptr_t fcn) { vFi_t fn = (vFi_t)fcn; fn((int64_t)R_RDI); } void vFu(x64emu_t *emu, uintptr_t fcn) { vFu_t fn = (vFu_t)fcn; fn((uint64_t)R_RDI); } void vFf(x64emu_t *emu, uintptr_t fcn) { vFf_t fn = (vFf_t)fcn; fn(emu->xmm[0].f[0]); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index d17274b4..b15e3e17 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1,5 +1,5 @@ /******************************************************************* - * File automatically generated by rebuild_wrappers.py (v1.3.0.10) * + * File automatically generated by rebuild_wrappers.py (v1.3.0.11) * *******************************************************************/ #ifndef __WRAPPER_H_ #define __WRAPPER_H_ diff --git a/src/wrapped/wrappedbz2.c b/src/wrapped/wrappedbz2.c index 0f4b76b8..686d845f 100755 --- a/src/wrapped/wrappedbz2.c +++ b/src/wrapped/wrappedbz2.c @@ -54,6 +54,7 @@ void* getBz2My(library_t* lib) void freeBz2My(void* lib) { + (void)lib; //bz2_my_t *my = (bz2_my_t *)lib; } @@ -159,6 +160,7 @@ typedef struct { EXPORT int my_BZ2_bzCompressInit(x64emu_t* emu, my_bz_stream_t* strm, int blocksize, int verbosity, int work) { + (void)emu; library_t * lib = GetLibInternal(bz2Name); bz2_my_t *my = (bz2_my_t*)lib->priv.w.p2; WRAP_BZ(strm); @@ -169,6 +171,7 @@ EXPORT int my_BZ2_bzCompressInit(x64emu_t* emu, my_bz_stream_t* strm, int blocks EXPORT int my_BZ2_bzCompress(x64emu_t* emu, my_bz_stream_t* strm, int action) { + (void)emu; library_t * lib = GetLibInternal(bz2Name); bz2_my_t *my = (bz2_my_t*)lib->priv.w.p2; WRAP_BZ(strm); @@ -179,6 +182,7 @@ EXPORT int my_BZ2_bzCompress(x64emu_t* emu, my_bz_stream_t* strm, int action) EXPORT int my_BZ2_bzCompressEnd(x64emu_t* emu, my_bz_stream_t* strm) { + (void)emu; library_t * lib = GetLibInternal(bz2Name); bz2_my_t *my = (bz2_my_t*)lib->priv.w.p2; WRAP_BZ(strm); @@ -189,6 +193,7 @@ EXPORT int my_BZ2_bzCompressEnd(x64emu_t* emu, my_bz_stream_t* strm) EXPORT int my_BZ2_bzDecompressInit(x64emu_t* emu, my_bz_stream_t* strm, int verbosity, int small) { + (void)emu; library_t * lib = GetLibInternal(bz2Name); bz2_my_t *my = (bz2_my_t*)lib->priv.w.p2; WRAP_BZ(strm); @@ -199,6 +204,7 @@ EXPORT int my_BZ2_bzDecompressInit(x64emu_t* emu, my_bz_stream_t* strm, int verb EXPORT int my_BZ2_bzDecompress(x64emu_t* emu, my_bz_stream_t* strm) { + (void)emu; library_t * lib = GetLibInternal(bz2Name); bz2_my_t *my = (bz2_my_t*)lib->priv.w.p2; WRAP_BZ(strm); @@ -209,6 +215,7 @@ EXPORT int my_BZ2_bzDecompress(x64emu_t* emu, my_bz_stream_t* strm) EXPORT int my_BZ2_bzDecompressEnd(x64emu_t* emu, my_bz_stream_t* strm) { + (void)emu; library_t * lib = GetLibInternal(bz2Name); bz2_my_t *my = (bz2_my_t*)lib->priv.w.p2; WRAP_BZ(strm); @@ -227,4 +234,3 @@ EXPORT int my_BZ2_bzDecompressEnd(x64emu_t* emu, my_bz_stream_t* strm) my_lib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedcrypto.c b/src/wrapped/wrappedcrypto.c index 1cfcf62f..aad3ec7a 100755 --- a/src/wrapped/wrappedcrypto.c +++ b/src/wrapped/wrappedcrypto.c @@ -69,6 +69,7 @@ void* getCryptoMy(library_t* lib) void freeCryptoMy(void* lib) { + (void)lib; //crypto_my_t *my = (crypto_my_t *)lib; } @@ -228,106 +229,106 @@ static void* find_passphrase_Fct(void* fct) EXPORT int32_t my_ENGINE_ctrl(x64emu_t* emu, void* e, int32_t cmd, int32_t i, void* p, void* f) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - return my->ENGINE_ctrl(e, cmd, i, p, find_ENGINE_ctrl_cb_Fct(f)); } EXPORT int32_t my_ENGINE_ctrl_cmd(x64emu_t* emu, void* e, void* cmd, long i, void* p, void* f, int optional) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - return my->ENGINE_ctrl_cmd(e, cmd, i, p, find_ENGINE_ctrl_cb_Fct(f), optional); } EXPORT void my_CRYPTO_set_id_callback(x64emu_t* emu, void* cb) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->CRYPTO_set_id_callback(find_id_func_Fct(cb)); } EXPORT void my_CRYPTO_set_locking_callback(x64emu_t* emu, void* cb) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->CRYPTO_set_locking_callback(find_lock_func_Fct(cb)); } EXPORT void my_PEM_read_bio_DSAPrivateKey(x64emu_t* emu, void* bp, void* x, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->PEM_read_bio_DSAPrivateKey(bp, x, find_passphrase_Fct(cb), u); } EXPORT void my_PEM_read_bio_DSA_PUBKEY(x64emu_t* emu, void* bp, void* x, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->PEM_read_bio_DSA_PUBKEY(bp, x, find_passphrase_Fct(cb), u); } EXPORT void my_PEM_read_bio_RSAPrivateKey(x64emu_t* emu, void* bp, void* x, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->PEM_read_bio_RSAPrivateKey(bp, x, find_passphrase_Fct(cb), u); } EXPORT void my_PEM_read_bio_RSA_PUBKEY(x64emu_t* emu, void* bp, void* x, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->PEM_read_bio_RSA_PUBKEY(bp, x, find_passphrase_Fct(cb), u); } EXPORT void my_PEM_read_bio_ECPrivateKey(x64emu_t* emu, void* bp, void* x, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->PEM_read_bio_ECPrivateKey(bp, x, find_passphrase_Fct(cb), u); } EXPORT void my_PEM_read_bio_EC_PUBKEY(x64emu_t* emu, void* bp, void* x, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->PEM_read_bio_EC_PUBKEY(bp, x, find_passphrase_Fct(cb), u); } EXPORT int my_PEM_write_bio_DSAPrivateKey(x64emu_t* emu, void* bp, void* x, void* e, void* str, int len, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - return my->PEM_write_bio_DSAPrivateKey(bp, x, e, str, len, find_passphrase_Fct(cb), u); } EXPORT int my_PEM_write_bio_RSAPrivateKey(x64emu_t* emu, void* bp, void* x, void* e, void* str, int len, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - return my->PEM_write_bio_RSAPrivateKey(bp, x, e, str, len, find_passphrase_Fct(cb), u); } EXPORT int my_PEM_write_bio_ECPrivateKey(x64emu_t* emu, void* bp, void* x, void* e, void* str, int len, void* cb, void* u) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - return my->PEM_write_bio_ECPrivateKey(bp, x, e, str, len, find_passphrase_Fct(cb), u); } EXPORT void* my_sk_new(x64emu_t* emu, void* f) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - return my->sk_new(find_cmp_fnc_Fct(f)); } EXPORT void my_sk_pop_free(x64emu_t* emu, void* st, void* f) { + (void)emu; crypto_my_t *my = (crypto_my_t*)my_lib->priv.w.p2; - my->sk_pop_free(st, find_free_fnc_Fct(f)); } diff --git a/src/wrapped/wrappedcurl.c b/src/wrapped/wrappedcurl.c index 9bb7867d..e7955c1b 100755 --- a/src/wrapped/wrappedcurl.c +++ b/src/wrapped/wrappedcurl.c @@ -48,8 +48,8 @@ void* getCurlMy(library_t* lib) void freeCurlMy(void* lib) { + (void)lib; // curl_my_t *my = (curl_my_t *)lib; - } #undef SUPER @@ -489,6 +489,7 @@ static void* find_progress_Fct(void* fct) EXPORT uint32_t my_curl_easy_setopt(x64emu_t* emu, void* handle, uint32_t option, void* param) { + (void)emu; curl_my_t *my = (curl_my_t*)my_lib->priv.w.p2; switch(option) { @@ -559,4 +560,3 @@ EXPORT uint32_t my_curl_easy_setopt(x64emu_t* emu, void* handle, uint32_t option my_lib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappeddbus.c b/src/wrapped/wrappeddbus.c index 3db5a8da..643d15a9 100755 --- a/src/wrapped/wrappeddbus.c +++ b/src/wrapped/wrappeddbus.c @@ -68,6 +68,7 @@ static void* getDBusMy(library_t* lib) static void freeDBusMy(void* lib) { + (void)lib; //dbus_my_t *my = (dbus_my_t *)lib; } @@ -398,6 +399,7 @@ static void* finddbus_internal_padFct(void* fct) EXPORT void my_dbus_timeout_set_data(x64emu_t* emu, void* e, void* p, void* f) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my->dbus_timeout_set_data(e, p, find_DBusFreeFunction_Fct(f)); } @@ -405,6 +407,7 @@ EXPORT void my_dbus_timeout_set_data(x64emu_t* emu, void* e, void* p, void* f) EXPORT int32_t my_dbus_connection_set_timeout_functions(x64emu_t* emu, void* c, void* a, void* r, void* t, void* d, void* f) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_connection_set_timeout_functions(c, @@ -416,18 +419,21 @@ EXPORT int32_t my_dbus_connection_set_timeout_functions(x64emu_t* emu, void* c, EXPORT int my_dbus_connection_add_filter(x64emu_t* emu, void* connection, void* fnc, void* data, void* fr) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_connection_add_filter(connection, find_DBusHandleMessageFunction_Fct(fnc), data, find_DBusFreeFunction_Fct(fr)); } EXPORT void my_dbus_connection_remove_filter(x64emu_t* emu, void* connection, void* fnc, void* data) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my->dbus_connection_remove_filter(connection, find_DBusHandleMessageFunction_Fct(fnc), data); } EXPORT int my_dbus_message_get_args_valist(x64emu_t* emu, void* message, void* e, int arg, x64_va_list_t b) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; CONVERT_VALIST(b); return my->dbus_message_get_args_valist(message, e, arg, VARARGS); @@ -435,6 +441,7 @@ EXPORT int my_dbus_message_get_args_valist(x64emu_t* emu, void* message, void* e /*EXPORT int my_dbus_message_get_args(x64emu_t* emu, void* message, void* e, int arg, uint64_t* V) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_message_get_args_valist(message, e, arg, V); @@ -442,6 +449,7 @@ EXPORT int my_dbus_message_get_args_valist(x64emu_t* emu, void* message, void* e EXPORT int my_dbus_message_set_data(x64emu_t* emu, void* message, int32_t slot, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_message_set_data(message, slot, data, find_DBusFreeFunction_Fct(free_func)); @@ -449,6 +457,7 @@ EXPORT int my_dbus_message_set_data(x64emu_t* emu, void* message, int32_t slot, EXPORT int my_dbus_pending_call_set_notify(x64emu_t* emu, void* pending, void* func, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_pending_call_set_notify(pending, findDBusPendingCallNotifyFunctionFct(func), data, find_DBusFreeFunction_Fct(free_func)); @@ -456,6 +465,7 @@ EXPORT int my_dbus_pending_call_set_notify(x64emu_t* emu, void* pending, void* f EXPORT int my_dbus_pending_call_set_data(x64emu_t* emu, void* pending, int32_t slot, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_pending_call_set_data(pending, slot, data, find_DBusFreeFunction_Fct(free_func)); @@ -463,6 +473,7 @@ EXPORT int my_dbus_pending_call_set_data(x64emu_t* emu, void* pending, int32_t s EXPORT void my_dbus_watch_set_data(x64emu_t* emu, void* watch, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my->dbus_watch_set_data(watch, data, find_DBusFreeFunction_Fct(free_func)); @@ -470,6 +481,7 @@ EXPORT void my_dbus_watch_set_data(x64emu_t* emu, void* watch, void* data, void* EXPORT void my_dbus_connection_set_dispatch_status_function(x64emu_t* emu, void* connection, void* dispatch, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my->dbus_connection_set_dispatch_status_function(connection, findDBusDispatchStatusFunctionFct(dispatch), data, find_DBusFreeFunction_Fct(free_func)); @@ -477,6 +489,7 @@ EXPORT void my_dbus_connection_set_dispatch_status_function(x64emu_t* emu, void* EXPORT int my_dbus_connection_set_watch_functions(x64emu_t* emu, void* connection, void* add, void* remove, void* toggled, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_connection_set_watch_functions(connection, findDBusAddWatchFunctionFct(add), findDBusRemoveWatchFunctionFct(remove), findDBusWatchToggledFunctionFct(toggled), data, find_DBusFreeFunction_Fct(free_func)); @@ -494,6 +507,7 @@ typedef struct my_DBusObjectPathVTable_s EXPORT int my_dbus_connection_try_register_object_path(x64emu_t* emu, void* connection, void* path, my_DBusObjectPathVTable_t* vtable, void* data, void* error) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my_DBusObjectPathVTable_t vt = {0}; @@ -511,6 +525,7 @@ EXPORT int my_dbus_connection_try_register_object_path(x64emu_t* emu, void* conn EXPORT int my_dbus_connection_set_data(x64emu_t* emu, void* connection, int slot, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; return my->dbus_connection_set_data(connection, slot, data, find_DBusFreeFunction_Fct(free_func)); @@ -518,6 +533,7 @@ EXPORT int my_dbus_connection_set_data(x64emu_t* emu, void* connection, int slot EXPORT void my_dbus_connection_set_wakeup_main_function(x64emu_t* emu, void* connection, void* wakeup, void* data, void* free_func) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my->dbus_connection_set_wakeup_main_function(connection, find_DBusWakeupMainFunction_Fct(wakeup), data, find_DBusFreeFunction_Fct(free_func)); @@ -525,6 +541,7 @@ EXPORT void my_dbus_connection_set_wakeup_main_function(x64emu_t* emu, void* con EXPORT int my_dbus_connection_try_register_fallback(x64emu_t* emu, void* connection, void* path, my_DBusObjectPathVTable_t* vtable, void* data, void* error) { + (void)emu; dbus_my_t *my = (dbus_my_t*)my_lib->priv.w.p2; my_DBusObjectPathVTable_t vt = {0}; @@ -552,4 +569,3 @@ EXPORT int my_dbus_connection_try_register_fallback(x64emu_t* emu, void* connect my_lib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedfontconfig.c b/src/wrapped/wrappedfontconfig.c index 007d1bd5..5481fef7 100755 --- a/src/wrapped/wrappedfontconfig.c +++ b/src/wrapped/wrappedfontconfig.c @@ -34,6 +34,7 @@ void* getFontconfigMy(library_t* lib) { fontconfig_my_t* my = (fontconfig_my_t*)calloc(1, sizeof(fontconfig_my_t)); #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + (void)lib; // So many wrapping here SUPER() #undef GO return my; @@ -42,6 +43,7 @@ void* getFontconfigMy(library_t* lib) void freeFontconfigMy(void* lib) { + (void)lib; //fontconfig_my_t *my = (fontconfig_my_t *)lib; } @@ -53,4 +55,3 @@ void freeFontconfigMy(void* lib) free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedfreetype.c b/src/wrapped/wrappedfreetype.c index 25a25e47..f830e10b 100755 --- a/src/wrapped/wrappedfreetype.c +++ b/src/wrapped/wrappedfreetype.c @@ -83,6 +83,7 @@ void* getFreeTypeMy(library_t* lib) void freeFreeTypeMy(void* lib) { + (void)lib; //freetype_my_t *my = (freetype_my_t *)lib; } @@ -133,6 +134,7 @@ static void my_FT_Stream_CloseFunc(FT_StreamRec_t* stream) EXPORT int my_FT_Open_Face(x64emu_t* emu, void* library, FT_Open_Args_t* args, long face_index, void* aface) { + (void)emu; library_t* lib = GetLibInternal(freetypeName); freetype_my_t* my = (freetype_my_t*)lib->priv.w.p2; @@ -155,6 +157,7 @@ EXPORT int my_FT_Open_Face(x64emu_t* emu, void* library, FT_Open_Args_t* args, l EXPORT int my_FTC_Manager_New(x64emu_t* emu, void* l, uint32_t max_faces, uint32_t max_sizes, uintptr_t max_bytes, void* req, void* data, void* aman) { + (void)emu; library_t* lib = GetLibInternal(freetypeName); freetype_my_t* my = (freetype_my_t*)lib->priv.w.p2; diff --git a/src/wrapped/wrappedgnutls.c b/src/wrapped/wrappedgnutls.c index 287a1005..5ee86f8a 100755 --- a/src/wrapped/wrappedgnutls.c +++ b/src/wrapped/wrappedgnutls.c @@ -50,6 +50,7 @@ void* getGnutlsMy(library_t* lib) void freeGnutlsMy(void* lib) { + (void)lib; //gnutls_my_t *my = (gnutls_my_t *)lib; } @@ -114,21 +115,21 @@ static void* find_pullpush_Fct(void* fct) EXPORT void my_gnutls_global_set_log_function(x64emu_t* emu, void* f) { + (void)emu; gnutls_my_t *my = (gnutls_my_t*)my_lib->priv.w.p2; - my->gnutls_global_set_log_function(find_gnutls_log_Fct(f)); } EXPORT void my_gnutls_transport_set_pull_function(x64emu_t* emu, void* session, void* f) { + (void)emu; gnutls_my_t *my = (gnutls_my_t*)my_lib->priv.w.p2; - my->gnutls_transport_set_pull_function(session, find_pullpush_Fct(f)); } EXPORT void my_gnutls_transport_set_push_function(x64emu_t* emu, void* session, void* f) { + (void)emu; gnutls_my_t *my = (gnutls_my_t*)my_lib->priv.w.p2; - my->gnutls_transport_set_push_function(session, find_pullpush_Fct(f)); } @@ -142,4 +143,3 @@ EXPORT void my_gnutls_transport_set_push_function(x64emu_t* emu, void* session, free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlib_init.h b/src/wrapped/wrappedlib_init.h index 3f946286..cd59efe1 100755 --- a/src/wrapped/wrappedlib_init.h +++ b/src/wrapped/wrappedlib_init.h @@ -84,7 +84,9 @@ static const map_onedata_t MAPNAME(mydatamap)[] = { int FUNC(_init)(library_t* lib, box64context_t* box64) { -// Init first + (void)box64; + + // Init first free(lib->path); lib->path=NULL; #ifdef PRE_INIT PRE_INIT diff --git a/src/wrapped/wrappedlibasound.c b/src/wrapped/wrappedlibasound.c index acb5f3de..13885062 100755 --- a/src/wrapped/wrappedlibasound.c +++ b/src/wrapped/wrappedlibasound.c @@ -30,6 +30,7 @@ typedef int (*iFpppp_t) (void*, void*, void*, void*); EXPORT uintptr_t my_snd_lib_error = 0; static void default_error_handler(const char *file, int line, const char *function, int err, const char *fmt, va_list ap) { + (void)file; (void)line; (void)function; (void)err; vprintf(fmt, ap); } @@ -53,13 +54,14 @@ void* getAsoundMy(library_t* lib) #undef GO // setup custom error handler my_snd_lib_error = AddCheckBridge(my_context->system, vFpipipV, default_error_handler, 0, "ASoundCustomErrorHandler"); - //all done + // all done return my; } #undef SUPER void freeAsoundMy(void* lib) { + (void)lib; // asound_my_t *my = (asound_my_t *)lib; my_snd_lib_error = 0; // no removing of bridge } @@ -111,6 +113,7 @@ EXPORT int my_snd_async_add_pcm_handler(x64emu_t *emu, void *handler, void* pcm, static void* current_error_handler = NULL; static void dummy_error_handler(const char *file, int line, const char *function, int err, const char *fmt, ...) { + (void)function; (void)err; va_list ap; fprintf(ftrace, "Warning: this is a dummy snd_lib error handler\n"); @@ -123,6 +126,7 @@ static void dummy_error_handler(const char *file, int line, const char *function static void empty_error_handler(const char *file, int line, const char *function, int err, const char *fmt, ...) { + (void)file; (void)line; (void)function; (void)err; (void)fmt; // do nothing } @@ -133,7 +137,7 @@ EXPORT int my_snd_lib_error_set_handler(x64emu_t* emu, void* handler) void *error_handler; uint8_t *code = (uint8_t *)handler; if (code) { - if (code && ((code[0] == 0xC3) || ((code[0] == 0xF3) && (code[1] == 0xC3)))) { + if ((code[0] == 0xC3) || ((code[0] == 0xF3) && (code[1] == 0xC3))) { error_handler = &empty_error_handler; } else { error_handler = &dummy_error_handler; @@ -175,4 +179,3 @@ EXPORT void* my_snd_dlsym(x64emu_t* emu, void* handle, void* name, void* version free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index 09b52edd..881d57ce 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -110,6 +110,7 @@ void* getLIBCMy(library_t* lib) void freeLIBCMy(void* lib) { + (void)lib; // empty for now } @@ -339,6 +340,7 @@ int32_t my___libc_start_main(x64emu_t* emu, int *(main) (int, char * *, char * * EXPORT void my___libc_init_first(x64emu_t* emu, int argc, char* arg0, char** b) { // do nothing specific for now + (void)emu; (void)argc; (void)arg0; (void)b; return; } uintptr_t my_syscall(x64emu_t *emu); // implemented in x64syscall.c @@ -354,11 +356,13 @@ void EXPORT my___stack_chk_fail(x64emu_t* emu) } void EXPORT my___gmon_start__(x64emu_t *emu) { + (void)emu; printf_log(LOG_DEBUG, "__gmon_start__ called (dummy call)\n"); } -int EXPORT my___cxa_atexit(x64emu_t* emu, void* p, void* a, void* d) +int EXPORT my___cxa_atexit(x64emu_t* emu, void* p, void* a, void* dso_handle) { + (void)dso_handle; AddCleanup1Arg(emu, p, a); return 0; } @@ -516,13 +520,13 @@ int of_unconvert(int a) } #undef SUPER -EXPORT void* my__ZGTtnaX (size_t a) { printf("warning _ZGTtnaX called\n"); return NULL; } -EXPORT void my__ZGTtdlPv (void* a) { printf("warning _ZGTtdlPv called\n"); } -EXPORT uint8_t my__ITM_RU1(const uint8_t * a) { printf("warning _ITM_RU1 called\n"); return 0; } -EXPORT uint32_t my__ITM_RU4(const uint32_t * a) { printf("warning _ITM_RU4 called\n"); return 0; } -EXPORT uint64_t my__ITM_RU8(const uint64_t * a) { printf("warning _ITM_RU8 called\n"); return 0; } -EXPORT void my__ITM_memcpyRtWn(void * a, const void * b, size_t c) {printf("warning _ITM_memcpyRtWn called\n"); } -EXPORT void my__ITM_memcpyRnWt(void * a, const void * b, size_t c) {printf("warning _ITM_memcpyRtWn called\n"); } +EXPORT void* my__ZGTtnaX (size_t a) { (void)a; printf("warning _ZGTtnaX called\n"); return NULL; } +EXPORT void my__ZGTtdlPv (void* a) { (void)a; printf("warning _ZGTtdlPv called\n"); } +EXPORT uint8_t my__ITM_RU1(const uint8_t * a) { (void)a; printf("warning _ITM_RU1 called\n"); return 0; } +EXPORT uint32_t my__ITM_RU4(const uint32_t * a) { (void)a; printf("warning _ITM_RU4 called\n"); return 0; } +EXPORT uint64_t my__ITM_RU8(const uint64_t * a) { (void)a; printf("warning _ITM_RU8 called\n"); return 0; } +EXPORT void my__ITM_memcpyRtWn(void * a, const void * b, size_t c) { (void)a; (void)b; (void)c; printf("warning _ITM_memcpyRtWn called\n"); } +EXPORT void my__ITM_memcpyRnWt(void * a, const void * b, size_t c) { (void)a; (void)b; (void)c; printf("warning _ITM_memcpyRnWt called\n"); } EXPORT void my_longjmp(x64emu_t* emu, /*struct __jmp_buf_tag __env[1]*/void *p, int32_t __val); EXPORT void my__longjmp(x64emu_t* emu, /*struct __jmp_buf_tag __env[1]*/void *p, int32_t __val) __attribute__((alias("my_longjmp"))); @@ -540,18 +544,21 @@ EXPORT int my_printf(x64emu_t *emu, void* fmt, void* b) { } EXPORT int my___printf_chk(x64emu_t *emu, int chk, void* fmt, void* b) { + (void)chk; myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 2); PREPARE_VALIST; return vprintf((const char*)fmt, VARARGS); } EXPORT int my_vprintf(x64emu_t *emu, void* fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); return vprintf(fmt, VARARGS); } EXPORT int my___vprintf_chk(x64emu_t *emu, void* fmt, x64_va_list_t b) __attribute__((alias("my_vprintf"))); EXPORT int my_vfprintf(x64emu_t *emu, void* F, void* fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); return vfprintf(F, fmt, VARARGS); } @@ -564,6 +571,7 @@ EXPORT int my_fprintf(x64emu_t *emu, void* F, void* fmt, void* b) { return vfprintf(F, fmt, VARARGS); } EXPORT int my___fprintf_chk(x64emu_t *emu, void* F, int flag, void* fmt, void* b) { + (void)flag; myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 3); PREPARE_VALIST; return vfprintf(F, fmt, VARARGS); @@ -646,6 +654,7 @@ EXPORT int my_snprintf(x64emu_t* emu, void* buff, size_t s, void * fmt, uint64_t EXPORT int my___snprintf(x64emu_t* emu, void* buff, size_t s, void * fmt, uint64_t * b) __attribute__((alias("my_snprintf"))); EXPORT int my___snprintf_chk(x64emu_t* emu, void* buff, size_t s, int flags, size_t maxlen, void * fmt, uint64_t * b) { + (void)flags; (void)maxlen; myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 5); PREPARE_VALIST; int r = vsnprintf(buff, s, fmt, VARARGS); @@ -658,6 +667,7 @@ EXPORT int my_sprintf(x64emu_t* emu, void* buff, void * fmt, void * b) { return vsprintf(buff, (const char*)fmt, VARARGS); } EXPORT int my___sprintf_chk(x64emu_t* emu, void* buff, int flag, size_t l, void * fmt, void * b) { + (void)flag; (void)l; myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4); PREPARE_VALIST; return vsprintf(buff, (const char*)fmt, VARARGS); @@ -678,31 +688,29 @@ EXPORT int my___asprintf(x64emu_t* emu, void** buff, void * fmt, void * b, va_li #endif EXPORT int my_vasprintf(x64emu_t* emu, char** buff, void* fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); - return vasprintf(buff, fmt, VARARGS); } EXPORT int my_vsprintf(x64emu_t* emu, void* buff, void * fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); - return vsprintf(buff, fmt, VARARGS); } EXPORT int my___vsprintf_chk(x64emu_t* emu, void* buff, void * fmt, x64_va_list_t b) __attribute__((alias("my_vsprintf"))); EXPORT int my_vfscanf(x64emu_t* emu, void* stream, void* fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); - return vfscanf(stream, fmt, VARARGS); } - - EXPORT int my_vsscanf(x64emu_t* emu, void* stream, void* fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); - return vsscanf(stream, fmt, VARARGS); } @@ -738,6 +746,7 @@ EXPORT int my___isoc99_sscanf(x64emu_t* emu, void* stream, void* fmt, uint64_t* } EXPORT int my_vsnprintf(x64emu_t* emu, void* buff, size_t s, void * fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); int r = vsnprintf(buff, s, fmt, VARARGS); return r; @@ -763,6 +772,7 @@ EXPORT int my_vasprintf(x64emu_t* emu, void* strp, void* fmt, void* b, va_list V #endif EXPORT int my___vasprintf_chk(x64emu_t* emu, void* buff, int flags, void* fmt, x64_va_list_t b) { + (void)emu; (void)flags; CONVERT_VALIST(b); int r = vasprintf(buff, fmt, VARARGS); return r; @@ -781,6 +791,7 @@ EXPORT int my___asprintf_chk(x64emu_t* emu, void* result_ptr, int flags, void* f } #endif EXPORT int my_vswprintf(x64emu_t* emu, void* buff, size_t s, void * fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b); int r = vswprintf(buff, s, fmt, VARARGS); return r; @@ -828,6 +839,7 @@ EXPORT void my_syslog(x64emu_t* emu, int priority, const char* fmt, uint64_t* b) } EXPORT void my___syslog_chk(x64emu_t* emu, int priority, int flags, const char* fmt, uint64_t* b) { + (void)flags; myStackAlign(emu, fmt, b, emu->scratch, R_EAX, 3); PREPARE_VALIST; return vsyslog(priority, fmt, VARARGS); @@ -835,6 +847,8 @@ EXPORT void my___syslog_chk(x64emu_t* emu, int priority, int flags, const char* EXPORT int my___swprintf_chk(x64emu_t* emu, void* s, size_t n, int32_t flag, size_t slen, void* fmt, uint64_t* b) { + (void)flag; + (void)slen; myStackAlignW(emu, (const char*)fmt, b, emu->scratch, R_EAX, 5); PREPARE_VALIST; return vswprintf(s, n, (const wchar_t*)fmt, VARARGS); @@ -856,15 +870,17 @@ EXPORT void my__ITM_addUserCommitAction(x64emu_t* emu, void* cb, uint32_t b, voi my->_ITM_addUserCommitAction(libc1ArgCallback, b, cbemu); // should keep track of cbemu to remove at some point... #else + (void)emu; (void)cb; (void)b; (void)c; printf("warning _ITM_addUserCommitAction called\n"); #endif } -EXPORT void my__ITM_registerTMCloneTable(x64emu_t* emu, void* p, uint32_t s) {} -EXPORT void my__ITM_deregisterTMCloneTable(x64emu_t* emu, void* p) {} +EXPORT void my__ITM_registerTMCloneTable(x64emu_t* emu, void* p, uint32_t s) { (void)emu; (void)p; (void)s; } +EXPORT void my__ITM_deregisterTMCloneTable(x64emu_t* emu, void* p) { (void)emu; (void)p; } EXPORT int my___fxstat(x64emu_t *emu, int vers, int fd, void* buf) { + (void)emu; (void)vers; struct stat64 st; int r = fstat64(fd, &st); UnalignStat64(&st, buf); @@ -873,6 +889,7 @@ EXPORT int my___fxstat(x64emu_t *emu, int vers, int fd, void* buf) EXPORT int my___fxstat64(x64emu_t *emu, int vers, int fd, void* buf) { + (void)emu; (void)vers; struct stat64 st; int r = fstat64(fd, &st); //int r = syscall(__NR_stat64, fd, &st); @@ -882,6 +899,7 @@ EXPORT int my___fxstat64(x64emu_t *emu, int vers, int fd, void* buf) EXPORT int my___xstat(x64emu_t* emu, int v, void* path, void* buf) { + (void)emu; (void)v; struct stat64 st; int r = stat64((const char*)path, &st); UnalignStat64(&st, buf); @@ -890,6 +908,7 @@ EXPORT int my___xstat(x64emu_t* emu, int v, void* path, void* buf) EXPORT int my___xstat64(x64emu_t* emu, int v, void* path, void* buf) { + (void)emu; (void)v; struct stat64 st; int r = stat64((const char*)path, &st); UnalignStat64(&st, buf); @@ -898,6 +917,7 @@ EXPORT int my___xstat64(x64emu_t* emu, int v, void* path, void* buf) EXPORT int my___lxstat(x64emu_t* emu, int v, void* name, void* buf) { + (void)emu; (void)v; struct stat64 st; int r = lstat64((const char*)name, &st); UnalignStat64(&st, buf); @@ -906,6 +926,7 @@ EXPORT int my___lxstat(x64emu_t* emu, int v, void* name, void* buf) EXPORT int my___lxstat64(x64emu_t* emu, int v, void* name, void* buf) { + (void)emu; (void)v; struct stat64 st; int r = lstat64((const char*)name, &st); UnalignStat64(&st, buf); @@ -914,6 +935,7 @@ EXPORT int my___lxstat64(x64emu_t* emu, int v, void* name, void* buf) EXPORT int my___fxstatat(x64emu_t* emu, int v, int d, void* path, void* buf, int flags) { + (void)emu; (void)v; struct stat64 st; int r = fstatat64(d, path, &st, flags); UnalignStat64(&st, buf); @@ -922,6 +944,7 @@ EXPORT int my___fxstatat(x64emu_t* emu, int v, int d, void* path, void* buf, int EXPORT int my___fxstatat64(x64emu_t* emu, int v, int d, void* path, void* buf, int flags) { + (void)emu; (void)v; struct stat64 st; int r = fstatat64(d, path, &st, flags); UnalignStat64(&st, buf); @@ -979,20 +1002,24 @@ EXPORT void my_qsort_r(x64emu_t* emu, void* base, size_t nmemb, size_t size, voi } EXPORT void* my_bsearch(x64emu_t* emu, void* key, void* base, size_t nmemb, size_t size, void* fnc) { + (void)emu; return bsearch(key, base, nmemb, size, findcompareFct(fnc)); } EXPORT void* my_lsearch(x64emu_t* emu, void* key, void* base, size_t* nmemb, size_t size, void* fnc) { + (void)emu; return lsearch(key, base, nmemb, size, findcompareFct(fnc)); } EXPORT void* my_lfind(x64emu_t* emu, void* key, void* base, size_t* nmemb, size_t size, void* fnc) { + (void)emu; return lfind(key, base, nmemb, size, findcompareFct(fnc)); } EXPORT void* my_fts_open(x64emu_t* emu, void* path, int options, void* c) { + (void)emu; return fts_open(path, options, findcompareFct(c)); } #if 0 @@ -1247,13 +1274,13 @@ EXPORT int32_t my_open(x64emu_t* emu, void* pathname, int32_t flags, uint32_t mo } EXPORT int32_t my___open(x64emu_t* emu, void* pathname, int32_t flags, uint32_t mode) __attribute__((alias("my_open"))); -#ifdef DYNAREC +//#ifdef DYNAREC //static int hasDBFromAddress(uintptr_t addr) //{ // int idx = (addr>>DYNAMAP_SHIFT); // return getDB(idx)?1:0; //} -#endif +//#endif //EXPORT int32_t my_read(int fd, void* buf, uint32_t count) //{ @@ -1440,24 +1467,28 @@ EXPORT int32_t my_epoll_wait(x64emu_t* emu, int32_t epfd, void* events, int32_t #endif EXPORT int32_t my_glob64(x64emu_t *emu, void* pat, int32_t flags, void* errfnc, void* pglob) { + (void)emu; return glob64(pat, flags, findgloberrFct(errfnc), pglob); } EXPORT int32_t my_glob(x64emu_t *emu, void* pat, int32_t flags, void* errfnc, void* pglob) __attribute__((alias("my_glob64"))); EXPORT int my_scandir64(x64emu_t *emu, void* dir, void* namelist, void* sel, void* comp) { + (void)emu; return scandir64(dir, namelist, findfilter64Fct(sel), findcompare64Fct(comp)); } EXPORT int my_scandir(x64emu_t *emu, void* dir, void* namelist, void* sel, void* comp) __attribute__((alias("my_scandir64"))); EXPORT int my_ftw64(x64emu_t* emu, void* filename, void* func, int descriptors) { + (void)emu; return ftw64(filename, findftw64Fct(func), descriptors); } EXPORT int my_ftw(x64emu_t* emu, void* filename, void* func, int descriptors) __attribute__((alias("my_ftw64"))); EXPORT int32_t my_nftw64(x64emu_t* emu, void* pathname, void* B, int32_t nopenfd, int32_t flags) { + (void)emu; return nftw64(pathname, findnftw64Fct(B), nopenfd, flags); } @@ -1604,12 +1635,14 @@ EXPORT void my__Jv_RegisterClasses() {} EXPORT int32_t my___cxa_thread_atexit_impl(x64emu_t* emu, void* dtor, void* obj, void* dso) { + (void)emu; printf_log(LOG_INFO, "Warning, call to __cxa_thread_atexit_impl(%p, %p, %p) ignored\n", dtor, obj, dso); return 0; } EXPORT int32_t my___register_atfork(x64emu_t *emu, void* prepare, void* parent, void* child, void* handle) { + (void)emu; // this is partly incorrect, because the emulated funcionts should be executed by actual fork and not by my_atfork... if(my_context->atfork_sz==my_context->atfork_cap) { my_context->atfork_cap += 4; @@ -1642,6 +1675,7 @@ EXPORT int32_t my___poll_chk(void* a, uint32_t b, int c, int l) #endif EXPORT int32_t my_fcntl64(x64emu_t* emu, int32_t a, int32_t b, void* c) { + (void)emu; if(b==F_SETFL) c = (void*)(uintptr_t)of_convert((intptr_t)c); #if 0 @@ -1663,6 +1697,7 @@ EXPORT int32_t my_fcntl64(x64emu_t* emu, int32_t a, int32_t b, void* c) EXPORT int32_t my_fcntl(x64emu_t* emu, int32_t a, int32_t b, void* c) { + (void)emu; if(b==F_SETFL && (intptr_t)c==0xFFFFF7FF) { // special case for ~O_NONBLOCK... int flags = fcntl(a, F_GETFL); @@ -1790,9 +1825,11 @@ void stSetup(box64context_t* context) EXPORT void my___register_frame_info(void* a, void* b) { // nothing + (void)a; (void)b; } EXPORT void* my___deregister_frame_info(void* a) { + (void)a; return NULL; } @@ -1854,6 +1891,7 @@ EXPORT int32_t my_setjmp(x64emu_t* emu, /*struct __jmp_buf_tag __env[1]*/void *p EXPORT void my___explicit_bzero_chk(x64emu_t* emu, void* dst, uint32_t len, uint32_t dstlen) { + (void)emu; (void)dstlen; memset(dst, 0, len); } @@ -1868,6 +1906,7 @@ EXPORT void* my_realpath(x64emu_t* emu, void* path, void* resolved_path) EXPORT void* my_mmap64(x64emu_t* emu, void *addr, unsigned long length, int prot, int flags, int fd, int64_t offset) { + (void)emu; if(prot&PROT_WRITE) prot|=PROT_READ; // PROT_READ is implicit with PROT_WRITE on i386 if(box64_log<LOG_DEBUG) {dynarec_log(LOG_DEBUG, "mmap64(%p, %lu, 0x%x, 0x%x, %d, %ld) =>", addr, length, prot, flags, fd, offset);} @@ -1905,6 +1944,7 @@ EXPORT void* my_mmap(x64emu_t* emu, void *addr, unsigned long length, int prot, EXPORT void* my_mremap(x64emu_t* emu, void* old_addr, size_t old_size, size_t new_size, int flags, void* new_addr) { + (void)emu; dynarec_log(LOG_DEBUG, "mremap(%p, %lu, %lu, %d, %p)=>", old_addr, old_size, new_size, flags, new_addr); void* ret = mremap(old_addr, old_size, new_size, flags, new_addr); dynarec_log(LOG_DEBUG, "%p\n", ret); @@ -1954,6 +1994,7 @@ EXPORT void* my_mremap(x64emu_t* emu, void* old_addr, size_t old_size, size_t ne EXPORT int my_munmap(x64emu_t* emu, void* addr, unsigned long length) { + (void)emu; dynarec_log(LOG_DEBUG, "munmap(%p, %lu)\n", addr, length); #ifdef DYNAREC if(box64_dynarec) { @@ -1968,9 +2009,10 @@ EXPORT int my_munmap(x64emu_t* emu, void* addr, unsigned long length) EXPORT int my_mprotect(x64emu_t* emu, void *addr, unsigned long len, int prot) { + (void)emu; dynarec_log(LOG_DEBUG, "mprotect(%p, %lu, 0x%x)\n", addr, len, prot); if(prot&PROT_WRITE) - prot|=PROT_READ; // PROT_READ is implicit with PROT_WRITE on i386 + prot|=PROT_READ; // PROT_READ is implicit with PROT_WRITE on x86_64 int ret = mprotect(addr, len, prot); #ifdef DYNAREC if(box64_dynarec) { @@ -2214,11 +2256,12 @@ EXPORT int my_backtrace(x64emu_t* emu, void** buffer, int size) EXPORT char** my_backtrace_symbols(x64emu_t* emu, uintptr_t* buffer, int size) { + (void)emu; char** ret = (char**)calloc(1, size*sizeof(char*) + size*100); // capping each strings to 100 chars char* s = (char*)(ret+size*sizeof(char*)); for (int i=0; i<size; ++i) { uintptr_t start = 0; - uint32_t sz = 0; + uint64_t sz = 0; const char* symbname = FindNearestSymbolName(FindElfAddress(my_context, buffer[i]), (void*)buffer[i], &start, &sz); if(symbname && buffer[i]>=start && (buffer[i]<(start+sz) || !sz)) snprintf(s, 100, "%s+%ld [%p]\n", symbname, buffer[i] - start, (void*)buffer[i]); @@ -2231,10 +2274,11 @@ EXPORT char** my_backtrace_symbols(x64emu_t* emu, uintptr_t* buffer, int size) EXPORT void my_backtrace_symbols_fd(x64emu_t* emu, uintptr_t* buffer, int size, int fd) { + (void)emu; char s[100]; for (int i=0; i<size; ++i) { uintptr_t start = 0; - uint32_t sz = 0; + uint64_t sz = 0; const char* symbname = FindNearestSymbolName(FindElfAddress(my_context, buffer[i]), (void*)buffer[i], &start, &sz); if(symbname && buffer[i]>=start && (buffer[i]<(start+sz) || !sz)) snprintf(s, 100, "%s+%ld [%p]\n", symbname, buffer[i] - start, (void*)buffer[i]); diff --git a/src/wrapped/wrappedlibdl.c b/src/wrapped/wrappedlibdl.c index 91732a61..0d9aa8cb 100755 --- a/src/wrapped/wrappedlibdl.c +++ b/src/wrapped/wrappedlibdl.c @@ -185,6 +185,7 @@ int my_dlsym_lib(library_t* lib, const char* rsymbol, uintptr_t *start, uintptr_ } void* my_dlsym(x64emu_t* emu, void *handle, void *symbol) { + (void)emu; dlprivate_t *dl = emu->context->dlprivate; uintptr_t start = 0, end = 0; char* rsymbol = (char*)symbol; @@ -228,7 +229,8 @@ void* my_dlsym(x64emu_t* emu, void *handle, void *symbol) } size_t nlib = (size_t)handle; --nlib; - if(nlib<0 || nlib>=dl->lib_sz) { + // size_t is unsigned + if(nlib>=dl->lib_sz) { if(!dl->last_error) dl->last_error = malloc(129); snprintf(dl->last_error, 129, "Bad handle %p)\n", handle); @@ -295,6 +297,7 @@ void* my_dlsym(x64emu_t* emu, void *handle, void *symbol) } int my_dlclose(x64emu_t* emu, void *handle) { + (void)emu; if(dlsym_error || box64_log>=LOG_DEBUG) { printf_log(LOG_NONE, "Call to dlclose(%p)\n", handle); } @@ -302,7 +305,8 @@ int my_dlclose(x64emu_t* emu, void *handle) CLEARERR size_t nlib = (size_t)handle; --nlib; - if(nlib<0 || nlib>=dl->lib_sz) { + // size_t is unsigned + if(nlib>=dl->lib_sz) { if(!dl->last_error) dl->last_error = malloc(129); snprintf(dl->last_error, 129, "Bad handle %p)\n", handle); @@ -368,6 +372,7 @@ typedef struct link_map_s { int my_dlinfo(x64emu_t* emu, void* handle, int request, void* info) { + (void)emu; if(dlsym_error || box64_log>=LOG_DEBUG) { printf_log(LOG_NONE, "Call to dlinfo(%p, %d, %p)\n", handle, request, info); } @@ -375,7 +380,8 @@ int my_dlinfo(x64emu_t* emu, void* handle, int request, void* info) CLEARERR size_t nlib = (size_t)handle; --nlib; - if(nlib<0 || nlib>=dl->lib_sz) { + // size_t is unsigned + if(nlib>=dl->lib_sz) { if(!dl->last_error) dl->last_error = malloc(129); snprintf(dl->last_error, 129, "Bad handle %p)\n", handle); diff --git a/src/wrapped/wrappedlibglu.c b/src/wrapped/wrappedlibglu.c index be9a6023..afab9a21 100755 --- a/src/wrapped/wrappedlibglu.c +++ b/src/wrapped/wrappedlibglu.c @@ -45,6 +45,7 @@ void* getGLUMy(library_t* lib) void freeGLUMy(void* lib) { + (void)lib; //libglu_my_t *my = (libglu_my_t *)lib; } #undef SUPER @@ -136,11 +137,13 @@ static void* findglu_callback5Fct(void* fct) #define GLU_TESS_COMBINE_DATA 100111 void EXPORT my_gluQuadricCallback(x64emu_t* emu, void* a, int32_t b, void* cb) { + (void)emu; libglu_my_t *my = (libglu_my_t*)my_lib->priv.w.p2; my->gluQuadricCallback(a, b, findglu_callbackFct(cb)); } void EXPORT my_gluTessCallback(x64emu_t* emu, void* a, int32_t b, void* cb) { + (void)emu; libglu_my_t *my = (libglu_my_t*)my_lib->priv.w.p2; if(b==GLU_TESS_COMBINE) my->gluTessCallback(a, b, findglu_callback4Fct(cb)); @@ -151,6 +154,7 @@ void EXPORT my_gluTessCallback(x64emu_t* emu, void* a, int32_t b, void* cb) } void EXPORT my_gluNurbsCallback(x64emu_t* emu, void* a, int32_t b, void* cb) { + (void)emu; libglu_my_t *my = (libglu_my_t*)my_lib->priv.w.p2; my->gluNurbsCallback(a, b, findglu_callbackFct(cb)); } diff --git a/src/wrapped/wrappedlibpthread.c b/src/wrapped/wrappedlibpthread.c index d9b81d5b..d29218ed 100755 --- a/src/wrapped/wrappedlibpthread.c +++ b/src/wrapped/wrappedlibpthread.c @@ -61,6 +61,7 @@ const char* libpthreadName = "libpthread.so.0"; EXPORT int32_t my_pthread_atfork(x64emu_t *emu, void* prepare, void* parent, void* child) { + (void)emu; // this is partly incorrect, because the emulated functions should be executed by actual fork and not by my_atfork... if(my_context->atfork_sz==my_context->atfork_cap) { my_context->atfork_cap += 4; @@ -82,4 +83,3 @@ EXPORT void my___pthread_initialize() } #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibrt.c b/src/wrapped/wrappedlibrt.c index a6877c58..29fa375c 100755 --- a/src/wrapped/wrappedlibrt.c +++ b/src/wrapped/wrappedlibrt.c @@ -62,6 +62,7 @@ static void* findsigev_notifyFct(void* fct) EXPORT int my_timer_create(x64emu_t* emu, uint32_t clockid, void* sevp, timer_t* timerid) { + (void)emu; struct sigevent sevent; memcpy(&sevent, sevp, sizeof(sevent)); diff --git a/src/wrapped/wrappedlibsm.c b/src/wrapped/wrappedlibsm.c index 75f08e98..06891111 100755 --- a/src/wrapped/wrappedlibsm.c +++ b/src/wrapped/wrappedlibsm.c @@ -49,6 +49,7 @@ void* getSMMy(library_t* lib) void freeSMMy(void* lib) { + (void)lib; //libsm_my_t *my = (libsm_my_t *)lib; } @@ -105,6 +106,7 @@ static void my_save_complete(void* smcConn, void* clientData) EXPORT void* my_SmcOpenConnection(x64emu_t* emu, void* networkIdsList, void* context, int major, int minor, unsigned long mask, my_SmcCallbacks_t* cb, void* previousId, void* clientIdRet, int errorLength, void* errorRet) { + (void)emu; libsm_my_t* my = (libsm_my_t*)GetLibInternal(libsmName)->priv.w.p2; my_SmcCallbacks_t nat = {0}; #define GO(A, B) if(mask&A) {my_##B##_fct = (uintptr_t)cb->B.callback; nat.B.callback = my_##B; nat.B.client_data=cb->B.client_data;} @@ -152,15 +154,15 @@ static void* findRequestFct(void* fct) EXPORT int my_SmcInteractRequest(x64emu_t* emu, void* smcConn, int f, void* cb, void* data) { + (void)emu; libsm_my_t* my = (libsm_my_t*)GetLibInternal(libsmName)->priv.w.p2; - return my->SmcInteractRequest(smcConn, f, findRequestFct(cb), data); } EXPORT int my_SmcRequestSaveYourselfPhase2(x64emu_t* emu, void* smcConn, void* cb, void* data) { + (void)emu; libsm_my_t* my = (libsm_my_t*)GetLibInternal(libsmName)->priv.w.p2; - return my->SmcRequestSaveYourselfPhase2(smcConn, findRequestFct(cb), data); } @@ -172,4 +174,3 @@ EXPORT int my_SmcRequestSaveYourselfPhase2(x64emu_t* emu, void* smcConn, void* c free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibssl.c b/src/wrapped/wrappedlibssl.c index 8bb38d76..9d3c9b5d 100755 --- a/src/wrapped/wrappedlibssl.c +++ b/src/wrapped/wrappedlibssl.c @@ -59,6 +59,7 @@ void* getSllMy(library_t* lib) void freeSllMy(void* lib) { + (void)lib; //libssl_my_t *my = (libssl_my_t *)lib; } @@ -267,57 +268,57 @@ static void* find_proto_select_Fct(void* fct) EXPORT void my_SSL_CTX_set_default_passwd_cb(x64emu_t* emu, void* ctx, void* cb) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - my->SSL_CTX_set_default_passwd_cb(ctx, find_pem_passwd_cb_Fct(cb)); } EXPORT long my_SSL_CTX_callback_ctrl(x64emu_t* emu, void* ctx, int cmd, void* f) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - return my->SSL_CTX_callback_ctrl(ctx, cmd, find_anonymous_Fct(f)); } EXPORT long my_SSL_callback_ctrl(x64emu_t* emu, void* ctx, int cmd, void* f) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - return my->SSL_callback_ctrl(ctx, cmd, find_anonymous_Fct(f)); } EXPORT void my_SSL_CTX_set_verify(x64emu_t* emu, void* ctx, int mode, void* f) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - my->SSL_CTX_set_verify(ctx, mode, find_verify_Fct(f)); } EXPORT void my_SSL_set_verify(x64emu_t* emu, void* ctx, int mode, void* f) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - my->SSL_set_verify(ctx, mode, find_verify_Fct(f)); } EXPORT void my_SSL_get_ex_new_index(x64emu_t* emu, long argl, void* argp, void* new_func, void* dup_func, void* free_func) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - my->SSL_get_ex_new_index(argl, argp, find_ex_new_Fct(new_func), find_ex_dup_Fct(dup_func), find_ex_free_Fct(free_func)); } EXPORT void my_SSL_set_psk_client_callback(x64emu_t* emu, void* ctx, void* cb) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - my->SSL_set_psk_client_callback(ctx, find_client_cb_Fct(cb)); } EXPORT void my_SSL_CTX_set_next_proto_select_cb(x64emu_t* emu, void* ctx, void* cb, void* arg) { + (void)emu; libssl_my_t* my = (libssl_my_t*)my_lib->priv.w.p2; - my->SSL_CTX_set_next_proto_select_cb(ctx, find_proto_select_Fct(cb), arg); } diff --git a/src/wrapped/wrappedlibvorbis.c b/src/wrapped/wrappedlibvorbis.c index ebe7ac68..c433be2b 100755 --- a/src/wrapped/wrappedlibvorbis.c +++ b/src/wrapped/wrappedlibvorbis.c @@ -29,12 +29,14 @@ void* getVorbisMy(library_t* lib) { vorbis_my_t* my = (vorbis_my_t*)calloc(1, sizeof(vorbis_my_t)); #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + (void)lib; // So many wrapped functions here too #undef GO return my; } void freeVorbisMy(void* lib) { + (void)lib; //vorbis_my_t *my = (vorbis_my_t *)lib; } @@ -48,4 +50,3 @@ void freeVorbisMy(void* lib) lib->context->vorbis = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibx11.c b/src/wrapped/wrappedlibx11.c index 1c6ca8f3..e0a8d43f 100755 --- a/src/wrapped/wrappedlibx11.c +++ b/src/wrapped/wrappedlibx11.c @@ -155,6 +155,7 @@ void* getX11My(library_t* lib) void freeX11My(void* lib) { + (void)lib; // x11_my_t *my = (x11_my_t *)lib; } #undef SUPER @@ -617,6 +618,7 @@ void BridgeImageFunc(x64emu_t *emu, XImage *img) void UnbridgeImageFunc(x64emu_t *emu, XImage *img) { + (void)emu; #define GO(A, W) \ fnc = GetNativeFnc((uintptr_t)img->f.A); \ if(fnc) \ diff --git a/src/wrapped/wrappedlibxext.c b/src/wrapped/wrappedlibxext.c index ab73af17..63182f2f 100755 --- a/src/wrapped/wrappedlibxext.c +++ b/src/wrapped/wrappedlibxext.c @@ -71,6 +71,7 @@ void* getXextMy(library_t* lib) void freeXextMy(void* lib) { + (void)lib; //xext_my_t *my = (xext_my_t *)lib; } @@ -155,6 +156,7 @@ EXPORT int32_t my_XShmGetImage(x64emu_t* emu, void* disp, void* drawable, void* EXPORT void* my_XSetExtensionErrorHandler(x64emu_t* emu, void* handler) { + (void)emu; xext_my_t *my = (xext_my_t*)my_lib->priv.w.p2; return reverse_exterrorhandleFct(my->XSetExtensionErrorHandler(find_exterrorhandle_Fct(handler))); } @@ -268,4 +270,3 @@ EXPORT int32_t my_XextAddDisplay(x64emu_t* emu, void* extinfo, void* dpy, void* my_lib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibxt.c b/src/wrapped/wrappedlibxt.c index 8b74258c..a0802a31 100755 --- a/src/wrapped/wrappedlibxt.c +++ b/src/wrapped/wrappedlibxt.c @@ -44,6 +44,7 @@ void* getXtMy(library_t* lib) void freeXtMy(void* lib) { + (void)lib; //libxt_my_t *my = (libxt_my_t *)lib; } @@ -82,6 +83,7 @@ static void* findEventFct(void* fct) EXPORT void my_XtAddEventHandler(x64emu_t* emu, void* w, uint32_t mask, int32_t maskable, void* cb, void* data) { + (void)emu; void* fct = findEventFct(cb); library_t* lib = GetLibInternal(libxtName); libxt_my_t* my = (libxt_my_t*)lib->priv.w.p2; @@ -101,4 +103,3 @@ EXPORT void my_XtAddEventHandler(x64emu_t* emu, void* w, uint32_t mask, int32_t free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibxtst.c b/src/wrapped/wrappedlibxtst.c index 4fae5d30..3c1ed488 100755 --- a/src/wrapped/wrappedlibxtst.c +++ b/src/wrapped/wrappedlibxtst.c @@ -45,6 +45,7 @@ void* getXtstMy(library_t* lib) void freeXtstMy(void* lib) { + (void)lib; //libxtst_my_t *my = (libxtst_my_t *)lib; } @@ -80,6 +81,7 @@ static void* find_XRecordInterceptProc_Fct(void* fct) EXPORT int my_XRecordEnableContextAsync(x64emu_t* emu, void* display, void* context, void* cb, void* closure) { + (void)emu; library_t* lib = GetLibInternal(libxtstName); libxtst_my_t* my = (libxtst_my_t*)lib->priv.w.p2; return my->XRecordEnableContextAsync(display, context, find_XRecordInterceptProc_Fct(cb), closure); @@ -87,6 +89,7 @@ EXPORT int my_XRecordEnableContextAsync(x64emu_t* emu, void* display, void* cont EXPORT int my_XRecordEnableContext(x64emu_t* emu, void* display, void* context, void* cb, void* closure) { + (void)emu; library_t* lib = GetLibInternal(libxtstName); libxtst_my_t* my = (libxtst_my_t*)lib->priv.w.p2; return my->XRecordEnableContext(display, context, find_XRecordInterceptProc_Fct(cb), closure); @@ -104,4 +107,3 @@ EXPORT int my_XRecordEnableContext(x64emu_t* emu, void* display, void* context, free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedlibz.c b/src/wrapped/wrappedlibz.c index 9a1cd6f3..81756501 100755 --- a/src/wrapped/wrappedlibz.c +++ b/src/wrapped/wrappedlibz.c @@ -40,6 +40,7 @@ void* getZMy(library_t* lib) void freeZMy(void* lib) { + (void)lib; //libz_my_t *my = (libz_my_t *)lib; } @@ -115,6 +116,7 @@ typedef struct z_stream_s { static void wrapper_stream_z(x64emu_t* emu, void* str) { + (void)emu; z_stream *stream = (z_stream*)str; stream->zalloc = find_alloc_Fct(stream->zalloc); stream->zfree = find_free_Fct(stream->zfree); diff --git a/src/wrapped/wrappedlzma.c b/src/wrapped/wrappedlzma.c index 8bfb5707..72be8f66 100755 --- a/src/wrapped/wrappedlzma.c +++ b/src/wrapped/wrappedlzma.c @@ -36,6 +36,7 @@ void* getLzmaMy(library_t* lib) { lzma_my_t* my = (lzma_my_t*)calloc(1, sizeof(lzma_my_t)); #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + (void)lib; // So many wrapped functions here SUPER() #undef GO return my; @@ -44,6 +45,7 @@ void* getLzmaMy(library_t* lib) void freeLzmaMy(void* lib) { + (void)lib; //lzma_my_t *my = (lzma_my_t *)lib; } @@ -57,4 +59,3 @@ void freeLzmaMy(void* lib) my_lib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedopenal.c b/src/wrapped/wrappedopenal.c index 27b1af20..6aa73f2f 100755 --- a/src/wrapped/wrappedopenal.c +++ b/src/wrapped/wrappedopenal.c @@ -46,6 +46,7 @@ void* getOpenALMy(library_t* lib) void freeOpenALMy(void* lib) { + (void)lib; //openal_my_t *my = (openal_my_t *)lib; } #define SUPER() \ @@ -214,13 +215,14 @@ EXPORT void* my_alcGetProcAddress(x64emu_t* emu, void* device, void* name) EXPORT void my_alRequestFoldbackStart(x64emu_t *emu, int32_t mode, int32_t count, int32_t length, void* mem, void* cb) { + (void)emu; openal_my_t* my = (openal_my_t*)GetLibInternal(libname)->priv.w.p2; my->alRequestFoldbackStart(mode, count, length, mem, find_Request_Fct(cb)); } EXPORT void my_alRequestFoldbackStop(x64emu_t* emu) { + (void)emu; openal_my_t* my = (openal_my_t*)GetLibInternal(libname)->priv.w.p2; my->alRequestFoldbackStop(); } - diff --git a/src/wrapped/wrappedpango.c b/src/wrapped/wrappedpango.c index c966d366..0e6569c9 100755 --- a/src/wrapped/wrappedpango.c +++ b/src/wrapped/wrappedpango.c @@ -45,6 +45,7 @@ void* getPangoMy(library_t* lib) void freePangoMy(void* lib) { + (void)lib; //pango_my_t *my = (pango_my_t *)lib; } @@ -112,8 +113,8 @@ static void* find_PangoAttrClass_Fct(my_PangoAttrClass_t* klass) EXPORT void my_pango_attribute_init(x64emu_t* emu, void* attr, my_PangoAttrClass_t* klass) { + (void)emu; pango_my_t* my = (pango_my_t*)my_lib->priv.w.p2; - my->pango_attribute_init(attr, find_PangoAttrClass_Fct(klass)); } diff --git a/src/wrapped/wrappedpulse.c b/src/wrapped/wrappedpulse.c index 81fb38c7..f0c9a14a 100755 --- a/src/wrapped/wrappedpulse.c +++ b/src/wrapped/wrappedpulse.c @@ -159,8 +159,8 @@ void* getPulseMy(library_t* lib) void freePulseMy(void* lib) { + (void)lib; //pulse_my_t *my = (pulse_my_t *)lib; - } // TODO: change that static for a map ptr2ptr? @@ -1508,4 +1508,3 @@ EXPORT void my_pa_log_level_meta(x64emu_t* emu, int level, void* file, int line, free(lib->priv.w.p2); #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedsdl1.c b/src/wrapped/wrappedsdl1.c index 8c1070ff..34d41708 100755 --- a/src/wrapped/wrappedsdl1.c +++ b/src/wrapped/wrappedsdl1.c @@ -80,6 +80,7 @@ void* getSDL1My(library_t* lib) void freeSDL1My(void* lib) { + (void)lib; //sdl1_my_t *my = (sdl1_my_t *)lib; } diff --git a/src/wrapped/wrappedsdl1mixer.c b/src/wrapped/wrappedsdl1mixer.c index b7933ecb..760f0f05 100755 --- a/src/wrapped/wrappedsdl1mixer.c +++ b/src/wrapped/wrappedsdl1mixer.c @@ -182,6 +182,7 @@ static void* find_MusicFinished_Fct(void* fct) static void freeSDL1MixerMy(library_t* lib) { + (void)lib; //sdl1mixer_my_t *my = lib->priv.w.p2; } @@ -261,4 +262,3 @@ const char* sdl1mixerName = "libSDL_mixer-1.2.so.0"; ((box64context_t*)(lib->context))->sdl1mixerlib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedsdl2.c b/src/wrapped/wrappedsdl2.c index 0c021103..5771d27c 100755 --- a/src/wrapped/wrappedsdl2.c +++ b/src/wrapped/wrappedsdl2.c @@ -99,7 +99,8 @@ void* getSDL2My(library_t* lib) void freeSDL2My(void* lib) { - /*sdl2_my_t *my = (sdl2_my_t *)lib;*/ + (void)lib; + //sdl2_my_t *my = (sdl2_my_t *)lib; } #undef SUPER @@ -550,6 +551,7 @@ EXPORT void my2_SDL_LogSetOutputFunction(x64emu_t* emu, void* f, void* arg) EXPORT int my2_SDL_vsnprintf(x64emu_t* emu, void* buff, size_t s, void * fmt, x64_va_list_t b) { + (void)emu; CONVERT_VALIST(b) int r = vsnprintf(buff, s, fmt, VARARGS); return r; @@ -840,13 +842,14 @@ EXPORT int64_t my2_SDL_IsJoystickHIDAPI(x64emu_t* emu, uint64_t a, uint64_t b) void* my_vkGetInstanceProcAddr(x64emu_t* emu, void* device, void* name); EXPORT void* my2_SDL_Vulkan_GetVkGetInstanceProcAddr(x64emu_t* emu) { -// sdl2_my_t *my = (sdl2_my_t *)emu->context->sdl2lib->priv.w.p2; + (void)emu; + //sdl2_my_t *my = (sdl2_my_t *)emu->context->sdl2lib->priv.w.p2; -// if(!emu->context->vkprocaddress) -// emu->context->vkprocaddress = (vkprocaddess_t)my->SDL_Vulkan_GetVkGetInstanceProcAddr(); + //if(!emu->context->vkprocaddress) + // emu->context->vkprocaddress = (vkprocaddess_t)my->SDL_Vulkan_GetVkGetInstanceProcAddr(); -// if(emu->context->vkprocaddress) -// return (void*)AddCheckBridge(my_context->sdl2lib->priv.w.bridge, pFEpp, my_vkGetInstanceProcAddr, 0); + //if(emu->context->vkprocaddress) + // return (void*)AddCheckBridge(my_context->sdl2lib->priv.w.bridge, pFEpp, my_vkGetInstanceProcAddr, 0); return NULL; } diff --git a/src/wrapped/wrappedsdl2mixer.c b/src/wrapped/wrappedsdl2mixer.c index e8901c5f..df4fc67f 100755 --- a/src/wrapped/wrappedsdl2mixer.c +++ b/src/wrapped/wrappedsdl2mixer.c @@ -57,7 +57,8 @@ static void* getSDL2MixerMy(library_t* lib) static void freeSDL2MixerMy(library_t* lib) { -// sdl2mixer_my_t *my = lib->priv.w.p2; + (void)lib; + //sdl2mixer_my_t *my = lib->priv.w.p2; } #undef SUPER @@ -281,4 +282,3 @@ const char* sdl2mixerName = "libSDL2_mixer-2.0.so.0"; ((box64context_t*)(lib->context))->sdl2mixerlib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedsdl2net.c b/src/wrapped/wrappedsdl2net.c index dcb3f7a8..ead8d048 100755 --- a/src/wrapped/wrappedsdl2net.c +++ b/src/wrapped/wrappedsdl2net.c @@ -23,6 +23,7 @@ static void* getSDL2NetMy(library_t* lib) { sdl2net_my_t* my = (sdl2net_my_t*)calloc(1, sizeof(sdl2net_my_t)); #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + (void)lib; // So many wrapped functions here #undef GO return my; } @@ -43,4 +44,3 @@ const char* sdl2netName = "libSDL2_net-2.0.so.0"; my_lib = NULL; #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedsmpeg.c b/src/wrapped/wrappedsmpeg.c index 47700059..0df09581 100755 --- a/src/wrapped/wrappedsmpeg.c +++ b/src/wrapped/wrappedsmpeg.c @@ -44,6 +44,7 @@ static void* getSMPEGMy(library_t* lib) static void freeSMPEGMy(void* lib) { + (void)lib; //smpeg_my_t *my = (smpeg_my_t *)lib; } @@ -80,6 +81,7 @@ static void* find_dispcallback_Fct(void* fct) EXPORT void my_SMPEG_setdisplay(x64emu_t* emu, void* mpeg, void* surf, void* lock, void* cb) { + (void)emu; library_t* lib = GetLibInternal(smpegName); smpeg_my_t* my = (smpeg_my_t*)lib->priv.w.p2; my->SMPEG_setdisplay(mpeg, surf, lock, find_dispcallback_Fct(cb)); @@ -103,4 +105,3 @@ EXPORT void* my_SMPEG_new_rwops(x64emu_t* emu, void* src, void* info, int32_t sd free(lib->priv.w.p2); \ #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedsmpeg2.c b/src/wrapped/wrappedsmpeg2.c index eac26700..05be193e 100755 --- a/src/wrapped/wrappedsmpeg2.c +++ b/src/wrapped/wrappedsmpeg2.c @@ -45,6 +45,7 @@ static void* getSMPEG2My(library_t* lib) static void freeSMPEG2My(void* lib) { + (void)lib; //smpeg2_my_t *my = (smpeg2_my_t *)lib; } @@ -82,6 +83,7 @@ static void* find_dispcallback_Fct(void* fct) EXPORT void my2_SMPEG_setdisplay(x64emu_t* emu, void* mpeg, void* cb, void* data, void* lock) { + (void)emu; library_t* lib = GetLibInternal(smpeg2Name); smpeg2_my_t* my = (smpeg2_my_t*)lib->priv.w.p2; my->SMPEG_setdisplay(mpeg, find_dispcallback_Fct(cb), data, lock); @@ -108,4 +110,3 @@ EXPORT void* my2_SMPEG_new_rwops(x64emu_t* emu, void* src, void* info, int32_t f free(lib->priv.w.p2); \ #include "wrappedlib_init.h" - diff --git a/src/wrapped/wrappedvorbisfile.c b/src/wrapped/wrappedvorbisfile.c index b342523e..aa276de3 100755 --- a/src/wrapped/wrappedvorbisfile.c +++ b/src/wrapped/wrappedvorbisfile.c @@ -48,6 +48,7 @@ void* getVorbisfileMy(library_t* lib) void freeVorbisfileMy(void* lib) { + (void)lib; //vorbisfile_my_t *my = (vorbisfile_my_t *)lib; } |