VirtualBox

Changeset 85949 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Aug 31, 2020 10:22:50 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140144
Message:

Runtime/RTTraceLogRdr: Add API to extract a given set of values from multiple events at once

Location:
trunk/include/iprt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/include/iprt/mangling.h

    r85894 r85949  
    26222622# define RTTraceLogRdrEvtGetTs                          RT_MANGLER(RTTraceLogRdrEvtGetTs)
    26232623# define RTTraceLogRdrEvtIsGrouped                      RT_MANGLER(RTTraceLogRdrEvtIsGrouped)
     2624# define RTTraceLogRdrEvtMapToStruct                    RT_MANGLER(RTTraceLogRdrEvtMapToStruct)
     2625# define RTTraceLogRdrEvtMapFree                        RT_MANGLER(RTTraceLogRdrEvtMapFree)
    26242626# define RTTraceLogRdrEvtPoll                           RT_MANGLER(RTTraceLogRdrEvtPoll)
    26252627# define RTTraceLogRdrEvtQueryVal                       RT_MANGLER(RTTraceLogRdrEvtQueryVal)
  • TabularUnified trunk/include/iprt/tracelog.h

    r85121 r85949  
    214214
    215215
     216/**
     217 * Item mapping descriptor.
     218 */
     219typedef struct RTTRACELOGRDRMAPITEM
     220{
     221    /** The item name. */
     222    const char                  *pszName;
     223    /** The value type to map the item to. */
     224    RTTRACELOGTYPE              enmType;
     225} RTTRACELOGRDRMAPITEM;
     226/** Pointer to a mapping item descriptor. */
     227typedef RTTRACELOGRDRMAPITEM *PRTTRACELOGRDRMAPITEM;
     228/** Pointer to a const mapping item descriptor. */
     229typedef const RTTRACELOGRDRMAPITEM *PCRTTRACELOGRDRMAPITEM;
     230
     231
     232/**
     233 * Event item to value mapping descriptor for RTTraceLogRdrEvtMapToStruct().
     234 */
     235typedef struct RTTRACELOGRDRMAPDESC
     236{
     237    /** The event ID this mapping describes. */
     238    const char                  *pszEvtId;
     239    /** Number of event items to extract. */
     240    uint32_t                    cEvtItems;
     241    /** Pointer to the event items to extract (in the given order). */
     242    PCRTTRACELOGRDRMAPITEM      paMapItems;
     243} RTTRACELOGRDRMAPDESC;
     244/** Pointer to a event mapping descriptor. */
     245typedef RTTRACELOGRDRMAPDESC *PRTTRACELOGRDRMAPDESC;
     246/** Pointer to a const event mapping descriptor. */
     247typedef const RTTRACELOGRDRMAPDESC *PCRTTRACELOGRDRMAPDESC;
     248
     249
     250/**
     251 * Header for an event mapped to a binary.
     252 */
     253typedef struct RTTRACELOGRDREVTHDR
     254{
     255    /** The mapping descriptor this event was mapped to. */
     256    PCRTTRACELOGRDRMAPDESC      pEvtMapDesc;
     257    /** The event descriptor as extracted from the event log. */
     258    PCRTTRACELOGEVTDESC         pEvtDesc;
     259    /** Sequence number of the descriptor. */
     260    uint64_t                    idSeqNo;
     261    /** The timestamp of the event. */
     262    uint64_t                    tsEvt;
     263    /** Pointer to the event data items. */
     264    PCRTTRACELOGEVTVAL          paEvtItems;
     265} RTTRACELOGRDREVTHDR;
     266/** Pointer to an event header. */
     267typedef RTTRACELOGRDREVTHDR *PRTTRACELOGRDREVTHDR;
     268/** Pointer to a const event header. */
     269typedef const RTTRACELOGRDREVTHDR *PCRTTRACELOGRDREVTHDR;
     270
     271
    216272/** Event group ID. */
    217273typedef uint64_t                   RTTRACELOGEVTGRPID;
     
    517573
    518574/**
     575 * Extracts the given number of events from the given trace log reader instance returning
     576 * and array of events with the values filled in from the mapping descriptor.
     577 *
     578 * @returns IPRT status code.
     579 * @param   hTraceLogRdr        The trace log reader instance handle.
     580 * @param   fFlags              Flags controlling the behavior, MBZ.
     581 * @param   cEvts               Number of events to extract, UINT32_MAX to map all immediately available events.
     582 * @param   paMapDesc           Pointer to an array of mapping descriptors describing how to map events.
     583 * @param   ppaEvtHdr           Where to return the pointer to the allocated array of event headers on success.
     584 * @param   pcEvts              Where to store the returned number of events on success.
     585 */
     586RTDECL(int) RTTraceLogRdrEvtMapToStruct(RTTRACELOGRDR hTraceLogRdr, uint32_t fFlags, uint32_t cEvts,
     587                                        PCRTTRACELOGRDRMAPDESC paMapDesc, PCRTTRACELOGRDREVTHDR *ppaEvtHdr,
     588                                        uint32_t *pcEvts);
     589
     590
     591/**
     592 * Frees all resources of the given array of event headers as allocated by RTTraceLogRdrEvtMapToStruct().
     593 *
     594 * @returns nothing.
     595 * @param   paEvtHdr            Pointer to the array of events as returned by RTTraceLogRdrEvtMapToStruct().
     596 * @param   cEvts               Number of events as returned by RTTraceLogRdrEvtMapToStruct().
     597 */
     598RTDECL(void) RTTraceLogRdrEvtMapFree(PCRTTRACELOGRDREVTHDR paEvtHdr, uint32_t cEvts);
     599
     600
     601/**
    519602 * Frees a previously created iterator.
    520603 *
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