Commit abb7aacb authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Staging: hv: fix coding style issues in nvspprotocol.h

No typedef changes yet though.

Cc: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 9f0c7d2c
......@@ -21,9 +21,6 @@
*
*/
#pragma once
#include "VmbusChannelInterface.h"
#define NVSP_INVALID_PROTOCOL_VERSION ((u32)0xFFFFFFFF)
......@@ -32,21 +29,16 @@
#define NVSP_MIN_PROTOCOL_VERSION NVSP_PROTOCOL_VERSION_1
#define NVSP_MAX_PROTOCOL_VERSION NVSP_PROTOCOL_VERSION_1
typedef enum _NVSP_MESSAGE_TYPE
{
typedef enum _NVSP_MESSAGE_TYPE {
NvspMessageTypeNone = 0,
/* Init Messages */
NvspMessageTypeInit = 1,
NvspMessageTypeInitComplete = 2,
NvspVersionMessageStart = 100,
/* Version 1 Messages */
NvspMessage1TypeSendNdisVersion = NvspVersionMessageStart,
NvspMessage1TypeSendReceiveBuffer,
......@@ -60,16 +52,14 @@ typedef enum _NVSP_MESSAGE_TYPE
NvspMessage1TypeSendRNDISPacket,
NvspMessage1TypeSendRNDISPacketComplete,
/* This should be set to the number of messages for the version */
/* with the maximum number of messages. */
/*
* This should be set to the number of messages for the version with
* the maximum number of messages.
*/
NvspNumMessagePerVersion = 9,
} NVSP_MESSAGE_TYPE, *PNVSP_MESSAGE_TYPE;
typedef enum _NVSP_STATUS
{
typedef enum _NVSP_STATUS {
NvspStatusNone = 0,
NvspStatusSuccess,
NvspStatusFailure,
......@@ -80,199 +70,171 @@ typedef enum _NVSP_STATUS
NvspStatusMax,
} NVSP_STATUS, *PNVSP_STATUS;
#pragma pack(push, 1)
typedef struct _NVSP_MESSAGE_HEADER
{
typedef struct _NVSP_MESSAGE_HEADER {
u32 MessageType;
} NVSP_MESSAGE_HEADER, *PNVSP_MESSAGE_HEADER;
/* Init Messages */
/* This message is used by the VSC to initialize the channel */
/* after the channels has been opened. This message should */
/* never include anything other then versioning (i.e. this */
/* message will be the same for ever). */
typedef struct _NVSP_MESSAGE_INIT
{
/*
* This message is used by the VSC to initialize the channel after the channels
* has been opened. This message should never include anything other then
* versioning (i.e. this message will be the same for ever).
*/
typedef struct _NVSP_MESSAGE_INIT {
u32 MinProtocolVersion;
u32 MaxProtocolVersion;
} NVSP_MESSAGE_INIT, *PNVSP_MESSAGE_INIT;
/* This message is used by the VSP to complete the initialization */
/* of the channel. This message should never include anything other */
/* then versioning (i.e. this message will be the same for ever). */
} __attribute__((packed)) NVSP_MESSAGE_INIT, *PNVSP_MESSAGE_INIT;
typedef struct _NVSP_MESSAGE_INIT_COMPLETE
{
/*
* This message is used by the VSP to complete the initialization of the
* channel. This message should never include anything other then versioning
* (i.e. this message will be the same for ever).
*/
typedef struct _NVSP_MESSAGE_INIT_COMPLETE {
u32 NegotiatedProtocolVersion;
u32 MaximumMdlChainLength;
u32 Status;
} NVSP_MESSAGE_INIT_COMPLETE, *PNVSP_MESSAGE_INIT_COMPLETE;
} __attribute__((packed)) NVSP_MESSAGE_INIT_COMPLETE, *PNVSP_MESSAGE_INIT_COMPLETE;
typedef union _NVSP_MESSAGE_INIT_UBER
{
typedef union _NVSP_MESSAGE_INIT_UBER {
NVSP_MESSAGE_INIT Init;
NVSP_MESSAGE_INIT_COMPLETE InitComplete;
} NVSP_MESSAGE_INIT_UBER;
} __attribute__((packed)) NVSP_MESSAGE_INIT_UBER;
/* Version 1 Messages */
/* This message is used by the VSC to send the NDIS version */
/* to the VSP. The VSP can use this information when handling */
/* OIDs sent by the VSC. */
typedef struct _NVSP_1_MESSAGE_SEND_NDIS_VERSION
{
/*
* This message is used by the VSC to send the NDIS version to the VSP. The VSP
* can use this information when handling OIDs sent by the VSC.
*/
typedef struct _NVSP_1_MESSAGE_SEND_NDIS_VERSION {
u32 NdisMajorVersion;
u32 NdisMinorVersion;
} NVSP_1_MESSAGE_SEND_NDIS_VERSION, *PNVSP_1_MESSAGE_SEND_NDIS_VERSION;
/* This message is used by the VSC to send a receive buffer */
/* to the VSP. The VSP can then use the receive buffer to */
/* send data to the VSC. */
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_NDIS_VERSION, *PNVSP_1_MESSAGE_SEND_NDIS_VERSION;
typedef struct _NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER
{
/*
* This message is used by the VSC to send a receive buffer to the VSP. The VSP
* can then use the receive buffer to send data to the VSC.
*/
typedef struct _NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER {
u32 GpadlHandle;
u16 Id;
} NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER, *PNVSP_1_MESSAGE_SEND_RECEIVE_BUFFER;
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER, *PNVSP_1_MESSAGE_SEND_RECEIVE_BUFFER;
typedef struct _NVSP_1_RECEIVE_BUFFER_SECTION
{
typedef struct _NVSP_1_RECEIVE_BUFFER_SECTION {
u32 Offset;
u32 SubAllocationSize;
u32 NumSubAllocations;
u32 EndOffset;
} NVSP_1_RECEIVE_BUFFER_SECTION, *PNVSP_1_RECEIVE_BUFFER_SECTION;
} __attribute__((packed)) NVSP_1_RECEIVE_BUFFER_SECTION, *PNVSP_1_RECEIVE_BUFFER_SECTION;
/* This message is used by the VSP to acknowledge a receive */
/* buffer send by the VSC. This message must be sent by the */
/* VSP before the VSP uses the receive buffer. */
typedef struct _NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE
{
/*
* This message is used by the VSP to acknowledge a receive buffer send by the
* VSC. This message must be sent by the VSP before the VSP uses the receive
* buffer.
*/
typedef struct _NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE {
u32 Status;
u32 NumSections;
/*
* The receive buffer is split into two parts, a large suballocation
* section and a small suballocation section. These sections are then
* suballocated by a certain size.
*/
/* The receive buffer is split into two parts, a large */
/* suballocation section and a small suballocation */
/* section. These sections are then suballocated by a */
/* certain size. */
/* For example, the following break up of the receive */
/* buffer has 6 large suballocations and 10 small */
/* suballocations. */
/*
* For example, the following break up of the receive buffer has 6
* large suballocations and 10 small suballocations.
*/
/* | Large Section | | Small Section | */
/* ------------------------------------------------------------ */
/* | | | | | | | | | | | | | | | | | | */
/* | | */
/* LargeOffset SmallOffset */
/*
* | Large Section | | Small Section |
* ------------------------------------------------------------
* | | | | | | | | | | | | | | | | | |
* | |
* LargeOffset SmallOffset
*/
NVSP_1_RECEIVE_BUFFER_SECTION Sections[1];
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE, *PNVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE;
} NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE, *PNVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE;
/* This message is sent by the VSC to revoke the receive buffer. */
/* After the VSP completes this transaction, the vsp should never */
/* use the receive buffer again. */
typedef struct _NVSP_1_MESSAGE_REVOKE_RECEIVE_BUFFER
{
/*
* This message is sent by the VSC to revoke the receive buffer. After the VSP
* completes this transaction, the vsp should never use the receive buffer
* again.
*/
typedef struct _NVSP_1_MESSAGE_REVOKE_RECEIVE_BUFFER {
u16 Id;
} NVSP_1_MESSAGE_REVOKE_RECEIVE_BUFFER, *PNVSP_1_MESSAGE_REVOKE_RECEIVE_BUFFER;
/* This message is used by the VSC to send a send buffer */
/* to the VSP. The VSC can then use the send buffer to */
/* send data to the VSP. */
typedef struct _NVSP_1_MESSAGE_SEND_SEND_BUFFER
{
/*
* This message is used by the VSC to send a send buffer to the VSP. The VSC
* can then use the send buffer to send data to the VSP.
*/
typedef struct _NVSP_1_MESSAGE_SEND_SEND_BUFFER {
u32 GpadlHandle;
u16 Id;
} NVSP_1_MESSAGE_SEND_SEND_BUFFER, *PNVSP_1_MESSAGE_SEND_SEND_BUFFER;
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_SEND_BUFFER, *PNVSP_1_MESSAGE_SEND_SEND_BUFFER;
/* This message is used by the VSP to acknowledge a send */
/* buffer sent by the VSC. This message must be sent by the */
/* VSP before the VSP uses the sent buffer. */
typedef struct _NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE
{
/*
* This message is used by the VSP to acknowledge a send buffer sent by the
* VSC. This message must be sent by the VSP before the VSP uses the sent
* buffer.
*/
typedef struct _NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE {
u32 Status;
/* The VSC gets to choose the size of the send buffer and */
/* the VSP gets to choose the sections size of the buffer. */
/* This was done to enable dynamic reconfigurations when */
/* the cost of GPA-direct buffers decreases. */
/*
* The VSC gets to choose the size of the send buffer and the VSP gets
* to choose the sections size of the buffer. This was done to enable
* dynamic reconfigurations when the cost of GPA-direct buffers
* decreases.
*/
u32 SectionSize;
} NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE, *PNVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE;
/* This message is sent by the VSC to revoke the send buffer. */
/* After the VSP completes this transaction, the vsp should never */
/* use the send buffer again. */
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE, *PNVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE;
typedef struct _NVSP_1_MESSAGE_REVOKE_SEND_BUFFER
{
/*
* This message is sent by the VSC to revoke the send buffer. After the VSP
* completes this transaction, the vsp should never use the send buffer again.
*/
typedef struct _NVSP_1_MESSAGE_REVOKE_SEND_BUFFER {
u16 Id;
} NVSP_1_MESSAGE_REVOKE_SEND_BUFFER, *PNVSP_1_MESSAGE_REVOKE_SEND_BUFFER;
/* This message is used by both the VSP and the VSC to send */
/* a RNDIS message to the opposite channel endpoint. */
typedef struct _NVSP_1_MESSAGE_SEND_RNDIS_PACKET
{
/* This field is specified by RNIDS. They assume there's */
/* two different channels of communication. However, */
/* the Network VSP only has one. Therefore, the channel */
/* travels with the RNDIS packet. */
/*
* This message is used by both the VSP and the VSC to send a RNDIS message to
* the opposite channel endpoint.
*/
typedef struct _NVSP_1_MESSAGE_SEND_RNDIS_PACKET {
/*
* This field is specified by RNIDS. They assume there's two different
* channels of communication. However, the Network VSP only has one.
* Therefore, the channel travels with the RNDIS packet.
*/
u32 ChannelType;
/* This field is used to send part or all of the data */
/* through a send buffer. This values specifies an */
/* index into the send buffer. If the index is */
/* 0xFFFFFFFF, then the send buffer is not being used */
/* and all of the data was sent through other VMBus */
/* mechanisms. */
/*
* This field is used to send part or all of the data through a send
* buffer. This values specifies an index into the send buffer. If the
* index is 0xFFFFFFFF, then the send buffer is not being used and all
* of the data was sent through other VMBus mechanisms.
*/
u32 SendBufferSectionIndex;
u32 SendBufferSectionSize;
} NVSP_1_MESSAGE_SEND_RNDIS_PACKET, *PNVSP_1_MESSAGE_SEND_RNDIS_PACKET;
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_RNDIS_PACKET, *PNVSP_1_MESSAGE_SEND_RNDIS_PACKET;
/* This message is used by both the VSP and the VSC to complete */
/* a RNDIS message to the opposite channel endpoint. At this */
/* point, the initiator of this message cannot use any resources */
/* associated with the original RNDIS packet. */
typedef struct _NVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE
{
/*
* This message is used by both the VSP and the VSC to complete a RNDIS message
* to the opposite channel endpoint. At this point, the initiator of this
* message cannot use any resources associated with the original RNDIS packet.
*/
typedef struct _NVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE {
u32 Status;
} NVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE, *PNVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE;
typedef union _NVSP_MESSAGE_1_UBER
{
typedef union _NVSP_MESSAGE_1_UBER {
NVSP_1_MESSAGE_SEND_NDIS_VERSION SendNdisVersion;
NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER SendReceiveBuffer;
......@@ -285,22 +247,16 @@ typedef union _NVSP_MESSAGE_1_UBER
NVSP_1_MESSAGE_SEND_RNDIS_PACKET SendRNDISPacket;
NVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE SendRNDISPacketComplete;
} NVSP_1_MESSAGE_UBER;
} __attribute__((packed)) NVSP_1_MESSAGE_UBER;
typedef union _NVSP_ALL_MESSAGES
{
typedef union _NVSP_ALL_MESSAGES {
NVSP_MESSAGE_INIT_UBER InitMessages;
NVSP_1_MESSAGE_UBER Version1Messages;
} NVSP_ALL_MESSAGES;
} __attribute__((packed)) NVSP_ALL_MESSAGES;
/* ALL Messages */
typedef struct _NVSP_MESSAGE
{
typedef struct _NVSP_MESSAGE {
NVSP_MESSAGE_HEADER Header;
NVSP_ALL_MESSAGES Messages;
} NVSP_MESSAGE, *PNVSP_MESSAGE;
} __attribute__((packed)) NVSP_MESSAGE, *PNVSP_MESSAGE;
#pragma pack(pop)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment