VirtualBox

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

最後變更 在這個檔案從50311是 42499,由 vboxsync 提交於 12 年 前

crOgl/wddm: per-context connections

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Id
檔案大小: 5.8 KB
 
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 );
104extern CRConnection** crVBoxHGCMDump( int *num );
105extern void crVBoxHGCMTearDown(void);
106#endif
107
108/*
109 * TEAC network interface
110 */
111#ifdef TEAC_SUPPORT
112extern void crTeacInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl,
113 unsigned int mtu );
114extern void crTeacConnection( CRConnection *conn );
115extern int crTeacRecv( void );
116extern void crTeacSetRank( int );
117extern void crTeacSetContextRange( int, int );
118extern void crTeacSetNodeRange( const char *, const char * );
119extern void crTeacSetKey( const unsigned char *key, const int keyLength );
120#endif /* TEAC_SUPPORT */
121
122
123/*
124 * Tcscomm network interface
125 */
126#ifdef TCSCOMM_SUPPORT
127extern void crTcscommInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl,
128 unsigned int mtu );
129extern void crTcscommConnection( CRConnection *conn );
130extern int crTcscommRecv( void );
131#endif /* TCSCOMM_SUPPORT */
132
133
134/*
135 * SDP network interface
136 */
137#ifdef SDP_SUPPORT
138extern const char *crGetSDPHostnameSuffix(void);
139extern void crSDPInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
140extern void crSDPConnection( CRConnection *conn );
141extern int crSDPRecv( void );
142extern CRConnection** crSDPDump( int *num );
143#endif /* SDP_SUPPORT */
144
145
146/*
147 * Infiniband network interface
148 */
149#ifdef IB_SUPPORT
150extern void crIBInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
151extern void crIBConnection( CRConnection *conn );
152extern int crIBRecv( void );
153extern CRConnection** crIBDump( int *num );
154#endif /* IB_SUPPORT */
155
156
157/*
158 * GM network interface
159 */
160#ifdef GM_SUPPORT
161extern void crGmInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu );
162extern void crGmConnection( CRConnection *conn );
163extern int crGmRecv( void );
164extern CRConnection** crGmDump( int *num );
165extern int crGmDoConnect( CRConnection *conn );
166extern void crGmDoDisconnect( CRConnection *conn );
167extern int crGmErrno( void );
168extern char *crGmErrorString( int err );
169extern void crGmAccept( CRConnection *conn, const char *hostname, unsigned short port );
170extern void crGmSendExact( CRConnection *conn, const void *buf, unsigned int len );
171extern void crGmFree( CRConnection *conn, void *buf );
172extern void *crGmAlloc( CRConnection *conn );
173extern void crGmReadExact( CRConnection *conn, void *buf, unsigned int len );
174extern void crGmBogusRecv( CRConnection *conn, void *buf, unsigned int len );
175extern void crGmHandleNewMessage( CRConnection *conn, CRMessage *msg, unsigned int len );
176extern void crGmInstantReclaim( CRConnection *conn, CRMessage *msg );
177extern unsigned int crGmNodeId( void );
178extern unsigned int crGmPortNum( void );
179#endif /* GM_SUPPORT */
180
181
182extern CRConnection** crNetDump( int *num );
183
184#endif /* NET_INTERNALS_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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