HGCM.h revision 35396ee506ef68dd1c161f1ef2c3c0b68a146ff2
f86f2dc613a22ee06add9b878197922466df641bvboxsync/** @file
f86f2dc613a22ee06add9b878197922466df641bvboxsync *
f86f2dc613a22ee06add9b878197922466df641bvboxsync * HGCM - Host-Guest Communication Manager
f86f2dc613a22ee06add9b878197922466df641bvboxsync */
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsync/*
f86f2dc613a22ee06add9b878197922466df641bvboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
f86f2dc613a22ee06add9b878197922466df641bvboxsync *
f86f2dc613a22ee06add9b878197922466df641bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
f86f2dc613a22ee06add9b878197922466df641bvboxsync * available from http://www.virtualbox.org. This file is free software;
f86f2dc613a22ee06add9b878197922466df641bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
f86f2dc613a22ee06add9b878197922466df641bvboxsync * General Public License (GPL) as published by the Free Software
f86f2dc613a22ee06add9b878197922466df641bvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
f86f2dc613a22ee06add9b878197922466df641bvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
f86f2dc613a22ee06add9b878197922466df641bvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
f86f2dc613a22ee06add9b878197922466df641bvboxsync *
f86f2dc613a22ee06add9b878197922466df641bvboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
f86f2dc613a22ee06add9b878197922466df641bvboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
f86f2dc613a22ee06add9b878197922466df641bvboxsync * additional information or have any questions.
f86f2dc613a22ee06add9b878197922466df641bvboxsync */
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsync#ifndef __HGCM_h__
f86f2dc613a22ee06add9b878197922466df641bvboxsync#define __HGCM_h__
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsync#include <VBox/cdefs.h>
f86f2dc613a22ee06add9b878197922466df641bvboxsync#include <VBox/types.h>
f86f2dc613a22ee06add9b878197922466df641bvboxsync#include <VBox/pdm.h>
f86f2dc613a22ee06add9b878197922466df641bvboxsync#include <VBox/hgcmsvc.h>
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsync/* HGCM saved state version */
f86f2dc613a22ee06add9b878197922466df641bvboxsync#define HGCM_SSM_VERSION 2
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsync/* Handle of a HGCM service extension. */
f86f2dc613a22ee06add9b878197922466df641bvboxsyncstruct _HGCMSVCEXTHANDLEDATA;
f86f2dc613a22ee06add9b878197922466df641bvboxsynctypedef struct _HGCMSVCEXTHANDLEDATA *HGCMSVCEXTHANDLE;
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncRT_C_DECLS_BEGIN
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostInit (void);
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostShutdown (void);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostReset (void);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostLoad (const char *pszServiceLibrary, const char *pszServiceName);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostRegisterServiceExtension (HGCMSVCEXTHANDLE *pHandle, const char *pszServiceName, PFNHGCMSVCEXT pfnExtension, void *pvExtension);
f86f2dc613a22ee06add9b878197922466df641bvboxsyncvoid HGCMHostUnregisterServiceExtension (HGCMSVCEXTHANDLE handle);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMGuestConnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, const char *pszServiceName, uint32_t *pClientID);
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMGuestDisconnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID);
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMGuestCall (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM *paParms);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostCall (const char *pszServiceName, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM aParms[]);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostSaveState (PSSMHANDLE pSSM);
f86f2dc613a22ee06add9b878197922466df641bvboxsyncint HGCMHostLoadState (PSSMHANDLE pSSM);
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsyncRT_C_DECLS_END
f86f2dc613a22ee06add9b878197922466df641bvboxsync
f86f2dc613a22ee06add9b878197922466df641bvboxsync#endif /* __HGCM_h__ */
f86f2dc613a22ee06add9b878197922466df641bvboxsync