HGCM.h revision 4ad61c77cae8d8151523c9f91822c61d03900cdf
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync/** @file
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync *
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * HGCM - Host-Guest Communication Manager
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync */
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync/*
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * Copyright (C) 2006 InnoTek Systemberatung GmbH
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync *
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * available from http://www.virtualbox.org. This file is free software;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * General Public License as published by the Free Software Foundation,
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync *
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * If you received this file as part of a commercial VirtualBox
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * distribution, then only the terms of your commercial VirtualBox
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync * license agreement apply instead of the previous paragraph.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync */
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#ifndef __HGCM_h__
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#define __HGCM_h__
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#include <VBox/cdefs.h>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#include <VBox/types.h>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#include <VBox/pdm.h>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#include <VBox/VBoxGuest.h>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#include <VBox/hgcmsvc.h>
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync/* HGCM saved state version */
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#define HGCM_SSM_VERSION 2
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync__BEGIN_DECLS
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostInit (void);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostShutdown (void);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostReset (void);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostLoad (const char *pszServiceName, const char *pszServiceLibrary);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMGuestConnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, const char *pszServiceName, uint32_t *pClientID);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMGuestDisconnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMGuestCall (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM *paParms);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostCall (const char *pszServiceName, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM aParms[]);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostSaveState (PSSMHANDLE pSSM);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncint HGCMHostLoadState (PSSMHANDLE pSSM);
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync__END_DECLS
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#endif /* __HGCM_h__ */
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync