Staging: hv: fix coding style issues in VmbusPacketFormat.h
Heh, volatiles, like that was a good idea... Turns out they were not even used, wierd stuff. All clean except for the typedefs. Cc: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
b3715ee49f
commit
4bedd6be8b
|
@ -21,300 +21,148 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifndef _VMBUSPACKETFORMAT_H_
|
||||
|
||||
#pragma once
|
||||
|
||||
/* #ifndef PAGE_SIZE */
|
||||
/* #if defined(_IA64_) */
|
||||
/* #error This does not work for IA64 */
|
||||
/* #else */
|
||||
/* #define PAGE_SIZE 0x1000 */
|
||||
/* #endif */
|
||||
/* #endif */
|
||||
|
||||
/* allow nameless unions */
|
||||
/* #pragma warning(disable : 4201) */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
volatile u32 In; /* Offset in bytes from the ring base */
|
||||
volatile u32 Out; /* Offset in bytes from the ring base */
|
||||
};
|
||||
volatile long long InOut;
|
||||
};
|
||||
|
||||
|
||||
/* If the receiving endpoint sets this to some non-zero value, the sending */
|
||||
/* endpoint should not send any interrupts. */
|
||||
|
||||
|
||||
volatile u32 InterruptMask;
|
||||
|
||||
} VMRCB, *PVMRCB;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
VMRCB Control;
|
||||
};
|
||||
|
||||
u8 Reserved[PAGE_SIZE];
|
||||
};
|
||||
|
||||
|
||||
/* Beginning of the ring data. Note: It must be guaranteed that */
|
||||
/* this data does not share a page with the control structure. */
|
||||
|
||||
u8 Data[1];
|
||||
} VMRING, *PVMRING;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u16 Type;
|
||||
u16 DataOffset8;
|
||||
u16 Length8;
|
||||
u16 Flags;
|
||||
u64 TransactionId;
|
||||
} VMPACKET_DESCRIPTOR, *PVMPACKET_DESCRIPTOR;
|
||||
typedef struct {
|
||||
u16 Type;
|
||||
u16 DataOffset8;
|
||||
u16 Length8;
|
||||
u16 Flags;
|
||||
u64 TransactionId;
|
||||
} __attribute__((packed)) VMPACKET_DESCRIPTOR, *PVMPACKET_DESCRIPTOR;
|
||||
|
||||
typedef u32 PREVIOUS_PACKET_OFFSET, *PPREVIOUS_PACKET_OFFSET;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PREVIOUS_PACKET_OFFSET PreviousPacketStartOffset;
|
||||
VMPACKET_DESCRIPTOR Descriptor;
|
||||
} VMPACKET_HEADER, *PVMPACKET_HEADER;
|
||||
typedef struct {
|
||||
PREVIOUS_PACKET_OFFSET PreviousPacketStartOffset;
|
||||
VMPACKET_DESCRIPTOR Descriptor;
|
||||
} __attribute__((packed)) VMPACKET_HEADER, *PVMPACKET_HEADER;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u32 ByteCount;
|
||||
u32 ByteOffset;
|
||||
} VMTRANSFER_PAGE_RANGE, *PVMTRANSFER_PAGE_RANGE;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMTRANSFER_PAGE_PACKET_HEADER : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
typedef struct {
|
||||
u32 ByteCount;
|
||||
u32 ByteOffset;
|
||||
} __attribute__((packed)) VMTRANSFER_PAGE_RANGE, *PVMTRANSFER_PAGE_RANGE;
|
||||
|
||||
typedef struct VMTRANSFER_PAGE_PACKET_HEADER {
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
u16 TransferPageSetId;
|
||||
bool SenderOwnsSet;
|
||||
u8 Reserved;
|
||||
u32 RangeCount;
|
||||
VMTRANSFER_PAGE_RANGE Ranges[1];
|
||||
|
||||
} VMTRANSFER_PAGE_PACKET_HEADER, *PVMTRANSFER_PAGE_PACKET_HEADER;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMGPADL_PACKET_HEADER : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u16 TransferPageSetId;
|
||||
bool SenderOwnsSet;
|
||||
u8 Reserved;
|
||||
u32 RangeCount;
|
||||
VMTRANSFER_PAGE_RANGE Ranges[1];
|
||||
} __attribute__((packed)) VMTRANSFER_PAGE_PACKET_HEADER, *PVMTRANSFER_PAGE_PACKET_HEADER;
|
||||
|
||||
typedef struct _VMGPADL_PACKET_HEADER {
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
u32 Gpadl;
|
||||
u32 Reserved;
|
||||
|
||||
} VMGPADL_PACKET_HEADER, *PVMGPADL_PACKET_HEADER;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMADD_REMOVE_TRANSFER_PAGE_SET : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u32 Gpadl;
|
||||
u32 Reserved;
|
||||
} __attribute__((packed)) VMGPADL_PACKET_HEADER, *PVMGPADL_PACKET_HEADER;
|
||||
|
||||
typedef struct _VMADD_REMOVE_TRANSFER_PAGE_SET {
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u32 Gpadl;
|
||||
u16 TransferPageSetId;
|
||||
u16 Reserved;
|
||||
} __attribute__((packed)) VMADD_REMOVE_TRANSFER_PAGE_SET, *PVMADD_REMOVE_TRANSFER_PAGE_SET;
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
u32 Gpadl;
|
||||
u16 TransferPageSetId;
|
||||
u16 Reserved;
|
||||
|
||||
} VMADD_REMOVE_TRANSFER_PAGE_SET, *PVMADD_REMOVE_TRANSFER_PAGE_SET;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
|
||||
/* This structure defines a range in guest physical space that can be made */
|
||||
/* to look virtually contiguous. */
|
||||
|
||||
|
||||
/*
|
||||
* This structure defines a range in guest physical space that can be made to
|
||||
* look virtually contiguous.
|
||||
*/
|
||||
typedef struct _GPA_RANGE {
|
||||
|
||||
u32 ByteCount;
|
||||
u32 ByteOffset;
|
||||
u64 PfnArray[0];
|
||||
|
||||
u32 ByteCount;
|
||||
u32 ByteOffset;
|
||||
u64 PfnArray[0];
|
||||
} GPA_RANGE, *PGPA_RANGE;
|
||||
|
||||
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
|
||||
/* This is the format for an Establish Gpadl packet, which contains a handle */
|
||||
/* by which this GPADL will be known and a set of GPA ranges associated with */
|
||||
/* it. This can be converted to a MDL by the guest OS. If there are multiple */
|
||||
/* GPA ranges, then the resulting MDL will be "chained," representing multiple */
|
||||
/* VA ranges. */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMESTABLISH_GPADL : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* This is the format for an Establish Gpadl packet, which contains a handle by
|
||||
* which this GPADL will be known and a set of GPA ranges associated with it.
|
||||
* This can be converted to a MDL by the guest OS. If there are multiple GPA
|
||||
* ranges, then the resulting MDL will be "chained," representing multiple VA
|
||||
* ranges.
|
||||
*/
|
||||
typedef struct _VMESTABLISH_GPADL {
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u32 Gpadl;
|
||||
u32 RangeCount;
|
||||
GPA_RANGE Range[1];
|
||||
} __attribute__((packed)) VMESTABLISH_GPADL, *PVMESTABLISH_GPADL;
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
u32 Gpadl;
|
||||
u32 RangeCount;
|
||||
GPA_RANGE Range[1];
|
||||
|
||||
} VMESTABLISH_GPADL, *PVMESTABLISH_GPADL;
|
||||
|
||||
|
||||
|
||||
/* This is the format for a Teardown Gpadl packet, which indicates that the */
|
||||
/* GPADL handle in the Establish Gpadl packet will never be referenced again. */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMTEARDOWN_GPADL : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* This is the format for a Teardown Gpadl packet, which indicates that the
|
||||
* GPADL handle in the Establish Gpadl packet will never be referenced again.
|
||||
*/
|
||||
typedef struct _VMTEARDOWN_GPADL {
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u32 Gpadl;
|
||||
u32 Reserved; /* for alignment to a 8-byte boundary */
|
||||
} __attribute__((packed)) VMTEARDOWN_GPADL, *PVMTEARDOWN_GPADL;
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
u32 Gpadl;
|
||||
u32 Reserved; /* for alignment to a 8-byte boundary */
|
||||
} VMTEARDOWN_GPADL, *PVMTEARDOWN_GPADL;
|
||||
|
||||
|
||||
|
||||
/* This is the format for a GPA-Direct packet, which contains a set of GPA */
|
||||
/* ranges, in addition to commands and/or data. */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMDATA_GPA_DIRECT : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* This is the format for a GPA-Direct packet, which contains a set of GPA
|
||||
* ranges, in addition to commands and/or data.
|
||||
*/
|
||||
typedef struct _VMDATA_GPA_DIRECT {
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
u32 Reserved;
|
||||
u32 RangeCount;
|
||||
GPA_RANGE Range[1];
|
||||
|
||||
} VMDATA_GPA_DIRECT, *PVMDATA_GPA_DIRECT;
|
||||
|
||||
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u32 Reserved;
|
||||
u32 RangeCount;
|
||||
GPA_RANGE Range[1];
|
||||
} __attribute__((packed)) VMDATA_GPA_DIRECT, *PVMDATA_GPA_DIRECT;
|
||||
|
||||
/* This is the format for a Additional Data Packet. */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct _VMADDITIONAL_DATA : VMPACKET_DESCRIPTOR {
|
||||
|
||||
#else
|
||||
|
||||
typedef struct _VMADDITIONAL_DATA {
|
||||
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
|
||||
#endif
|
||||
|
||||
u64 TotalBytes;
|
||||
u32 ByteOffset;
|
||||
u32 ByteCount;
|
||||
unsigned char Data[1];
|
||||
|
||||
} VMADDITIONAL_DATA, *PVMADDITIONAL_DATA;
|
||||
|
||||
|
||||
#pragma pack(pop)
|
||||
VMPACKET_DESCRIPTOR d;
|
||||
u64 TotalBytes;
|
||||
u32 ByteOffset;
|
||||
u32 ByteCount;
|
||||
unsigned char Data[1];
|
||||
} __attribute__((packed)) VMADDITIONAL_DATA, *PVMADDITIONAL_DATA;
|
||||
|
||||
typedef union {
|
||||
VMPACKET_DESCRIPTOR SimpleHeader;
|
||||
VMTRANSFER_PAGE_PACKET_HEADER TransferPageHeader;
|
||||
VMGPADL_PACKET_HEADER GpadlHeader;
|
||||
VMADD_REMOVE_TRANSFER_PAGE_SET AddRemoveTransferPageHeader;
|
||||
VMESTABLISH_GPADL EstablishGpadlHeader;
|
||||
VMTEARDOWN_GPADL TeardownGpadlHeader;
|
||||
VMDATA_GPA_DIRECT DataGpaDirectHeader;
|
||||
VMPACKET_DESCRIPTOR SimpleHeader;
|
||||
VMTRANSFER_PAGE_PACKET_HEADER TransferPageHeader;
|
||||
VMGPADL_PACKET_HEADER GpadlHeader;
|
||||
VMADD_REMOVE_TRANSFER_PAGE_SET AddRemoveTransferPageHeader;
|
||||
VMESTABLISH_GPADL EstablishGpadlHeader;
|
||||
VMTEARDOWN_GPADL TeardownGpadlHeader;
|
||||
VMDATA_GPA_DIRECT DataGpaDirectHeader;
|
||||
} VMPACKET_LARGEST_POSSIBLE_HEADER, *PVMPACKET_LARGEST_POSSIBLE_HEADER;
|
||||
|
||||
#define VMPACKET_DATA_START_ADDRESS(__packet) \
|
||||
(void *)(((unsigned char *)__packet) + ((PVMPACKET_DESCRIPTOR)__packet)->DataOffset8 * 8)
|
||||
#define VMPACKET_DATA_START_ADDRESS(__packet) \
|
||||
(void *)(((unsigned char *)__packet) + \
|
||||
((PVMPACKET_DESCRIPTOR)__packet)->DataOffset8 * 8)
|
||||
|
||||
#define VMPACKET_DATA_LENGTH(__packet) \
|
||||
((((PVMPACKET_DESCRIPTOR)__packet)->Length8 - ((PVMPACKET_DESCRIPTOR)__packet)->DataOffset8) * 8)
|
||||
#define VMPACKET_DATA_LENGTH(__packet) \
|
||||
((((PVMPACKET_DESCRIPTOR)__packet)->Length8 - \
|
||||
((PVMPACKET_DESCRIPTOR)__packet)->DataOffset8) * 8)
|
||||
|
||||
#define VMPACKET_TRANSFER_MODE(__packet) ((PVMPACKET_DESCRIPTOR)__packet)->Type
|
||||
#define VMPACKET_TRANSFER_MODE(__packet) \
|
||||
(((PVMPACKET_DESCRIPTOR)__packet)->Type)
|
||||
|
||||
typedef enum {
|
||||
VmbusServerEndpoint = 0,
|
||||
VmbusClientEndpoint,
|
||||
VmbusEndpointMaximum
|
||||
VmbusServerEndpoint = 0,
|
||||
VmbusClientEndpoint,
|
||||
VmbusEndpointMaximum
|
||||
} ENDPOINT_TYPE, *PENDPOINT_TYPE;
|
||||
|
||||
typedef enum {
|
||||
VmbusPacketTypeInvalid = 0x0,
|
||||
VmbusPacketTypeSynch = 0x1,
|
||||
VmbusPacketTypeAddTransferPageSet = 0x2,
|
||||
VmbusPacketTypeRemoveTransferPageSet = 0x3,
|
||||
VmbusPacketTypeEstablishGpadl = 0x4,
|
||||
VmbusPacketTypeTearDownGpadl = 0x5,
|
||||
VmbusPacketTypeDataInBand = 0x6,
|
||||
VmbusPacketTypeDataUsingTransferPages = 0x7,
|
||||
VmbusPacketTypeDataUsingGpadl = 0x8,
|
||||
VmbusPacketTypeDataUsingGpaDirect = 0x9,
|
||||
VmbusPacketTypeCancelRequest = 0xa,
|
||||
VmbusPacketTypeCompletion = 0xb,
|
||||
VmbusPacketTypeDataUsingAdditionalPackets = 0xc,
|
||||
VmbusPacketTypeAdditionalData = 0xd
|
||||
VmbusPacketTypeInvalid = 0x0,
|
||||
VmbusPacketTypeSynch = 0x1,
|
||||
VmbusPacketTypeAddTransferPageSet = 0x2,
|
||||
VmbusPacketTypeRemoveTransferPageSet = 0x3,
|
||||
VmbusPacketTypeEstablishGpadl = 0x4,
|
||||
VmbusPacketTypeTearDownGpadl = 0x5,
|
||||
VmbusPacketTypeDataInBand = 0x6,
|
||||
VmbusPacketTypeDataUsingTransferPages = 0x7,
|
||||
VmbusPacketTypeDataUsingGpadl = 0x8,
|
||||
VmbusPacketTypeDataUsingGpaDirect = 0x9,
|
||||
VmbusPacketTypeCancelRequest = 0xa,
|
||||
VmbusPacketTypeCompletion = 0xb,
|
||||
VmbusPacketTypeDataUsingAdditionalPackets = 0xc,
|
||||
VmbusPacketTypeAdditionalData = 0xd
|
||||
} VMBUS_PACKET_TYPE, *PVMBUS_PACKET_TYPE;
|
||||
|
||||
#define VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED 1
|
||||
#define VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED 1
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue