VBoxUhgsmi.h revision 48729babf1ff9fab8098654bc8c465b5ede56fe7
/*
* Copyright (C) 2010 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ___VBoxUhgsmi_h__
#define ___VBoxUhgsmi_h__
typedef struct VBOXUHGSMI *PVBOXUHGSMI;
typedef struct VBOXUHGSMI_BUFFER *PVBOXUHGSMI_BUFFER;
typedef void* HVBOXUHGSMI_SYNCHOBJECT;
typedef enum
{
typedef struct VBOXUHGSMI_BUFFER_LOCK_FLAGS
{
union
{
struct
{
};
};
typedef struct VBOXUHGSMI_BUFFER_SUBMIT_FLAGS
{
union
{
struct
{
uint32_t bDoNotSignalCompletion : 1; /* <- do not signal notification object on completion for this alloc */
};
};
/* the caller can specify NULL as a hSynch and specify a valid enmSynchType to make UHGSMI create a proper object itself,
* */
typedef struct VBOXUHGSMI_BUFFER_SUBMIT
{
typedef DECLCALLBACK(int) FNVBOXUHGSMI_BUFFER_SUBMIT_ASYNCH(PVBOXUHGSMI pHgsmi, PVBOXUHGSMI_BUFFER_SUBMIT aBuffers, uint32_t cBuffers);
typedef DECLCALLBACK(int) FNVBOXUHGSMI_BUFFER_LOCK(PVBOXUHGSMI_BUFFER pBuf, uint32_t offLock, uint32_t cbLock, VBOXUHGSMI_BUFFER_LOCK_FLAGS fFlags, void**pvLock);
typedef struct VBOXUHGSMI
{
/* user custom data */
void *pvUserData;
} VBOXUHGSMI, *PVBOXUHGSMI;
typedef struct VBOXUHGSMI_BUFFER
{
/* r/o data added for ease of access and simplicity
* modifying it leads to unpredictable behavior */
bool bSynchCreated;
/* user custom data */
void *pvUserData;
#endif /* #ifndef ___VBoxUhgsmi_h__ */