Staging: hv: remove ReadMsr and WriteMsr functions from Hv.h
[safe/jmp/linux-2.6] / drivers / staging / hv / NetVsc.h
1 /*
2  *
3  * Copyright (c) 2009, Microsoft Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16  * Place - Suite 330, Boston, MA 02111-1307 USA.
17  *
18  * Authors:
19  *   Hank Janssen  <hjanssen@microsoft.com>
20  *
21  */
22
23
24 #ifndef _NETVSC_H_
25 #define _NETVSC_H_
26
27 #include "include/VmbusPacketFormat.h"
28 #include "include/nvspprotocol.h"
29
30 #include "include/List.h"
31
32 #include "include/NetVscApi.h"
33
34 /* #defines */
35
36 /* #define NVSC_MIN_PROTOCOL_VERSION                       1 */
37 /* #define NVSC_MAX_PROTOCOL_VERSION                       1 */
38
39 #define NETVSC_SEND_BUFFER_SIZE                         64*1024 /* 64K */
40 #define NETVSC_SEND_BUFFER_ID                           0xface
41
42
43 #define NETVSC_RECEIVE_BUFFER_SIZE                      1024*1024 /* 1MB */
44
45 #define NETVSC_RECEIVE_BUFFER_ID                        0xcafe
46
47 #define NETVSC_RECEIVE_SG_COUNT                         1
48
49 /* Preallocated receive packets */
50 #define NETVSC_RECEIVE_PACKETLIST_COUNT         256
51
52
53 /* Data types */
54
55
56 /* Per netvsc channel-specific */
57 struct NETVSC_DEVICE {
58         struct hv_device *Device;
59
60         atomic_t RefCount;
61         atomic_t NumOutstandingSends;
62         /* List of free preallocated hv_netvsc_packet to represent receive packet */
63         LIST_ENTRY                                              ReceivePacketList;
64         spinlock_t receive_packet_list_lock;
65
66         /* Send buffer allocated by us but manages by NetVSP */
67         void *                                                  SendBuffer;
68         u32                                                     SendBufferSize;
69         u32                                                     SendBufferGpadlHandle;
70         u32                                                     SendSectionSize;
71
72         /* Receive buffer allocated by us but manages by NetVSP */
73         void *                                                  ReceiveBuffer;
74         u32                                                     ReceiveBufferSize;
75         u32                                                     ReceiveBufferGpadlHandle;
76         u32                                                     ReceiveSectionCount;
77         PNVSP_1_RECEIVE_BUFFER_SECTION  ReceiveSections;
78
79         /* Used for NetVSP initialization protocol */
80         struct osd_waitevent *ChannelInitEvent;
81         NVSP_MESSAGE                                    ChannelInitPacket;
82
83         NVSP_MESSAGE                                    RevokePacket;
84         /* unsigned char                                                        HwMacAddr[HW_MACADDR_LEN]; */
85
86         /* Holds rndis device info */
87         void                                                    *Extension;
88 };
89
90 #endif /* _NETVSC_H_ */