Commit 72daf320fb322dc200824e2be17e69553a53fc8a
1 parent
447fc67e7a
Exists in
master
and in
7 other branches
Staging: hv: rename VmbusPrivate.h to vmbus_private.h
Cc: Hank Janssen <hjanssen@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing 9 changed files with 141 additions and 141 deletions Side-by-side Diff
drivers/staging/hv/VmbusPrivate.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 | - * Haiyang Zhang <haiyangz@microsoft.com> | |
20 | - * Hank Janssen <hjanssen@microsoft.com> | |
21 | - * | |
22 | - */ | |
23 | - | |
24 | - | |
25 | -#ifndef _VMBUS_PRIVATE_H_ | |
26 | -#define _VMBUS_PRIVATE_H_ | |
27 | - | |
28 | -#include "hv.h" | |
29 | -#include "vmbus_api.h" | |
30 | -#include "channel.h" | |
31 | -#include "channel_mgmt.h" | |
32 | -#include "channel_interface.h" | |
33 | -#include "ring_buffer.h" | |
34 | -#include <linux/list.h> | |
35 | - | |
36 | - | |
37 | -/* | |
38 | - * Maximum channels is determined by the size of the interrupt page | |
39 | - * which is PAGE_SIZE. 1/2 of PAGE_SIZE is for send endpoint interrupt | |
40 | - * and the other is receive endpoint interrupt | |
41 | - */ | |
42 | -#define MAX_NUM_CHANNELS ((PAGE_SIZE >> 1) << 3) /* 16348 channels */ | |
43 | - | |
44 | -/* The value here must be in multiple of 32 */ | |
45 | -/* TODO: Need to make this configurable */ | |
46 | -#define MAX_NUM_CHANNELS_SUPPORTED 256 | |
47 | - | |
48 | - | |
49 | -enum VMBUS_CONNECT_STATE { | |
50 | - Disconnected, | |
51 | - Connecting, | |
52 | - Connected, | |
53 | - Disconnecting | |
54 | -}; | |
55 | - | |
56 | -#define MAX_SIZE_CHANNEL_MESSAGE HV_MESSAGE_PAYLOAD_BYTE_COUNT | |
57 | - | |
58 | -struct VMBUS_CONNECTION { | |
59 | - enum VMBUS_CONNECT_STATE ConnectState; | |
60 | - | |
61 | - atomic_t NextGpadlHandle; | |
62 | - | |
63 | - /* | |
64 | - * Represents channel interrupts. Each bit position represents a | |
65 | - * channel. When a channel sends an interrupt via VMBUS, it finds its | |
66 | - * bit in the sendInterruptPage, set it and calls Hv to generate a port | |
67 | - * event. The other end receives the port event and parse the | |
68 | - * recvInterruptPage to see which bit is set | |
69 | - */ | |
70 | - void *InterruptPage; | |
71 | - void *SendInterruptPage; | |
72 | - void *RecvInterruptPage; | |
73 | - | |
74 | - /* | |
75 | - * 2 pages - 1st page for parent->child notification and 2nd | |
76 | - * is child->parent notification | |
77 | - */ | |
78 | - void *MonitorPages; | |
79 | - struct list_head ChannelMsgList; | |
80 | - spinlock_t channelmsg_lock; | |
81 | - | |
82 | - /* List of channels */ | |
83 | - struct list_head ChannelList; | |
84 | - spinlock_t channel_lock; | |
85 | - | |
86 | - struct workqueue_struct *WorkQueue; | |
87 | -}; | |
88 | - | |
89 | - | |
90 | -struct VMBUS_MSGINFO { | |
91 | - /* Bookkeeping stuff */ | |
92 | - struct list_head MsgListEntry; | |
93 | - | |
94 | - /* Synchronize the request/response if needed */ | |
95 | - struct osd_waitevent *WaitEvent; | |
96 | - | |
97 | - /* The message itself */ | |
98 | - unsigned char Msg[0]; | |
99 | -}; | |
100 | - | |
101 | - | |
102 | -extern struct VMBUS_CONNECTION gVmbusConnection; | |
103 | - | |
104 | -/* General vmbus interface */ | |
105 | - | |
106 | -struct hv_device *VmbusChildDeviceCreate(struct hv_guid *deviceType, | |
107 | - struct hv_guid *deviceInstance, | |
108 | - void *context); | |
109 | - | |
110 | -int VmbusChildDeviceAdd(struct hv_device *Device); | |
111 | - | |
112 | -void VmbusChildDeviceRemove(struct hv_device *Device); | |
113 | - | |
114 | -/* static void */ | |
115 | -/* VmbusChildDeviceDestroy( */ | |
116 | -/* struct hv_device *); */ | |
117 | - | |
118 | -struct vmbus_channel *GetChannelFromRelId(u32 relId); | |
119 | - | |
120 | - | |
121 | -/* Connection interface */ | |
122 | - | |
123 | -int VmbusConnect(void); | |
124 | - | |
125 | -int VmbusDisconnect(void); | |
126 | - | |
127 | -int VmbusPostMessage(void *buffer, size_t bufSize); | |
128 | - | |
129 | -int VmbusSetEvent(u32 childRelId); | |
130 | - | |
131 | -void VmbusOnEvents(void); | |
132 | - | |
133 | - | |
134 | -#endif /* _VMBUS_PRIVATE_H_ */ |
drivers/staging/hv/channel.c
drivers/staging/hv/channel_interface.c
... | ... | @@ -23,7 +23,7 @@ |
23 | 23 | #include <linux/kernel.h> |
24 | 24 | #include <linux/mm.h> |
25 | 25 | #include "osd.h" |
26 | -#include "VmbusPrivate.h" | |
26 | +#include "vmbus_private.h" | |
27 | 27 | |
28 | 28 | static int IVmbusChannelOpen(struct hv_device *device, u32 SendBufferSize, |
29 | 29 | u32 RecvRingBufferSize, void *UserData, |
drivers/staging/hv/channel_mgmt.c
drivers/staging/hv/connection.c
drivers/staging/hv/hv.c
drivers/staging/hv/hv_utils.c
drivers/staging/hv/vmbus.c
drivers/staging/hv/vmbus_private.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 | + * Haiyang Zhang <haiyangz@microsoft.com> | |
20 | + * Hank Janssen <hjanssen@microsoft.com> | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | + | |
25 | +#ifndef _VMBUS_PRIVATE_H_ | |
26 | +#define _VMBUS_PRIVATE_H_ | |
27 | + | |
28 | +#include "hv.h" | |
29 | +#include "vmbus_api.h" | |
30 | +#include "channel.h" | |
31 | +#include "channel_mgmt.h" | |
32 | +#include "channel_interface.h" | |
33 | +#include "ring_buffer.h" | |
34 | +#include <linux/list.h> | |
35 | + | |
36 | + | |
37 | +/* | |
38 | + * Maximum channels is determined by the size of the interrupt page | |
39 | + * which is PAGE_SIZE. 1/2 of PAGE_SIZE is for send endpoint interrupt | |
40 | + * and the other is receive endpoint interrupt | |
41 | + */ | |
42 | +#define MAX_NUM_CHANNELS ((PAGE_SIZE >> 1) << 3) /* 16348 channels */ | |
43 | + | |
44 | +/* The value here must be in multiple of 32 */ | |
45 | +/* TODO: Need to make this configurable */ | |
46 | +#define MAX_NUM_CHANNELS_SUPPORTED 256 | |
47 | + | |
48 | + | |
49 | +enum VMBUS_CONNECT_STATE { | |
50 | + Disconnected, | |
51 | + Connecting, | |
52 | + Connected, | |
53 | + Disconnecting | |
54 | +}; | |
55 | + | |
56 | +#define MAX_SIZE_CHANNEL_MESSAGE HV_MESSAGE_PAYLOAD_BYTE_COUNT | |
57 | + | |
58 | +struct VMBUS_CONNECTION { | |
59 | + enum VMBUS_CONNECT_STATE ConnectState; | |
60 | + | |
61 | + atomic_t NextGpadlHandle; | |
62 | + | |
63 | + /* | |
64 | + * Represents channel interrupts. Each bit position represents a | |
65 | + * channel. When a channel sends an interrupt via VMBUS, it finds its | |
66 | + * bit in the sendInterruptPage, set it and calls Hv to generate a port | |
67 | + * event. The other end receives the port event and parse the | |
68 | + * recvInterruptPage to see which bit is set | |
69 | + */ | |
70 | + void *InterruptPage; | |
71 | + void *SendInterruptPage; | |
72 | + void *RecvInterruptPage; | |
73 | + | |
74 | + /* | |
75 | + * 2 pages - 1st page for parent->child notification and 2nd | |
76 | + * is child->parent notification | |
77 | + */ | |
78 | + void *MonitorPages; | |
79 | + struct list_head ChannelMsgList; | |
80 | + spinlock_t channelmsg_lock; | |
81 | + | |
82 | + /* List of channels */ | |
83 | + struct list_head ChannelList; | |
84 | + spinlock_t channel_lock; | |
85 | + | |
86 | + struct workqueue_struct *WorkQueue; | |
87 | +}; | |
88 | + | |
89 | + | |
90 | +struct VMBUS_MSGINFO { | |
91 | + /* Bookkeeping stuff */ | |
92 | + struct list_head MsgListEntry; | |
93 | + | |
94 | + /* Synchronize the request/response if needed */ | |
95 | + struct osd_waitevent *WaitEvent; | |
96 | + | |
97 | + /* The message itself */ | |
98 | + unsigned char Msg[0]; | |
99 | +}; | |
100 | + | |
101 | + | |
102 | +extern struct VMBUS_CONNECTION gVmbusConnection; | |
103 | + | |
104 | +/* General vmbus interface */ | |
105 | + | |
106 | +struct hv_device *VmbusChildDeviceCreate(struct hv_guid *deviceType, | |
107 | + struct hv_guid *deviceInstance, | |
108 | + void *context); | |
109 | + | |
110 | +int VmbusChildDeviceAdd(struct hv_device *Device); | |
111 | + | |
112 | +void VmbusChildDeviceRemove(struct hv_device *Device); | |
113 | + | |
114 | +/* static void */ | |
115 | +/* VmbusChildDeviceDestroy( */ | |
116 | +/* struct hv_device *); */ | |
117 | + | |
118 | +struct vmbus_channel *GetChannelFromRelId(u32 relId); | |
119 | + | |
120 | + | |
121 | +/* Connection interface */ | |
122 | + | |
123 | +int VmbusConnect(void); | |
124 | + | |
125 | +int VmbusDisconnect(void); | |
126 | + | |
127 | +int VmbusPostMessage(void *buffer, size_t bufSize); | |
128 | + | |
129 | +int VmbusSetEvent(u32 childRelId); | |
130 | + | |
131 | +void VmbusOnEvents(void); | |
132 | + | |
133 | + | |
134 | +#endif /* _VMBUS_PRIVATE_H_ */ |