VirtualBox

Changeset 58729 in vbox


Ignore:
Timestamp:
Nov 18, 2015 12:55:41 AM (9 years ago)
Author:
vboxsync
Message:

ldrPE.cpp: use iprt/formats/pecoff.h and name all machines listed by microsoft.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/ldr/ldrPE.cpp

    r58727 r58729  
    4949#endif
    5050#include <iprt/formats/codeview.h>
    51 #include "internal/ldrPE.h"
     51#include <iprt/formats/pecoff.h>
    5252#include "internal/ldr.h"
    5353
     
    602602
    603603
     604/* The image_thunk_data32/64 structures are not very helpful except for getting RSI. keep them around till all the code has been converted. */
     605typedef struct _IMAGE_THUNK_DATA32
     606{
     607    union
     608    {
     609        uint32_t  ForwarderString;
     610        uint32_t  Function;
     611        uint32_t  Ordinal;
     612        uint32_t  AddressOfData;
     613    } u1;
     614} IMAGE_THUNK_DATA32;
     615typedef IMAGE_THUNK_DATA32 *PIMAGE_THUNK_DATA32;
     616
     617
    604618/** @copydoc RTLDROPSPE::pfnResolveImports */
    605619static DECLCALLBACK(int) rtldrPEResolveImports32(PRTLDRMODPE pModPe, const void *pvBitsR, void *pvBitsW, PFNRTLDRIMPORT pfnGetImport, void *pvUser)
     
    677691    return rc;
    678692}
     693
     694
     695/* The image_thunk_data32/64 structures are not very helpful except for getting RSI. keep them around till all the code has been converted. */
     696typedef struct _IMAGE_THUNK_DATA64
     697{
     698    union
     699    {
     700        uint64_t  ForwarderString;
     701        uint64_t  Function;
     702        uint64_t  Ordinal;
     703        uint64_t  AddressOfData;
     704    } u1;
     705} IMAGE_THUNK_DATA64;
     706typedef IMAGE_THUNK_DATA64 *PIMAGE_THUNK_DATA64;
    679707
    680708
     
    29642992
    29652993/**
     2994 * Translate the PE/COFF machine name to a string.
     2995 *
     2996 * @returns Name string (read-only).
     2997 * @param   uMachine            The PE/COFF machine.
     2998 */
     2999static const char *rtldrPEGetArchName(uint16_t uMachine)
     3000{
     3001    switch (uMachine)
     3002    {
     3003        case IMAGE_FILE_MACHINE_I386:           return "X86_32";
     3004        case IMAGE_FILE_MACHINE_AMD64:          return "AMD64";
     3005
     3006        case IMAGE_FILE_MACHINE_UNKNOWN:        return "UNKNOWN";
     3007        case IMAGE_FILE_MACHINE_AM33:           return "AM33";
     3008        case IMAGE_FILE_MACHINE_ARM:            return "ARM";
     3009        case IMAGE_FILE_MACHINE_THUMB:          return "THUMB";
     3010        case IMAGE_FILE_MACHINE_ARMNT:          return "ARMNT";
     3011        case IMAGE_FILE_MACHINE_ARM64:          return "ARM64";
     3012        case IMAGE_FILE_MACHINE_EBC:            return "EBC";
     3013        case IMAGE_FILE_MACHINE_IA64:           return "IA64";
     3014        case IMAGE_FILE_MACHINE_M32R:           return "M32R";
     3015        case IMAGE_FILE_MACHINE_MIPS16:         return "MIPS16";
     3016        case IMAGE_FILE_MACHINE_MIPSFPU:        return "MIPSFPU";
     3017        case IMAGE_FILE_MACHINE_MIPSFPU16:      return "MIPSFPU16";
     3018        case IMAGE_FILE_MACHINE_WCEMIPSV2:      return "WCEMIPSV2";
     3019        case IMAGE_FILE_MACHINE_POWERPC:        return "POWERPC";
     3020        case IMAGE_FILE_MACHINE_POWERPCFP:      return "POWERPCFP";
     3021        case IMAGE_FILE_MACHINE_R4000:          return "R4000";
     3022        case IMAGE_FILE_MACHINE_SH3:            return "SH3";
     3023        case IMAGE_FILE_MACHINE_SH3DSP:         return "SH3DSP";
     3024        case IMAGE_FILE_MACHINE_SH4:            return "SH4";
     3025        case IMAGE_FILE_MACHINE_SH5:            return "SH5";
     3026        default:                                return "UnknownMachine";
     3027    }
     3028}
     3029
     3030
     3031/**
    29663032 * Validates the file header.
    29673033 *
     
    36213687    return VINF_SUCCESS;
    36223688}
    3623 
    3624 
    3625 static const char *rtldrPEGetArchName(uint16_t uMachine)
    3626 {
    3627     switch (uMachine)
    3628     {
    3629         case IMAGE_FILE_MACHINE_I386:   return "X86_32";
    3630         case IMAGE_FILE_MACHINE_AMD64:  return "AMD64";
    3631         default:                        return "Unknown";
    3632     }
    3633 }
    3634 
    36353689
    36363690
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette