VirtualBox

source: vbox/trunk/src/VBox/Devices/Network/slirp/misc.h@ 26594

最後變更 在這個檔案從26594是 26404,由 vboxsync 提交於 15 年 前

NAT: applied patch from xtracker 3993 (use BSD mbufs)

  • 屬性 svn:eol-style 設為 native
檔案大小: 3.0 KB
 
1/*
2 * Copyright (c) 1995 Danny Gasparovski.
3 *
4 * Please read the file COPYRIGHT for the
5 * terms and conditions of the copyright.
6 */
7
8#ifndef _MISC_H_
9#define _MISC_H_
10
11struct ex_list
12{
13 int ex_pty; /* Do we want a pty? */
14 int ex_addr; /* The last byte of the address */
15 int ex_fport; /* Port to telnet to */
16 char *ex_exec; /* Command line of what to exec */
17 struct ex_list *ex_next;
18};
19
20extern struct ex_list *exec_list;
21
22#define EMU_NONE 0x0
23
24/* TCP emulations */
25#define EMU_CTL 0x1
26#define EMU_FTP 0x2
27#define EMU_KSH 0x3
28#define EMU_IRC 0x4
29#define EMU_REALAUDIO 0x5
30#define EMU_RLOGIN 0x6
31#define EMU_IDENT 0x7
32#define EMU_RSH 0x8
33
34#define EMU_NOCONNECT 0x10 /* Don't connect */
35
36/* UDP emulations */
37#define EMU_TALK 0x1
38#define EMU_NTALK 0x2
39#define EMU_CUSEEME 0x3
40
41struct tos_t
42{
43 u_int16_t lport;
44 u_int16_t fport;
45 u_int8_t tos;
46 u_int8_t emu;
47};
48
49struct emu_t
50{
51 u_int16_t lport;
52 u_int16_t fport;
53 u_int8_t tos;
54 u_int8_t emu;
55 struct emu_t *next;
56};
57
58extern struct emu_t *tcpemu;
59
60extern int x_port, x_server, x_display;
61
62int show_x (char *, struct socket *);
63void redir_x (u_int32_t, int, int, int);
64void getouraddr (PNATState);
65void slirp_insque (PNATState, void *, void *);
66void slirp_remque (PNATState, void *);
67int add_exec (struct ex_list **, int, char *, int, int);
68int slirp_openpty (int *, int *);
69int fork_exec (PNATState, struct socket *, char *, int);
70void snooze_hup (int);
71void snooze (void);
72void relay (int);
73void add_emu (char *);
74void fd_nonblock (int);
75void fd_block (int);
76
77#ifdef VBOX_WITH_SLIRP_BSD_MBUF
78/* UVM interface */
79#define UMA_ALIGN_PTR (1 << 0)
80#define UMA_ZONE_REFCNT (1 << 1)
81#define UMA_ZONE_MAXBUCKET (1 << 2)
82#define UMA_ZONE_ZINIT (1 << 3)
83#define UMA_SLAB_KERNEL (1 << 4)
84#define UMA_ZFLAG_FULL (1 << 5)
85
86struct uma_zone;
87typedef struct uma_zone *uma_zone_t;
88typedef void *(*uma_alloc_t)(uma_zone_t, int, u_int8_t *, int);
89typedef void (*uma_free_t)(void *, int, u_int8_t);
90
91typedef int (*ctor_t)(PNATState, void *, int, void *, int);
92typedef void (*dtor_t)(PNATState, void *, int, void *);
93typedef int (*zinit_t)(PNATState, void *, int, int);
94typedef void (*zfini_t)(PNATState, void *, int);
95uma_zone_t uma_zcreate(PNATState, char *, size_t, ctor_t, dtor_t, zinit_t, zfini_t, int, int);
96uma_zone_t uma_zsecond_create(char *, ctor_t, dtor_t, zinit_t, zfini_t, uma_zone_t);
97void uma_zone_set_max(uma_zone_t, int);
98void uma_zone_set_allocf(uma_zone_t, uma_alloc_t);
99void uma_zone_set_freef(uma_zone_t, uma_free_t);
100
101uint32_t *uma_find_refcnt(uma_zone_t, void *);
102void *uma_zalloc(uma_zone_t, int);
103void *uma_zalloc_arg(uma_zone_t, void *, int);
104void uma_zfree(uma_zone_t, void *);
105void uma_zfree_arg(uma_zone_t, void *, void *);
106int uma_zone_exhausted_nolock(uma_zone_t);
107void zone_drain(uma_zone_t);
108
109void slirp_null_arg_free(void *, void *);
110void m_fini(PNATState pData);
111#endif /* VBOX_WITH_SLIRP_BSD_MBUF */
112
113#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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