VirtualBox

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

Last change on this file since 69989 was 63199, checked in by vboxsync, 8 years ago

GuestHost/OpenGL: warnings (gcc).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
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#else
103 void
104#endif
105 );
106#ifdef IN_GUEST
107extern uint32_t crVBoxHGCMHostCapsGet(void);
108#endif
109extern CRConnection** crVBoxHGCMDump( int *num );
110extern void crVBoxHGCMTearDown(void);
111#endif
112
113/*
114 * TEAC network interface
115 */
116#ifdef TEAC_SUPPORT
117extern void crTeacInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl,
118 unsigned int mtu );
119extern void crTeacConnection( CRConnection *conn );
120extern int crTeacRecv( void );
121extern void crTeacSetRank( int );
122extern void crTeacSetContextRange( int, int );
123extern void crTeacSetNodeRange( const char *, const char * );
124extern void crTeacSetKey( const unsigned char *key, const int keyLength );
125#endif /* TEAC_SUPPORT */
126
127
128/*
129 * Tcscomm network interface
130 */
131#ifdef TCSCOMM_SUPPORT
132extern void crTcscommInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl,
133 unsigned int mtu );
134extern void crTcscommConnection( CRConnection *conn );
135extern int crTcscommRecv( void );
136#endif /* TCSCOMM_SUPPORT */
137
138
139/*
140 * SDP network interface
141 */
142#ifdef SDP_SUPPORT
143extern const char *crGetSDPHostnameSuffix(void);
144extern void crSDPInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
145extern void crSDPConnection( CRConnection *conn );
146extern int crSDPRecv( void );
147extern CRConnection** crSDPDump( int *num );
148#endif /* SDP_SUPPORT */
149
150
151/*
152 * Infiniband network interface
153 */
154#ifdef IB_SUPPORT
155extern void crIBInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
156extern void crIBConnection( CRConnection *conn );
157extern int crIBRecv( void );
158extern CRConnection** crIBDump( int *num );
159#endif /* IB_SUPPORT */
160
161
162/*
163 * GM network interface
164 */
165#ifdef GM_SUPPORT
166extern void crGmInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
167extern void crGmConnection( CRConnection *conn );
168extern int crGmRecv( void );
169extern CRConnection** crGmDump( int *num );
170extern int crGmDoConnect( CRConnection *conn );
171extern void crGmDoDisconnect( CRConnection *conn );
172extern int crGmErrno( void );
173extern char *crGmErrorString( int err );
174extern void crGmAccept( CRConnection *conn, const char *hostname, unsigned short port );
175extern void crGmSendExact( CRConnection *conn, const void *buf, unsigned int len );
176extern void crGmFree( CRConnection *conn, void *buf );
177extern void *crGmAlloc( CRConnection *conn );
178extern void crGmReadExact( CRConnection *conn, void *buf, unsigned int len );
179extern void crGmBogusRecv( CRConnection *conn, void *buf, unsigned int len );
180extern void crGmHandleNewMessage( CRConnection *conn, CRMessage *msg, unsigned int len );
181extern void crGmInstantReclaim( CRConnection *conn, CRMessage *msg );
182extern unsigned int crGmNodeId( void );
183extern unsigned int crGmPortNum( void );
184#endif /* GM_SUPPORT */
185
186
187extern CRConnection** crNetDump( int *num );
188
189#endif /* NET_INTERNALS_H */
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use