PDMAsyncCompletionInternal.h revision c458503b85d643d51c5287959b8d96a3e32d9499
fe05567c31cb88593a09ce5d8961d8b20627feb1Zbigniew Jędrzejewski-Szmek * PDM - Pluggable Device Manager, Async I/O Completion internal header.
fe05567c31cb88593a09ce5d8961d8b20627feb1Zbigniew Jędrzejewski-Szmek * Copyright (C) 2006-2010 Oracle Corporation
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek * This file is part of VirtualBox Open Source Edition (OSE), as
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek * available from http://www.virtualbox.org. This file is free software;
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek * you can redistribute it and/or modify it under the terms of the GNU
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek * General Public License (GPL) as published by the Free Software
7abfbe7903d8e792850ec39286a3d86e616a6477William Giokas * Foundation, in version 2 as it comes in the "COPYING" file of the
7abfbe7903d8e792850ec39286a3d86e616a6477William Giokas * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
7abfbe7903d8e792850ec39286a3d86e616a6477William Giokas * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
fe05567c31cb88593a09ce5d8961d8b20627feb1Zbigniew Jędrzejewski-Szmek * PDM Async completion endpoint operations.
fe05567c31cb88593a09ce5d8961d8b20627feb1Zbigniew Jędrzejewski-Szmektypedef struct PDMASYNCCOMPLETIONEPCLASSOPS
fe05567c31cb88593a09ce5d8961d8b20627feb1Zbigniew Jędrzejewski-Szmek /** Version identifier. */
fe05567c31cb88593a09ce5d8961d8b20627feb1Zbigniew Jędrzejewski-Szmek /** Name of the endpoint class. */
7abfbe7903d8e792850ec39286a3d86e616a6477William Giokas /** Class type. */
7abfbe7903d8e792850ec39286a3d86e616a6477William Giokas /** Size of the global endpoint class data in bytes. */
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek /** Size of an endpoint in bytes. */
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek /** size of a task in bytes. */
2c12a402cb1e8277c271ced8dc9c06d20b8f6017Zbigniew Jędrzejewski-Szmek * Initializes the global data for a endpoint class.
7abfbe7903d8e792850ec39286a3d86e616a6477William Giokas * @returns VBox status code.
DECLR3CALLBACKMEMBER(int, pfnInitialize, (PPDMASYNCCOMPLETIONEPCLASS pClassGlobals, PCFGMNODE pCfgNode));
typedef struct PDMASYNCCOMPLETIONEPCLASS
volatile unsigned cEndpoints;
typedef struct PDMASYNCCOMPLETIONENDPOINT
unsigned cUsers;
char *pszUri;
#ifdef VBOX_WITH_STATISTICS
#ifdef VBOX_WITH_STATISTICS
typedef struct PDMASYNCCOMPLETIONTASK
void *pvUser;
void pdmR3AsyncCompletionCompleteTask(PPDMASYNCCOMPLETIONTASK pTask, int rc, bool fCallCompletionHandler);