VirtualBox

root/trunk/include/VBox/DevPCNet.h

Revision 8155, 3.6 kB (checked in by vboxsync, 7 months ago)

The Big Sun Rebranding Header Change

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /** @file
2  * DevPCNet - Private guest interface for the PCNet device.
3  */
4
5 /*
6  * Copyright (C) 2008 Sun Microsystems, Inc.
7  *
8  * This file is part of VirtualBox Open Source Edition (OSE), as
9  * available from http://www.virtualbox.org. This file is free software;
10  * you can redistribute it and/or modify it under the terms of the GNU
11  * General Public License (GPL) as published by the Free Software
12  * Foundation, in version 2 as it comes in the "COPYING" file of the
13  * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14  * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15  *
16  * The contents of this file may alternatively be used under the terms
17  * of the Common Development and Distribution License Version 1.0
18  * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19  * VirtualBox OSE distribution, in which case the provisions of the
20  * CDDL are applicable instead of those of the GPL.
21  *
22  * You may elect to license modified versions of this file under the
23  * terms and conditions of either the GPL or the CDDL or both.
24  *
25  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26  * Clara, CA 95054 USA or visit http://www.sun.com if you need
27  * additional information or have any questions.
28  */
29
30 #ifndef ___VBox_DevPCNet_h
31 #define ___VBox_DevPCNet_h
32
33 #include <iprt/types.h>
34
35 /** @defgroup grp_devpcnet  AMD PCnet-PCI II / PCnet-FAST III (Am79C970A / Am79C973) Ethernet Controller Emulation.
36  * {
37  */
38
39 #define PCNET_GUEST_INTERFACE_VERSION         (1)
40 #define PCNET_GUEST_SHARED_MEMORY_SIZE        _512K
41 #define PCNET_GUEST_TX_DESCRIPTOR_SIZE        16
42 #define PCNET_GUEST_RX_DESCRIPTOR_SIZE        16
43 #define PCNET_GUEST_MAX_TX_DESCRIPTORS        128
44 #define PCNET_GUEST_MAX_RX_DESCRIPTORS        256
45 #define PCNET_GUEST_NIC_BUFFER_SIZE           1536
46
47 /* 256*16 + 128*16 + 256*1536 + 128*1536 = 582KB */
48
49 /**
50  * The header of the PCNet shared memory (VBox specific).
51  */
52 #pragma pack(1) /* paranoia */
53 typedef struct
54 {
55     /** The size of the shared memory that's being used.
56      * (This is <= PCNET_GUEST_SHARED_MEMORY_SIZE.) */
57     uint32_t cbUsed;
58     /** Version (PCNET_GUEST_INTERFACE_VERSION). */
59     uint32_t u32Version;
60     /** Flags (See PCNET_GUEST_FLAGS_*). */
61     uint32_t fFlags;
62     /** Align the following members to 64 bit. */
63     uint32_t u32Alignment;
64
65     union
66     {
67         struct
68         {
69             /** The size (in bytes) of the transmit descriptor array. */
70             uint32_t    cbTxDescriptors;
71             /** The size (in bytes) of the receive descriptor array. */
72             uint32_t    cbRxDescriptors;
73             /** Offset of the transmit descriptors relative to this header. */
74             uint32_t    offTxDescriptors;
75             /** Offset of the receive descriptors relative to this header. */
76             uint32_t    offRxDescriptors;
77             /** Offset of the transmit buffers relative to this header. */
78             uint32_t    offTxBuffers;
79             /** Offset of the receive buffers relative to this header. */
80             uint32_t    offRxBuffers;
81         } V1;
82     } V;
83
84 } PCNETGUESTSHAREDMEMORY;
85 #pragma pack()
86 /** Pointer to the PCNet shared memory header. */
87 typedef PCNETGUESTSHAREDMEMORY *PPCNETGUESTSHAREDMEMORY;
88 /** Const pointer to the PCNet shared memory header. */
89 typedef const PCNETGUESTSHAREDMEMORY *PCPCNETGUESTSHAREDMEMORY;
90
91 /** @name fFlags definitions
92  * @{
93  */
94 /** Host admits existence private PCNet interface. */
95 #define PCNET_GUEST_FLAGS_ADMIT_HOST        RT_BIT(0)
96 /** Guest admits using the private PCNet interface. */
97 #define PCNET_GUEST_FLAGS_ADMIT_GUEST       RT_BIT(1)
98 /** @} */
99
100 /** @} */
101
102 #endif
103
Note: See TracBrowser for help on using the browser.

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy