VirtualBox

source: vbox/trunk/src/VBox/GuestHost/OpenGL/util/net_internals.h@ 53426

Last change on this file since 53426 was 50984, checked in by vboxsync, 11 years ago

crOpenGL: command blocks: enable in guest if host supports it; bugfixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.9 KB
Line 
1#ifndef NET_INTERNALS_H
2#define NET_INTERNALS_H
3
4#include "cr_bufpool.h"
5#include "cr_threads.h"
6
7#ifndef WINDOWS
8#include <sys/time.h>
9#endif
10
11/*
12 * DevNull network interface
13 */
14extern void crDevnullInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
15extern void crDevnullConnection( CRConnection *conn );
16extern int crDevnullRecv( void );
17extern CRConnection** crDevnullDump( int *num );
18
19
20/*
21 * File network interface
22 */
23extern void crFileInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
24extern void crFileConnection( CRConnection *conn );
25extern int crFileRecv( void );
26extern CRConnection** crFileDump( int *num );
27
28
29/*
30 * TCP/IP network interface
31 */
32typedef enum {
33 CRTCPIPMemory,
34 CRTCPIPMemoryBig
35} CRTCPIPBufferKind;
36
37#define CR_TCPIP_BUFFER_MAGIC 0x89134532
38
39typedef struct CRTCPIPBuffer {
40 unsigned int magic;
41 CRTCPIPBufferKind kind;
42 unsigned int len;
43 unsigned int allocated;
44 unsigned int pad; /* may be clobbered by crTCPIPSend() */
45} CRTCPIPBuffer;
46
47typedef struct {
48 int initialized;
49 int num_conns;
50 CRConnection **conns;
51 CRBufferPool *bufpool;
52#ifdef CHROMIUM_THREADSAFE
53 CRmutex mutex;
54 CRmutex recvmutex;
55#endif
56 CRNetReceiveFuncList *recv_list;
57 CRNetCloseFuncList *close_list;
58 CRSocket server_sock;
59} cr_tcpip_data;
60
61extern cr_tcpip_data cr_tcpip;
62
63extern void crTCPIPInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
64extern void crTCPIPConnection( CRConnection *conn );
65extern int crTCPIPRecv( void );
66extern CRConnection** crTCPIPDump( int *num );
67extern int crTCPIPDoConnect( CRConnection *conn );
68extern void crTCPIPDoDisconnect( CRConnection *conn );
69extern int crTCPIPErrno( void );
70extern char *crTCPIPErrorString( int err );
71extern void crTCPIPAccept( CRConnection *conn, const char *hostname, unsigned short port );
72extern void crTCPIPWriteExact( CRConnection *conn, const void *buf, unsigned int len );
73extern void crTCPIPFree( CRConnection *conn, void *buf );
74extern void *crTCPIPAlloc( CRConnection *conn );
75extern void crTCPIPReadExact( CRConnection *conn, void *buf, unsigned int len );
76extern int __tcpip_write_exact( CRSocket sock, const void *buf, unsigned int len );
77extern int __tcpip_read_exact( CRSocket sock, void *buf, unsigned int len );
78extern void __tcpip_dead_connection( CRConnection *conn );
79extern int __crSelect( int n, fd_set *readfds, int sec, int usec );
80
81
82/*
83 * UDP network interface
84 */
85extern void crUDPTCPIPInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
86extern void crUDPTCPIPConnection( CRConnection *conn );
87extern int crUDPTCPIPRecv( void );
88
89/*
90 * VirtualBox HGCM
91 */
92#ifdef VBOX_WITH_HGCM
93extern void crVBoxHGCMInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
94extern void crVBoxHGCMConnection( CRConnection *conn
95#if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST)
96 , struct VBOXUHGSMI *pHgsmi
97#endif
98 );
99extern int crVBoxHGCMRecv(
100#if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST)
101 CRConnection *conn
102#endif
103 );
104#ifdef IN_GUEST
105extern uint32_t crVBoxHGCMHostCapsGet();
106#endif
107extern CRConnection** crVBoxHGCMDump( int *num );
108extern void crVBoxHGCMTearDown(void);
109#endif
110
111/*
112 * TEAC network interface
113 */
114#ifdef TEAC_SUPPORT
115extern void crTeacInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl,
116 unsigned int mtu );
117extern void crTeacConnection( CRConnection *conn );
118extern int crTeacRecv( void );
119extern void crTeacSetRank( int );
120extern void crTeacSetContextRange( int, int );
121extern void crTeacSetNodeRange( const char *, const char * );
122extern void crTeacSetKey( const unsigned char *key, const int keyLength );
123#endif /* TEAC_SUPPORT */
124
125
126/*
127 * Tcscomm network interface
128 */
129#ifdef TCSCOMM_SUPPORT
130extern void crTcscommInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl,
131 unsigned int mtu );
132extern void crTcscommConnection( CRConnection *conn );
133extern int crTcscommRecv( void );
134#endif /* TCSCOMM_SUPPORT */
135
136
137/*
138 * SDP network interface
139 */
140#ifdef SDP_SUPPORT
141extern const char *crGetSDPHostnameSuffix(void);
142extern void crSDPInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
143extern void crSDPConnection( CRConnection *conn );
144extern int crSDPRecv( void );
145extern CRConnection** crSDPDump( int *num );
146#endif /* SDP_SUPPORT */
147
148
149/*
150 * Infiniband network interface
151 */
152#ifdef IB_SUPPORT
153extern void crIBInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
154extern void crIBConnection( CRConnection *conn );
155extern int crIBRecv( void );
156extern CRConnection** crIBDump( int *num );
157#endif /* IB_SUPPORT */
158
159
160/*
161 * GM network interface
162 */
163#ifdef GM_SUPPORT
164extern void crGmInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
165extern void crGmConnection( CRConnection *conn );
166extern int crGmRecv( void );
167extern CRConnection** crGmDump( int *num );
168extern int crGmDoConnect( CRConnection *conn );
169extern void crGmDoDisconnect( CRConnection *conn );
170extern int crGmErrno( void );
171extern char *crGmErrorString( int err );
172extern void crGmAccept( CRConnection *conn, const char *hostname, unsigned short port );
173extern void crGmSendExact( CRConnection *conn, const void *buf, unsigned int len );
174extern void crGmFree( CRConnection *conn, void *buf );
175extern void *crGmAlloc( CRConnection *conn );
176extern void crGmReadExact( CRConnection *conn, void *buf, unsigned int len );
177extern void crGmBogusRecv( CRConnection *conn, void *buf, unsigned int len );
178extern void crGmHandleNewMessage( CRConnection *conn, CRMessage *msg, unsigned int len );
179extern void crGmInstantReclaim( CRConnection *conn, CRMessage *msg );
180extern unsigned int crGmNodeId( void );
181extern unsigned int crGmPortNum( void );
182#endif /* GM_SUPPORT */
183
184
185extern CRConnection** crNetDump( int *num );
186
187#endif /* NET_INTERNALS_H */
Note: See TracBrowser for help on using the repository browser.

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