VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/HGSMI/HGSMIHost.h@ 55401

Last change on this file since 55401 was 55401, checked in by vboxsync, 10 years ago

added a couple of missing Id headers

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.2 KB
Line 
1/* $Id: HGSMIHost.h 55401 2015-04-23 10:03:17Z vboxsync $ */
2/** @file
3 *
4 * VBox Host Guest Shared Memory Interface (HGSMI).
5 * Host part.
6 */
7
8/*
9 * Copyright (C) 2006-2015 Oracle Corporation
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.virtualbox.org. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 */
19
20
21#ifndef ___HGSMIHost_h
22#define ___HGSMIHost_h
23
24#include <VBox/vmm/vm.h>
25
26#include <VBox/HGSMI/HGSMI.h>
27#include <VBox/HGSMI/HGSMIChSetup.h>
28
29struct HGSMIINSTANCE;
30typedef struct HGSMIINSTANCE *PHGSMIINSTANCE;
31
32/* Callback for the guest notification about a new host buffer. */
33typedef DECLCALLBACK(void) FNHGSMINOTIFYGUEST(void *pvCallback);
34typedef FNHGSMINOTIFYGUEST *PFNHGSMINOTIFYGUEST;
35
36/*
37 * Public Host API for virtual devices.
38 */
39
40int HGSMICreate (PHGSMIINSTANCE *ppIns,
41 PVM pVM,
42 const char *pszName,
43 HGSMIOFFSET offBase,
44 uint8_t *pu8MemBase,
45 HGSMISIZE cbMem,
46 PFNHGSMINOTIFYGUEST pfnNotifyGuest,
47 void *pvNotifyGuest,
48 size_t cbContext);
49
50void HGSMIDestroy (PHGSMIINSTANCE pIns);
51
52void *HGSMIContext (PHGSMIINSTANCE pIns);
53
54void *HGSMIOffsetToPointerHost (PHGSMIINSTANCE pIns,
55 HGSMIOFFSET offBuffer);
56
57HGSMIOFFSET HGSMIPointerToOffsetHost (PHGSMIINSTANCE pIns,
58 const void *pv);
59
60int HGSMIHostChannelRegister (PHGSMIINSTANCE pIns,
61 uint8_t u8Channel,
62 PFNHGSMICHANNELHANDLER pfnChannelHandler,
63 void *pvChannelHandler);
64
65int HGSMIChannelRegisterName (PHGSMIINSTANCE pIns,
66 const char *pszChannel,
67 PFNHGSMICHANNELHANDLER pfnChannelHandler,
68 void *pvChannelHandler,
69 uint8_t *pu8Channel);
70
71int HGSMISetupHostHeap (PHGSMIINSTANCE pIns,
72 HGSMIOFFSET offHeap,
73 HGSMISIZE cbHeap);
74
75int HGSMISaveStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM);
76int HGSMILoadStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM);
77
78/*
79 * Virtual hardware IO handlers.
80 */
81
82/* Guests passes a new command buffer to the host. */
83void HGSMIGuestWrite (PHGSMIINSTANCE pIns,
84 HGSMIOFFSET offBuffer);
85
86/* Guest reads information about guest buffers. */
87HGSMIOFFSET HGSMIGuestRead (PHGSMIINSTANCE pIns);
88
89/* Guest reads the host FIFO to get a command. */
90HGSMIOFFSET HGSMIHostRead (PHGSMIINSTANCE pIns);
91
92/* Guest reports that the command at this offset has been processed. */
93void HGSMIHostWrite (PHGSMIINSTANCE pIns,
94 HGSMIOFFSET offBuffer);
95
96void HGSMISetHostGuestFlags(PHGSMIINSTANCE pIns, uint32_t flags);
97
98void HGSMIClearHostGuestFlags(PHGSMIINSTANCE pIns, uint32_t flags);
99
100/*
101 * Low level interface for submitting buffers to the guest.
102 *
103 * These functions are not directly available for anyone but the
104 * virtual hardware device.
105 */
106
107/* Allocate a buffer in the host heap. */
108int HGSMIHostCommandAlloc (PHGSMIINSTANCE pIns,
109 void **ppvMem,
110 HGSMISIZE cbMem,
111 uint8_t u8Channel,
112 uint16_t u16ChannelInfo);
113
114int HGSMIHostCommandProcess (PHGSMIINSTANCE pIns,
115 void *pvMem);
116
117int HGSMIHostCommandProcessAndFreeAsynch (PHGSMIINSTANCE pIns,
118 void *pvMem,
119 bool bDoIrq);
120
121int HGSMIHostCommandFree (PHGSMIINSTANCE pIns,
122 void *pvMem);
123
124int HGSMIHostLoadStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM, uint32_t u32Version);
125
126int HGSMIHostSaveStateExec (PHGSMIINSTANCE pIns, PSSMHANDLE pSSM);
127
128#ifdef VBOX_WITH_WDDM
129int HGSMICompleteGuestCommand(PHGSMIINSTANCE pIns, void *pvMem, bool bDoIrq);
130#endif
131
132#endif /* !___HGSMIHost_h*/
133
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette