VirtualBox

Changeset 71129 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Feb 26, 2018 3:58:50 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
121015
Message:

VMM/NEM/win: Reimplemented virtual process API, optimizing the cancel case and prepping for doing this from ring-0. bugref:9044

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/NEMInternal.h

    r71076 r71129  
    3737 * @{
    3838 */
     39
     40
     41#ifdef RT_OS_WINDOWS
     42/*
     43 * Windows: Code configuration.
     44 */
     45# define NEM_WIN_USE_HYPERCALLS_FOR_PAGES
     46# define NEM_WIN_USE_HYPERCALLS_FOR_REGISTERS
     47# define NEM_WIN_USE_OUR_OWN_RUN_API
     48# if defined(NEM_WIN_USE_OUR_OWN_RUN_API) && !defined(NEM_WIN_USE_HYPERCALLS_FOR_REGISTERS)
     49#  error "NEM_WIN_USE_OUR_OWN_RUN_API requires NEM_WIN_USE_HYPERCALLS_FOR_REGISTERS"
     50# endif
     51#endif
    3952
    4053/**
     
    102115#define NEM_MAGIC_DEAD          UINT32_C(0xdead1111)
    103116
     117#if defined(RT_OS_WINDOWS) && defined(NEM_WIN_USE_OUR_OWN_RUN_API)
     118/** @name NEM_WIN_MSG_STATE_XXX - Windows message handling state.
     119 * @{ */
     120/** The CPU has not been started. */
     121# define NEM_WIN_MSG_STATE_STOPPED              UINT8_C(0x00)
     122/** The CPU has been started, no messages are pending. */
     123# define NEM_WIN_MSG_STATE_STARTED              UINT8_C(0x01)
     124/** Message is pending and needs to be ACKed. */
     125# define NEM_WIN_MSG_STATE_PENDING_MSG          UINT8_C(0x02)
     126/** Both a message and execution stopping is pending.  We need to ACK the
     127 * current message and get the stop message, then ACK the stop message before
     128 *  the CPU can be started again.  */
     129# define NEM_WIN_MSG_STATE_PENDING_STOP_AND_MSG UINT8_C(0x03)
     130/** @} */
     131#endif
    104132
    105133/**
     
    111139    uint32_t                    u32Magic;
    112140#ifdef RT_OS_WINDOWS
     141# ifdef NEM_WIN_USE_OUR_OWN_RUN_API
     142    /** We've got a message pending (NEM_WIN_MSG_STATE_XXX). */
     143    uint8_t                     bMsgState;
     144    /** What VidMessageSlotMap returns and is used for passing exit info. */
     145    RTR3PTR                     pvMsgSlotMapping;
     146# endif
     147    /** The windows thread handle. */
     148    RTR3PTR                     hNativeThreadHandle;
    113149    /** Parameters for making Hyper-V hypercalls. */
    114150    union
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