Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 162228
b: refs/heads/master
c: 1aa2383
h: refs/heads/master
v: v3
  • Loading branch information
Greg Kroah-Hartman committed Sep 15, 2009
1 parent c7313f2 commit fc50bca
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 83 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 65452d1f728c95877cad1b7e71dc2ef0c6a8297c
refs/heads/master: 1aa2383b144be596f7a09e237e47ecefdeef07af
134 changes: 52 additions & 82 deletions trunk/drivers/staging/hv/include/VmbusChannelInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,101 +21,71 @@
*
*/

#ifndef __VMBUSCHANNELINTERFACE_H
#define __VMBUSCHANNELINTERFACE_H

#pragma once
/* allow nameless unions */
/* #pragma warning(disable : 4201) */


/* A revision number of vmbus that is used for ensuring both ends on a */
/* partition are using compatible versions. */

#define VMBUS_REVISION_NUMBER 13

/*
* A revision number of vmbus that is used for ensuring both ends on a
* partition are using compatible versions.
*/
#define VMBUS_REVISION_NUMBER 13

/* Make maximum size of pipe payload of 16K */

#define MAX_PIPE_DATA_PAYLOAD (sizeof(BYTE) * 16384)

#define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384)

/* Define PipeMode values. */

#define VMBUS_PIPE_TYPE_BYTE 0x00000000
#define VMBUS_PIPE_TYPE_MESSAGE 0x00000004

#define VMBUS_PIPE_TYPE_BYTE 0x00000000
#define VMBUS_PIPE_TYPE_MESSAGE 0x00000004

/* The size of the user defined data buffer for non-pipe offers. */

#define MAX_USER_DEFINED_BYTES 120

#define MAX_USER_DEFINED_BYTES 120

/* The size of the user defined data buffer for pipe offers. */
#define MAX_PIPE_USER_DEFINED_BYTES 116

#define MAX_PIPE_USER_DEFINED_BYTES 116



/* At the center of the Channel Management library is */
/* the Channel Offer. This struct contains the */
/* fundamental information about an offer. */

#pragma pack(push,1)

typedef struct
{

struct hv_guid InterfaceType;
struct hv_guid InterfaceInstance;
u64 InterruptLatencyIn100nsUnits;
u32 InterfaceRevision;
u32 ServerContextAreaSize; /* in bytes */
u16 ChannelFlags;
u16 MmioMegabytes; /* in bytes * 1024 * 1024 */

union
{

/* Non-pipes: The user has MAX_USER_DEFINED_BYTES bytes. */

struct
{
unsigned char UserDefined[MAX_USER_DEFINED_BYTES];
} Standard;


/* Pipes: The following sructure is an integrated pipe protocol, which */
/* is implemented on top of standard user-defined data. Pipe clients */
/* have MAX_PIPE_USER_DEFINED_BYTES left for their own use. */

struct
{
u32 PipeMode;
unsigned char UserDefined[MAX_PIPE_USER_DEFINED_BYTES];
} Pipe;
} u;
u32 Padding;
} VMBUS_CHANNEL_OFFER, *PVMBUS_CHANNEL_OFFER;
#pragma pack(pop)

/*
* At the center of the Channel Management library is the Channel Offer. This
* struct contains the fundamental information about an offer.
*/
typedef struct {
struct hv_guid InterfaceType;
struct hv_guid InterfaceInstance;
u64 InterruptLatencyIn100nsUnits;
u32 InterfaceRevision;
u32 ServerContextAreaSize; /* in bytes */
u16 ChannelFlags;
u16 MmioMegabytes; /* in bytes * 1024 * 1024 */

union {
/* Non-pipes: The user has MAX_USER_DEFINED_BYTES bytes. */
struct {
unsigned char UserDefined[MAX_USER_DEFINED_BYTES];
} Standard;

/*
* Pipes:
* The following sructure is an integrated pipe protocol, which
* is implemented on top of standard user-defined data. Pipe
* clients have MAX_PIPE_USER_DEFINED_BYTES left for their own
* use.
*/
struct {
u32 PipeMode;
unsigned char UserDefined[MAX_PIPE_USER_DEFINED_BYTES];
} Pipe;
} u;
u32 Padding;
} __attribute__((packed)) VMBUS_CHANNEL_OFFER, *PVMBUS_CHANNEL_OFFER;

typedef u32 GPADL_HANDLE;


/* Server Flags */
#define VMBUS_CHANNEL_ENUMERATE_DEVICE_INTERFACE 1
#define VMBUS_CHANNEL_SERVER_SUPPORTS_TRANSFER_PAGES 2
#define VMBUS_CHANNEL_SERVER_SUPPORTS_GPADLS 4
#define VMBUS_CHANNEL_NAMED_PIPE_MODE 0x10
#define VMBUS_CHANNEL_LOOPBACK_OFFER 0x100
#define VMBUS_CHANNEL_PARENT_OFFER 0x200
#define VMBUS_CHANNEL_REQUEST_MONITORED_NOTIFICATION 0x400


#define VMBUS_CHANNEL_ENUMERATE_DEVICE_INTERFACE 1
#define VMBUS_CHANNEL_SERVER_SUPPORTS_TRANSFER_PAGES 2
#define VMBUS_CHANNEL_SERVER_SUPPORTS_GPADLS 4
#define VMBUS_CHANNEL_NAMED_PIPE_MODE 0x10
#define VMBUS_CHANNEL_LOOPBACK_OFFER 0x100
#define VMBUS_CHANNEL_PARENT_OFFER 0x200
#define VMBUS_CHANNEL_REQUEST_MONITORED_NOTIFICATION 0x400


/* TEMPTEMP -- move this next define to devioctl.h some day */


#ifndef FILE_DEVICE_VMBUS
#define FILE_DEVICE_VMBUS 0x0000003E
#endif

0 comments on commit fc50bca

Please sign in to comment.