VirtualBox

Changeset 21506 in vbox for trunk/include


Ignore:
Timestamp:
Jul 10, 2009 11:54:26 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
49956
Message:

VBoxGuest,VMMDev: New HGCM cancellation request.

Location:
trunk/include/VBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxGuestLib.h

    r21461 r21506  
    166166 * completion IRQ is required.
    167167 *
    168  * @param pvData     VBoxGuest pointer to be passed to callback.
    169  * @param u32Data    VBoxGuest 32 bit value to be passed to callback.
    170  */
    171 
    172 typedef DECLVBGL(void) VBGLHGCMCALLBACK(VMMDevHGCMRequestHeader *pHeader, void *pvData, uint32_t u32Data);
     168 * @returns VINF_SUCCESS, VERR_INTERRUPT or VERR_TIMEOUT.
     169 * @param   pvData      VBoxGuest pointer to be passed to callback.
     170 * @param   u32Data     VBoxGuest 32 bit value to be passed to callback.
     171 */
     172typedef DECLVBGL(int) FNVBGLHGCMCALLBACK(VMMDevHGCMRequestHeader *pHeader, void *pvData, uint32_t u32Data);
     173/** Pointer to a FNVBGLHGCMCALLBACK. */
     174typedef FNVBGLHGCMCALLBACK *PFNVBGLHGCMCALLBACK;
    173175
    174176/**
     
    178180 * @note This function can NOT handle cancelled requests!
    179181 *
    180  * @param pConnectInfo    The request data.
    181  * @param pAsyncCallback  Required pointer to function that is called when
    182  *                        host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
    183  *                        implements waiting for an IRQ in this function.
    184  * @param pvAsyncData     An arbitrary VBoxGuest pointer to be passed to callback.
    185  * @param u32AsyncData    An arbitrary VBoxGuest 32 bit value to be passed to callback.
    186  *
    187  * @return VBox status code.
     182 * @param   pConnectInfo        The request data.
     183 * @param   pfnAsyncCallback    Required pointer to function that is calledwhen
     184 *                              host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
     185 *                              implements waiting for an IRQ in this function.
     186 * @param   pvAsyncData         An arbitrary VBoxGuest pointer to be passed to callback.
     187 * @param   u32AsyncData        An arbitrary VBoxGuest 32 bit value to be passed to callback.
     188 *
     189 * @return  VBox status code.
    188190 */
    189191
    190192DECLR0VBGL(int) VbglR0HGCMInternalConnect (VBoxGuestHGCMConnectInfo *pConnectInfo,
    191                                            VBGLHGCMCALLBACK *pAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
     193                                           PFNVBGLHGCMCALLBACK pfnAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
    192194
    193195
     
    198200 * @note This function can NOT handle cancelled requests!
    199201 *
    200  * @param pDisconnectInfo The request data.
    201  * @param pAsyncCallback  Required pointer to function that is called when
    202  *                        host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
    203  *                        implements waiting for an IRQ in this function.
    204  * @param pvAsyncData     An arbitrary VBoxGuest pointer to be passed to callback.
    205  * @param u32AsyncData    An arbitrary VBoxGuest 32 bit value to be passed to callback.
    206  *
    207  * @return VBox status code.
     202 * @param   pDisconnectInfo     The request data.
     203 * @param   pfnAsyncCallback    Required pointer to function that is called when
     204 *                              host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
     205 *                              implements waiting for an IRQ in this function.
     206 * @param   pvAsyncData         An arbitrary VBoxGuest pointer to be passed to callback.
     207 * @param   u32AsyncData        An arbitrary VBoxGuest 32 bit value to be passed to
     208 *                              callback.
     209 *
     210 * @return  VBox status code.
    208211 */
    209212
    210213DECLR0VBGL(int) VbglR0HGCMInternalDisconnect (VBoxGuestHGCMDisconnectInfo *pDisconnectInfo,
    211                                               VBGLHGCMCALLBACK *pAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
     214                                              PFNVBGLHGCMCALLBACK pfnAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
    212215
    213216/** Call a HGCM service.
     
    215218 * @note This function can deal with cancelled requests.
    216219 *
    217  * @param pCallInfo       The request data.
    218  * @param fFlags          Flags, see VBGLR0_HGCMCALL_F_XXX.
    219  * @param pAsyncCallback  Required pointer to function that is called when
    220  *                        host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
    221  *                        implements waiting for an IRQ in this function.
    222  * @param pvAsyncData     An arbitrary VBoxGuest pointer to be passed to callback.
    223  * @param u32AsyncData    An arbitrary VBoxGuest 32 bit value to be passed to callback.
     220 * @param   pCallInfo           The request data.
     221 * @param   fFlags              Flags, see VBGLR0_HGCMCALL_F_XXX.
     222 * @param   pfnAsyncCallback    Required pointer to function that is called when
     223 *                              host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
     224 *                              implements waiting for an IRQ in this function.
     225 * @param   pvAsyncData         An arbitrary VBoxGuest pointer to be passed to callback.
     226 * @param   u32AsyncData        An arbitrary VBoxGuest 32 bit value to be passed to callback.
    224227 *
    225228 * @return VBox status code.
    226229 */
    227230DECLR0VBGL(int) VbglR0HGCMInternalCall (VBoxGuestHGCMCallInfo *pCallInfo, uint32_t cbCallInfo, uint32_t fFlags,
    228                                         VBGLHGCMCALLBACK *pAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
     231                                        PFNVBGLHGCMCALLBACK pfnAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
    229232
    230233/** Call a HGCM service. (32 bits packet structure in a 64 bits guest)
     
    232235 * @note This function can deal with cancelled requests.
    233236 *
    234  * @param pCallInfo       The request data.
    235  * @param fFlags          Flags, see VBGLR0_HGCMCALL_F_XXX.
    236  * @param pAsyncCallback  Required pointer to function that is called when
    237  *                        host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
    238  *                        implements waiting for an IRQ in this function.
    239  * @param pvAsyncData     An arbitrary VBoxGuest pointer to be passed to callback.
    240  * @param u32AsyncData    An arbitrary VBoxGuest 32 bit value to be passed to callback.
    241  *
    242  * @return VBox status code.
     237 * @param   pCallInfo           The request data.
     238 * @param   fFlags              Flags, see VBGLR0_HGCMCALL_F_XXX.
     239 * @param   pfnAsyncCallback    Required pointer to function that is called when
     240 *                              host returns VINF_HGCM_ASYNC_EXECUTE. VBoxGuest
     241 *                              implements waiting for an IRQ in this function.
     242 * @param   pvAsyncData         An arbitrary VBoxGuest pointer to be passed to callback.
     243 * @param   u32AsyncData        An arbitrary VBoxGuest 32 bit value to be passed to callback.
     244 *
     245 * @return  VBox status code.
    243246 */
    244247DECLR0VBGL(int) VbglR0HGCMInternalCall32 (VBoxGuestHGCMCallInfo *pCallInfo, uint32_t cbCallInfo, uint32_t fFlags,
    245                                           VBGLHGCMCALLBACK *pAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
     248                                          PFNVBGLHGCMCALLBACK pfnAsyncCallback, void *pvAsyncData, uint32_t u32AsyncData);
    246249
    247250/** @name VbglR0HGCMInternalCall flags
  • trunk/include/VBox/VMMDev.h

    r21488 r21506  
    151151#endif /* VBOX_WITH_64_BITS_GUESTS */
    152152    VMMDevReq_HGCMCancel                 = 64,
     153    VMMDevReq_HGCMCancel2                = 65,
    153154#endif
    154155    VMMDevReq_VideoAccelEnable           = 70,
     
    953954 * @{
    954955 */
    955 # define VBOX_HGCM_REQ_DONE      (0x1)
     956# define VBOX_HGCM_REQ_DONE      RT_BIT_32(VBOX_HGCM_REQ_DONE_BIT)
     957# define VBOX_HGCM_REQ_DONE_BIT  0
    956958# define VBOX_HGCM_REQ_CANCELLED (0x2)
    957959/** @} */
     
    13321334} VMMDevHGCMCancel;
    13331335AssertCompileSize(VMMDevHGCMCancel, 32);
     1336
     1337/**
     1338 * HGCM cancel request structure, version 2.
     1339 *
     1340 * Used by VMMDevReq_HGCMCancel2.
     1341 *
     1342 * VINF_SUCCESS when cancelled.
     1343 * VERR_NOT_FOUND if the specified request cannot be found.
     1344 * VERR_INVALID_PARAMETER if the address is invalid valid.
     1345 */
     1346typedef struct
     1347{
     1348    /** Header. */
     1349    VMMDevRequestHeader header;
     1350    /** The physical address of the request to cancel. */
     1351    RTGCPHYS32 physReqToCancel;
     1352} VMMDevHGCMCancel2;
     1353AssertCompileSize(VMMDevHGCMCancel2, 24+4);
    13341354
    13351355#endif /* VBOX_WITH_HGCM */
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