VirtualBox

Changeset 61680 in vbox for trunk/include


Ignore:
Timestamp:
Jun 13, 2016 3:02:28 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
108037
Message:

VMMR3/DBGFR3Type: New API to dump type information and a guest memory buffer formatted for a given type

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/dbgf.h

    r61671 r61680  
    23142314    float            f32;
    23152315    double           f64;
     2316    uint64_t         size; /* For the built-in size_t which can be either 32-bit or 64-bit. */
    23162317    RTGCPTR          GCPtr;
    23172318    /** For embedded structs. */
     
    23282329    /** DBGF built-in type. */
    23292330    DBGFTYPEBUILTIN      enmType;
     2331    /** Size of the type. */
     2332    size_t              cbType;
    23302333    /** Number of entries, for arrays this can be > 1. */
    23312334    uint32_t             cEntries;
     
    24262429} DBGFTYPEREG;
    24272430
     2431/**
     2432 * DBGF typed value dumper callback.
     2433 *
     2434 * @returns VBox status code. Any non VINF_SUCCESS status code will abort the dumping.
     2435 *
     2436 * @param   off             The byte offset of the entry from the start of the type.
     2437 * @param   pszField        The name of the field for the value.
     2438 * @param   iLvl            The current level.
     2439 * @param   enmType         The type enum.
     2440 * @param   cbType          Size of the type.
     2441 * @param   pValBuf         Pointer to the value buffer.
     2442 * @param   cValBufs        Number of value buffers (for arrays).
     2443 * @param   pvUser          Opaque user data.
     2444 */
     2445typedef DECLCALLBACK(int) FNDBGFR3TYPEVALDUMP(uint32_t off, const char *pszField, uint32_t iLvl,
     2446                                              DBGFTYPEBUILTIN enmType, size_t cbType,
     2447                                              PDBGFTYPEVALBUF pValBuf, uint32_t cValBufs,
     2448                                              void *pvUser);
     2449/** Pointer to a FNDBGFR3TYPEVALDUMP. */
     2450typedef FNDBGFR3TYPEVALDUMP *PFNDBGFR3TYPEVALDUMP;
     2451
     2452/**
     2453 * DBGF type information dumper callback.
     2454 *
     2455 * @returns VBox status code. Any non VINF_SUCCESS status code will abort the dumping.
     2456 *
     2457 * @param   off             The byte offset of the entry from the start of the type.
     2458 * @param   pszField        The name of the field for the value.
     2459 * @param   iLvl            The current level.
     2460 * @param   pszType         The type of the field.
     2461 * @param   fTypeFlags      Flags for this type, see DBGFTYPEREGMEMBER_F_XXX.
     2462 * @param   cElements       Number of for the field ( > 0 for arrays).
     2463 * @param   pvUser          Opaque user data.
     2464 */
     2465typedef DECLCALLBACK(int) FNDBGFR3TYPEDUMP(uint32_t off, const char *pszField, uint32_t iLvl,
     2466                                           const char *pszType, uint32_t fTypeFlags,
     2467                                           uint32_t cElements, void *pvUser);
     2468/** Pointer to a FNDBGFR3TYPEDUMP. */
     2469typedef FNDBGFR3TYPEDUMP *PFNDBGFR3TYPEDUMP;
     2470
    24282471VMMR3DECL(int) DBGFR3TypeRegister(  PUVM pUVM, uint32_t cTypes, PCDBGFTYPEREG paTypes);
    24292472VMMR3DECL(int) DBGFR3TypeDeregister(PUVM pUVM, const char *pszType);
     
    24322475VMMR3DECL(int) DBGFR3TypeQuerySize( PUVM pUVM, const char *pszType, size_t *pcbType);
    24332476VMMR3DECL(int) DBGFR3TypeSetSize(   PUVM pUVM, const char *pszType, size_t cbType);
     2477VMMR3DECL(int) DBGFR3TypeDumpEx(    PUVM pUVM, const char *pszType, uint32_t fFlags,
     2478                                    uint32_t cLvlMax, PFNDBGFR3TYPEDUMP pfnDump, void *pvUser);
    24342479VMMR3DECL(int) DBGFR3TypeQueryValByType(PUVM pUVM, PCDBGFADDRESS pAddress, const char *pszType,
    24352480                                        PDBGFTYPEVAL *ppVal);
    24362481VMMR3DECL(void) DBGFR3TypeValFree(PDBGFTYPEVAL pVal);
     2482VMMR3DECL(int)  DBGFR3TypeValDumpEx(PUVM pUVM, PCDBGFADDRESS pAddress, const char *pszType, uint32_t fFlags,
     2483                                    uint32_t cLvlMax, FNDBGFR3TYPEVALDUMP pfnDump, void *pvUser);
    24372484
    24382485/** @} */
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