VirtualBox

Changeset 96811 in vbox for trunk/include


Ignore:
Timestamp:
Sep 21, 2022 1:23:31 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
153702
Message:

VMM,IPRT,VBoxGuest,SUPDrv: Added a more efficient interface for guest logging using the CPUID instruction. This is mainly intended for development use and not enabled by default. Require updating host drivers.

Location:
trunk/include
Files:
2 added
4 edited

Legend:

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

    r96435 r96811  
    14521452        struct IEM  s;
    14531453#endif
    1454         uint8_t     padding[8];         /* multiple of 8 */
     1454        uint8_t     padding[16];         /* multiple of 8 */
    14551455    } iem;
    14561456
     
    14781478
    14791479    /** Padding for aligning the structure size on a page boundrary. */
    1480     uint8_t         abAlignment2[8880 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
     1480    uint8_t         abAlignment2[8872 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
    14811481
    14821482    /* ---- end small stuff ---- */
  • trunk/include/VBox/vmm/vm.mac

    r96435 r96811  
    173173    .vm                     resb 32
    174174    .cfgm                   resb 8
    175     .iem                    resb 8
     175    .iem                    resb 16
    176176    .R0Stats                resb 64
    177177    .gcm                    resb 32
  • trunk/include/iprt/log.h

    r96448 r96811  
    545545    /** Log a memory ring buffer. */
    546546    RTLOGDEST_RINGBUF       = 0x00000020,
     547    /** The parent VMM debug log. */
     548    RTLOGDEST_VMM           = 0x00000040,
     549    /** The parent VMM release log. */
     550    RTLOGDEST_VMM_REL       = 0x00000080,
    547551    /** Open files with no deny (share read, write, delete) on Windows. */
    548552    RTLOGDEST_F_NO_DENY     = 0x00010000,
     
    560564} RTLOGDEST;
    561565/** Valid log destinations. */
    562 #define RTLOG_DST_VALID_MASK    UINT32_C(0x6303003f)
     566#define RTLOG_DST_VALID_MASK    UINT32_C(0x630300ff)
    563567/** Log destinations that can be changed via RTLogChangeDestinations. */
    564 #define RTLOG_DST_CHANGE_MASK   UINT32_C(0x4000001e)
     568#define RTLOG_DST_CHANGE_MASK   UINT32_C(0x400000de)
    565569
    566570
     
    25262530
    25272531/**
     2532 * Write/copy bulk log data from a nested VM logger.
     2533 *
     2534 * This is used for
     2535 *
     2536 * @returns IRPT status code.
     2537 * @param   pLogger             The logger instance (NULL for default logger).
     2538 * @param   pch                 Pointer to the block of bulk log text to write.
     2539 * @param   cch                 Size of the block of bulk log text to write.
     2540 * @param   pszInfix            String to put after the line prefixes and the
     2541 *                              line content.
     2542 */
     2543RTDECL(int) RTLogBulkNestedWrite(PRTLOGGER pLogger, const char *pch, size_t cch, const char *pszInfix);
     2544
     2545/**
    25282546 * Flushes the specified logger.
    25292547 *
     
    27892807
    27902808/**
     2809 * Write log buffer to a parent VMM (hypervisor).
     2810 *
     2811 * @param   pach        What to write.
     2812 * @param   cb          How much to write.
     2813 * @param   fRelease    Set if targeting the release log, clear if debug log.
     2814 *
     2815 * @note    Currently only available on AMD64 and x86.
     2816 */
     2817RTDECL(void) RTLogWriteVmm(const char *pach, size_t cb, bool fRelease);
     2818
     2819/**
    27912820 * Write log buffer to stdout (RTLOGDEST_STDOUT).
    27922821 *
  • trunk/include/iprt/mangling.h

    r96622 r96811  
    14531453# define RTLogBulkUpdate                                RT_MANGLER(RTLogBulkUpdate)
    14541454# define RTLogBulkWrite                                 RT_MANGLER(RTLogBulkWrite)
     1455# define RTLogBulkNestedWrite                           RT_MANGLER(RTLogBulkNestedWrite)
    14551456# define RTLogChangeDestinations                        RT_MANGLER(RTLogChangeDestinations)
    14561457# define RTLogChangeFlags                               RT_MANGLER(RTLogChangeFlags)
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