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