VirtualBox

Changeset 8700

Show
Ignore:
Timestamp:
05/08/08 13:47:27 (7 months ago)
Author:
vboxsync
Message:

Linux additions: Only VbglHGCMCall() can deal with cancelled requests

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/VBox/VBoxGuestLib.h

    r8155 r8700  
    150150 * obtain a client identifier for future access. 
    151151 * 
     152 * @note This function can NOT handle cancelled requests! 
     153 * 
    152154 * @param pConnectInfo    The request data. 
    153155 * @param pAsyncCallback  Required pointer to function that is called when 
     
    168170 * the client will not call the service anymore. 
    169171 * 
     172 * @note This function can NOT handle cancelled requests! 
     173 * 
    170174 * @param pDisconnectInfo The request data. 
    171175 * @param pAsyncCallback  Required pointer to function that is called when 
     
    181185                                  VBGLHGCMCALLBACK *pAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData); 
    182186 
    183 /* Call a HGCM service. 
     187/** Call a HGCM service. 
     188 * 
     189 * @note This function can deal with cancelled requests. 
    184190 * 
    185191 * @param pCallInfo       The request data. 
  • trunk/src/VBox/Additions/linux/module/cmc.c

    r8693 r8700  
    3030{ 
    3131    VBoxDevice *dev = pvData; 
     32    wait_event (dev->eventq, pHeader->fu32Flags & VBOX_HGCM_REQ_DONE); 
     33} 
     34 
     35static DECLVBGL(void) 
     36vboxadd_hgcm_callback_interruptible (VMMDevHGCMRequestHeader *pHeader, void *pvData, uint32_t u32Data) 
     37{ 
     38    VBoxDevice *dev = pvData; 
    3239    wait_event_interruptible (dev->eventq, pHeader->fu32Flags & VBOX_HGCM_REQ_DONE); 
    3340} 
     
    3744    switch (func) 
    3845    { 
     46        /* this function can NOT handle cancelled requests */ 
    3947        case IOCTL_VBOXGUEST_HGCM_CONNECT: 
    4048            return VbglHGCMConnect (data, vboxadd_hgcm_callback, opaque, 0); 
    4149 
     50        /* this function can NOT handle cancelled requests */ 
    4251        case IOCTL_VBOXGUEST_HGCM_DISCONNECT: 
    4352            return VbglHGCMDisconnect (data, vboxadd_hgcm_callback, opaque, 0); 
    4453 
     54        /* this function can handle cancelled requests */ 
    4555        case IOCTL_VBOXGUEST_HGCM_CALL: 
    46             return VbglHGCMCall (data, vboxadd_hgcm_callback, opaque, 0); 
     56            return VbglHGCMCall (data, vboxadd_hgcm_callback_interruptible, opaque, 0); 
    4757 
    4858        default: 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy