33cba804084fe86c32094f622129013b94aaec59vboxsync * VBox Host Guest Shared Memory Interface (HGSMI).
33cba804084fe86c32094f622129013b94aaec59vboxsync * Host part.
dfc68b62b28c82701524c03873d326a99ebaa6cfvboxsync * Copyright (C) 2006-2015 Oracle Corporation
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * available from http://www.virtualbox.org. This file is free software;
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * you can redistribute it and/or modify it under the terms of the GNU
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * General Public License (GPL) as published by the Free Software
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
cf5f6bf2704d4fff443139e10bccc6a0a7fa4b85vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync/* Callback for the guest notification about a new host buffer. */
33cba804084fe86c32094f622129013b94aaec59vboxsynctypedef DECLCALLBACK(void) FNHGSMINOTIFYGUEST(void *pvCallback);
33cba804084fe86c32094f622129013b94aaec59vboxsync * Public Host API for virtual devices.
33cba804084fe86c32094f622129013b94aaec59vboxsync const char *pszName,
33cba804084fe86c32094f622129013b94aaec59vboxsyncvoid *HGSMIOffsetToPointerHost (PHGSMIINSTANCE pIns,
33cba804084fe86c32094f622129013b94aaec59vboxsyncHGSMIOFFSET HGSMIPointerToOffsetHost (PHGSMIINSTANCE pIns,
33cba804084fe86c32094f622129013b94aaec59vboxsync const void *pv);
33cba804084fe86c32094f622129013b94aaec59vboxsyncint HGSMISaveStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM);
33cba804084fe86c32094f622129013b94aaec59vboxsyncint HGSMILoadStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM);
33cba804084fe86c32094f622129013b94aaec59vboxsync * Virtual hardware IO handlers.
33cba804084fe86c32094f622129013b94aaec59vboxsync/* Guests passes a new command buffer to the host. */
33cba804084fe86c32094f622129013b94aaec59vboxsync/* Guest reads information about guest buffers. */
33cba804084fe86c32094f622129013b94aaec59vboxsync/* Guest reads the host FIFO to get a command. */
33cba804084fe86c32094f622129013b94aaec59vboxsync/* Guest reports that the command at this offset has been processed. */
33cba804084fe86c32094f622129013b94aaec59vboxsyncvoid HGSMISetHostGuestFlags(PHGSMIINSTANCE pIns, uint32_t flags);
33cba804084fe86c32094f622129013b94aaec59vboxsyncvoid HGSMIClearHostGuestFlags(PHGSMIINSTANCE pIns, uint32_t flags);
33cba804084fe86c32094f622129013b94aaec59vboxsync * Low level interface for submitting buffers to the guest.
33cba804084fe86c32094f622129013b94aaec59vboxsync * These functions are not directly available for anyone but the
33cba804084fe86c32094f622129013b94aaec59vboxsync * virtual hardware device.
33cba804084fe86c32094f622129013b94aaec59vboxsync/* Allocate a buffer in the host heap. */
33cba804084fe86c32094f622129013b94aaec59vboxsyncint HGSMIHostCommandProcessAndFreeAsynch (PHGSMIINSTANCE pIns,
33cba804084fe86c32094f622129013b94aaec59vboxsyncint HGSMIHostLoadStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM, uint32_t u32Version);
33cba804084fe86c32094f622129013b94aaec59vboxsyncint HGSMIHostSaveStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM);
4d6b317d67ba577744e53cdfa0c7472d4223db5avboxsyncint HGSMICompleteGuestCommand(PHGSMIINSTANCE pIns, void *pvMem, bool bDoIrq);
8f1c8e96fab0c5f5a8dcabeb4e20a56a8b4cea18vboxsync#endif /* !___HGSMIHost_h*/