HGCM.h revision 75d66647962964ab65a11a42286bbef129fd7782
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington/** @file
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * HGCM - Host-Guest Communication Manager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright (C) 2006-2007 innotek GmbH
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * This file is part of VirtualBox Open Source Edition (OSE), as
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * available from http://www.virtualbox.org. This file is free software;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * you can redistribute it and/or modify it under the terms of the GNU
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * General Public License (GPL) as published by the Free Software
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Foundation, in version 2 as it comes in the "COPYING" file of the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#ifndef __HGCM_h__
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#define __HGCM_h__
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <VBox/cdefs.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <VBox/types.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <VBox/pdm.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <VBox/VBoxGuest.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <VBox/hgcmsvc.h>
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/* HGCM saved state version */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#define HGCM_SSM_VERSION 2
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/* Handle of a HGCM service extension. */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterstruct _HGCMSVCEXTHANDLEDATA;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fostertypedef struct _HGCMSVCEXTHANDLEDATA *HGCMSVCEXTHANDLE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster__BEGIN_DECLS
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMHostInit (void);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMHostShutdown (void);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMHostReset (void);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMHostLoad (const char *pszServiceLibrary, const char *pszServiceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMHostRegisterServiceExtension (HGCMSVCEXTHANDLE *pHandle, const char *pszServiceName, PFNHGCMSVCEXT pfnExtension, void *pvExtension);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fostervoid HGCMHostUnregisterServiceExtension (HGCMSVCEXTHANDLE handle);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMGuestConnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, const char *pszServiceName, uint32_t *pClientID);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMGuestDisconnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMGuestCall (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM *paParms);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint HGCMHostCall (const char *pszServiceName, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM aParms[]);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunningtonint HGCMHostSaveState (PSSMHANDLE pSSM);
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunningtonint HGCMHostLoadState (PSSMHANDLE pSSM);
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington
a14393818a78c503f7715c393044b33c86e90195Phill Cunnington__END_DECLS
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington#endif /* __HGCM_h__ */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster