VirtualBox

Ignore:
Timestamp:
Oct 11, 2013 1:06:28 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
89827
Message:

Darwin guest OS digger hacking in progress. Adding symbol cache util to iprt and started on the Mach-O code that'll make use of it (RTDbgModCreateFromMachOImage++). Updates kStuff from 53 to 55 for UUID query and 64-bit kext loading.

Location:
trunk/src/VBox/Runtime/include/internal
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/include/internal/dbgmod.h

    r46266 r49044  
    227227     */
    228228    DECLCALLBACKMEMBER(RTLDRARCH, pfnGetArch)(PRTDBGMODINT pMod);
     229
     230    /**
     231     * Generic method for querying image properties.
     232     *
     233     * @returns IPRT status code.
     234     * @param   pMod            Pointer to the module structure.
     235     * @param   enmLdrProp      The property to query.
     236     * @param   pvBuf           Pointer to the return buffer.
     237     * @param   cbBuf           The size of the return buffer.
     238     * @sa      RTLdrQueryProp
     239     */
     240    DECLCALLBACKMEMBER(int, pfnQueryProp)(PRTDBGMODINT pMod, RTLDRPROP enmProp, void *pvBuf, size_t cbBuf);
    229241
    230242    /** For catching initialization errors (RTDBGMODVTIMG_MAGIC). */
     
    559571            uint32_t    uCrc32;
    560572        }   GnuDebugLink;
     573
     574        struct
     575        {
     576            /** The image UUID. */
     577            RTUUID          Uuid;
     578            /** Image architecture. */
     579            RTLDRARCH       enmArch;
     580            /** Number of segment mappings. */
     581            uint32_t        cSegs;
     582            /** Segment mappings. */
     583            RTDBGSEGMENT    aSegs[1];
     584        }   MachO;
    561585    } u;
    562586} RTDBGMODDEFERRED;
     
    617641
    618642
     643/**
     644 * Special segment package used passing segment order information for mach-o
     645 * images (mainly mach_kernel, really).
     646 *
     647 * Passes to rtDbgModDwarf_TryOpen via RTDBGMODINF::pvDbgPriv.
     648 */
     649typedef struct RTDBGDWARFSEGPKG
     650{
     651    /** Pointer to the segment array. */
     652    PCRTDBGSEGMENT      paSegs;
     653    /** Number of segments. */
     654    uint32_t            cSegs;
     655    /** For use more internal use in file locator callbacks. */
     656    RTLDRARCH           enmArch;
     657    /** For use more internal use in file locator callbacks. */
     658    PCRTUUID            pUuid;
     659} RTDBGDWARFSEGPKG;
     660/** Pointer to a const segment package. */
     661typedef RTDBGDWARFSEGPKG const *PCRTDBGDWARFSEGPKG;
     662
     663
    619664extern DECLHIDDEN(RTSTRCACHE)           g_hDbgModStrCache;
    620665extern DECLHIDDEN(RTDBGMODVTDBG const)  g_rtDbgModVtDbgCodeView;
     
    637682DECLHIDDEN(int) rtDbgModCreateForExports(PRTDBGMODINT pDbgMod);
    638683DECLHIDDEN(int) rtDbgModDeferredCreate(PRTDBGMODINT pDbgMod, PFNRTDBGMODDEFERRED pfnDeferred, RTUINTPTR cbImage,
    639                                        RTDBGCFG hDbgCfg, PRTDBGMODDEFERRED *ppDeferred);
     684                                       RTDBGCFG hDbgCfg, size_t cbDeferred, PRTDBGMODDEFERRED *ppDeferred);
    640685
    641686DECLHIDDEN(int) rtDbgModLdrOpenFromHandle(PRTDBGMODINT pDbgMod, RTLDRMOD hLdrMod);
  • trunk/src/VBox/Runtime/include/internal/ldr.h

    r46593 r49044  
    312312     * @returns IPRT status code.
    313313     *
     314     * @param   pMod            Pointer to the loader module structure.
    314315     * @param   pvBuf           The buffer to read into.
    315316     * @param   iDbgInfo        The debug info ordinal number if the request
     
    321322     */
    322323    DECLCALLBACKMEMBER(int, pfnReadDbgInfo)(PRTLDRMODINTERNAL pMod, uint32_t iDbgInfo, RTFOFF off, size_t cb, void *pvBuf);
     324
     325
     326
     327    /**
     328     * Generic method for querying image properties.
     329     *
     330     * @returns IPRT status code.
     331     * @retval  VERR_NOT_SUPPORTED if the property query isn't supported (either all
     332     *          or that specific property).
     333     * @retval  VERR_NOT_FOUND the property was not found in the module.
     334     *
     335     * @param   pMod            Pointer to the loader module structure.
     336     * @param   enmLdrProp      The property to query (valid).
     337     * @param   pvBuf           Pointer to the return buffer (valid).
     338     * @param   cbBuf           The size of the return buffer (valid as per
     339     *                          property).
     340     */
     341    DECLCALLBACKMEMBER(int, pfnQueryProp)(PRTLDRMODINTERNAL pMod, RTLDRPROP enmProp, void *pvBuf, size_t cbBuf);
    323342
    324343    /** Dummy entry to make sure we've initialized it all. */
Note: See TracChangeset for help on using the changeset viewer.

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