VirtualBox

Changeset 28286 in vbox for trunk/src/VBox/Main/include


Ignore:
Timestamp:
Apr 14, 2010 10:02:30 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
60033
Message:

Guest Control: Update (introducing contexts for callbacks).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/GuestImpl.h

    r28233 r28286  
    2525#include "VirtualBoxBase.h"
    2626#include <VBox/ostypes.h>
     27
     28#ifdef VBOX_WITH_GUEST_CONTROL
     29# include <VBox/HostServices/GuestControlSvc.h>
     30# include <hgcm/HGCM.h>
     31using namespace guestControl;
     32#endif
    2733
    2834typedef enum
     
    104110    static const wchar_t *getComponentName() { return L"Guest"; }
    105111
     112# ifdef VBOX_WITH_GUEST_CONTROL
     113    /** Static callback for handling guest notifications. */
     114    static DECLCALLBACK(int) doGuestCtrlNotification(void *pvExtension, uint32_t u32Function, void *pvParms, uint32_t cbParms);
     115# endif
     116
    106117private:
    107118
    108119# ifdef VBOX_WITH_GUEST_CONTROL
     120
     121    struct CallbackContext
     122    {
     123        uint32_t  mContextID;
     124        void     *pvData;
     125        uint32_t  cbData;
     126    };
     127
    109128    int prepareExecuteArgs(const char *pszArgs, void **ppvList, uint32_t *pcbList, uint32_t *pcArgs);
    110129    int prepareExecuteEnv(const char *pszEnv, void **ppvList, uint32_t *pcbList, uint32_t *pcEnv);
    111     /** Static callback for handling guest notifications. */
    112     static DECLCALLBACK(int) doGuestCtrlExecNotification(void *pvExtension, uint32_t u32Function, void *pvParms, uint32_t cbParms);
     130    /** Handler for guest execution control notifications. */
     131    int notifyCtrlExec(uint32_t u32Function, PHOSTEXECCALLBACKDATA pData);
     132    void freeCtrlCallbackContextData(CallbackContext *pContext);
     133    uint32_t addCtrlCallbackContext(void *pvData, uint32_t cbData);
    113134# endif
    114135
     
    131152    Console *mParent;
    132153    Data mData;
    133     bool mSignalled;
     154
     155# ifdef VBOX_WITH_GUEST_CONTROL
     156    /** General extension callback for guest control. */
     157    HGCMSVCEXTHANDLE  mhExtCtrl;
     158       
     159    volatile uint32_t mNextContextID;
     160    typedef std::list< CallbackContext > CallbackList;
     161    CallbackList mCallbackList;
     162# endif
    134163};
    135164
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