VirtualBox

source: vbox/trunk/include/VBox/DevPCNet.h@ 8155

Last change on this file since 8155 was 8155, checked in by vboxsync, 16 years ago

The Big Sun Rebranding Header Change

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
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 */
53typedef 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. */
87typedef PCNETGUESTSHAREDMEMORY *PPCNETGUESTSHAREDMEMORY;
88/** Const pointer to the PCNet shared memory header. */
89typedef 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 repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use