Module: wine Branch: master Commit: 7f88738fa6eb6b6b28958f9d69f44d7b2f999a3e URL: http://source.winehq.org/git/wine.git/?a=commit;h=7f88738fa6eb6b6b28958f9d69...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Dec 10 15:29:20 2009 +0100
dbghelp: Moved addr_to_linear() to stack.c.
---
dlls/dbghelp/Makefile.in | 1 - dlls/dbghelp/dbghelp_private.h | 1 - dlls/dbghelp/memory.c | 61 ---------------------------------------- dlls/dbghelp/stack.c | 29 +++++++++++++++++++ 4 files changed, 29 insertions(+), 63 deletions(-)
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in index a44d3c9..eaf0ae4 100644 --- a/dlls/dbghelp/Makefile.in +++ b/dlls/dbghelp/Makefile.in @@ -16,7 +16,6 @@ C_SRCS = \ elf_module.c \ image.c \ macho_module.c \ - memory.c \ minidump.c \ module.c \ msc.c \ diff --git a/dlls/dbghelp/dbghelp_private.h b/dlls/dbghelp/dbghelp_private.h index 4faae4d..cae3c95 100644 --- a/dlls/dbghelp/dbghelp_private.h +++ b/dlls/dbghelp/dbghelp_private.h @@ -441,7 +441,6 @@ extern BOOL elf_read_wine_loader_dbg_info(struct process* pcs); extern BOOL elf_synchronize_module_list(struct process* pcs); struct elf_thunk_area; extern int elf_is_in_thunk_area(unsigned long addr, const struct elf_thunk_area* thunks); -extern DWORD WINAPI addr_to_linear(HANDLE hProcess, HANDLE hThread, ADDRESS* addr);
/* macho_module.c */ #define MACHO_NO_MAP ((const void*)-1) diff --git a/dlls/dbghelp/memory.c b/dlls/dbghelp/memory.c deleted file mode 100644 index 6f64016..0000000 --- a/dlls/dbghelp/memory.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * File memory.c - managing memory - * - * Copyright (C) 2004, Eric Pouech - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "config.h" - -#include <assert.h> -#include "dbghelp_private.h" -#include "wine/debug.h" - -WINE_DEFAULT_DEBUG_CHANNEL(dbghelp); - -/****************************************************************** - * addr_to_linear - * - * converts an address into its linear value - */ -DWORD WINAPI addr_to_linear(HANDLE hProcess, HANDLE hThread, ADDRESS* addr) -{ - LDT_ENTRY le; - - switch (addr->Mode) - { - case AddrMode1616: - if (GetThreadSelectorEntry(hThread, addr->Segment, &le)) - return (le.HighWord.Bits.BaseHi << 24) + - (le.HighWord.Bits.BaseMid << 16) + le.BaseLow + LOWORD(addr->Offset); - break; - case AddrMode1632: - if (GetThreadSelectorEntry(hThread, addr->Segment, &le)) - return (le.HighWord.Bits.BaseHi << 24) + - (le.HighWord.Bits.BaseMid << 16) + le.BaseLow + addr->Offset; - break; - case AddrModeReal: - return (DWORD)(LOWORD(addr->Segment) << 4) + addr->Offset; - case AddrModeFlat: - return addr->Offset; - default: - FIXME("Unsupported (yet) mode (%x)\n", addr->Mode); - return 0; - } - FIXME("Failed to linearize address %04x:%08x (mode %x)\n", - addr->Segment, addr->Offset, addr->Mode); - return 0; -} diff --git a/dlls/dbghelp/stack.c b/dlls/dbghelp/stack.c index 3c66fcb..959ab64 100644 --- a/dlls/dbghelp/stack.c +++ b/dlls/dbghelp/stack.c @@ -56,6 +56,35 @@ static const char* wine_dbgstr_addr(const ADDRESS* addr) } }
+static DWORD WINAPI addr_to_linear(HANDLE hProcess, HANDLE hThread, ADDRESS* addr) +{ + LDT_ENTRY le; + + switch (addr->Mode) + { + case AddrMode1616: + if (GetThreadSelectorEntry(hThread, addr->Segment, &le)) + return (le.HighWord.Bits.BaseHi << 24) + + (le.HighWord.Bits.BaseMid << 16) + le.BaseLow + LOWORD(addr->Offset); + break; + case AddrMode1632: + if (GetThreadSelectorEntry(hThread, addr->Segment, &le)) + return (le.HighWord.Bits.BaseHi << 24) + + (le.HighWord.Bits.BaseMid << 16) + le.BaseLow + addr->Offset; + break; + case AddrModeReal: + return (DWORD)(LOWORD(addr->Segment) << 4) + addr->Offset; + case AddrModeFlat: + return addr->Offset; + default: + FIXME("Unsupported (yet) mode (%x)\n", addr->Mode); + return 0; + } + FIXME("Failed to linearize address %04x:%08x (mode %x)\n", + addr->Segment, addr->Offset, addr->Mode); + return 0; +} + static BOOL CALLBACK read_mem(HANDLE hProcess, DWORD addr, void* buffer, DWORD size, LPDWORD nread) {