Staging: hv: fix coding style issues in nvspprotocol.h
No typedef changes yet though. Cc: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
9f0c7d2cc3
commit
abb7aacb50
|
@ -21,286 +21,242 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "VmbusChannelInterface.h"
|
||||
|
||||
#define NVSP_INVALID_PROTOCOL_VERSION ((u32)0xFFFFFFFF)
|
||||
#define NVSP_INVALID_PROTOCOL_VERSION ((u32)0xFFFFFFFF)
|
||||
|
||||
#define NVSP_PROTOCOL_VERSION_1 2
|
||||
#define NVSP_MIN_PROTOCOL_VERSION NVSP_PROTOCOL_VERSION_1
|
||||
#define NVSP_MAX_PROTOCOL_VERSION NVSP_PROTOCOL_VERSION_1
|
||||
#define NVSP_PROTOCOL_VERSION_1 2
|
||||
#define NVSP_MIN_PROTOCOL_VERSION NVSP_PROTOCOL_VERSION_1
|
||||
#define NVSP_MAX_PROTOCOL_VERSION NVSP_PROTOCOL_VERSION_1
|
||||
|
||||
typedef enum _NVSP_MESSAGE_TYPE
|
||||
{
|
||||
NvspMessageTypeNone = 0,
|
||||
typedef enum _NVSP_MESSAGE_TYPE {
|
||||
NvspMessageTypeNone = 0,
|
||||
|
||||
/* Init Messages */
|
||||
NvspMessageTypeInit = 1,
|
||||
NvspMessageTypeInitComplete = 2,
|
||||
|
||||
/* Init Messages */
|
||||
NvspVersionMessageStart = 100,
|
||||
|
||||
NvspMessageTypeInit = 1,
|
||||
NvspMessageTypeInitComplete = 2,
|
||||
/* Version 1 Messages */
|
||||
NvspMessage1TypeSendNdisVersion = NvspVersionMessageStart,
|
||||
|
||||
NvspVersionMessageStart = 100,
|
||||
NvspMessage1TypeSendReceiveBuffer,
|
||||
NvspMessage1TypeSendReceiveBufferComplete,
|
||||
NvspMessage1TypeRevokeReceiveBuffer,
|
||||
|
||||
NvspMessage1TypeSendSendBuffer,
|
||||
NvspMessage1TypeSendSendBufferComplete,
|
||||
NvspMessage1TypeRevokeSendBuffer,
|
||||
|
||||
/* Version 1 Messages */
|
||||
|
||||
NvspMessage1TypeSendNdisVersion = NvspVersionMessageStart,
|
||||
|
||||
NvspMessage1TypeSendReceiveBuffer,
|
||||
NvspMessage1TypeSendReceiveBufferComplete,
|
||||
NvspMessage1TypeRevokeReceiveBuffer,
|
||||
|
||||
NvspMessage1TypeSendSendBuffer,
|
||||
NvspMessage1TypeSendSendBufferComplete,
|
||||
NvspMessage1TypeRevokeSendBuffer,
|
||||
|
||||
NvspMessage1TypeSendRNDISPacket,
|
||||
NvspMessage1TypeSendRNDISPacketComplete,
|
||||
|
||||
|
||||
/* This should be set to the number of messages for the version */
|
||||
/* with the maximum number of messages. */
|
||||
|
||||
NvspNumMessagePerVersion = 9,
|
||||
NvspMessage1TypeSendRNDISPacket,
|
||||
NvspMessage1TypeSendRNDISPacketComplete,
|
||||
|
||||
/*
|
||||
* 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
|
||||
{
|
||||
NvspStatusNone = 0,
|
||||
NvspStatusSuccess,
|
||||
NvspStatusFailure,
|
||||
NvspStatusProtocolVersionRangeTooNew,
|
||||
NvspStatusProtocolVersionRangeTooOld,
|
||||
NvspStatusInvalidRndisPacket,
|
||||
NvspStatusBusy,
|
||||
NvspStatusMax,
|
||||
typedef enum _NVSP_STATUS {
|
||||
NvspStatusNone = 0,
|
||||
NvspStatusSuccess,
|
||||
NvspStatusFailure,
|
||||
NvspStatusProtocolVersionRangeTooNew,
|
||||
NvspStatusProtocolVersionRangeTooOld,
|
||||
NvspStatusInvalidRndisPacket,
|
||||
NvspStatusBusy,
|
||||
NvspStatusMax,
|
||||
} NVSP_STATUS, *PNVSP_STATUS;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef struct _NVSP_MESSAGE_HEADER
|
||||
{
|
||||
u32 MessageType;
|
||||
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 {
|
||||
u32 MinProtocolVersion;
|
||||
u32 MaxProtocolVersion;
|
||||
} __attribute__((packed)) 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).
|
||||
*/
|
||||
typedef struct _NVSP_MESSAGE_INIT_COMPLETE {
|
||||
u32 NegotiatedProtocolVersion;
|
||||
u32 MaximumMdlChainLength;
|
||||
u32 Status;
|
||||
} __attribute__((packed)) NVSP_MESSAGE_INIT_COMPLETE, *PNVSP_MESSAGE_INIT_COMPLETE;
|
||||
|
||||
/* 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). */
|
||||
|
||||
typedef struct _NVSP_MESSAGE_INIT_COMPLETE
|
||||
{
|
||||
u32 NegotiatedProtocolVersion;
|
||||
u32 MaximumMdlChainLength;
|
||||
u32 Status;
|
||||
} NVSP_MESSAGE_INIT_COMPLETE, *PNVSP_MESSAGE_INIT_COMPLETE;
|
||||
|
||||
typedef union _NVSP_MESSAGE_INIT_UBER
|
||||
{
|
||||
NVSP_MESSAGE_INIT Init;
|
||||
NVSP_MESSAGE_INIT_COMPLETE InitComplete;
|
||||
} NVSP_MESSAGE_INIT_UBER;
|
||||
|
||||
typedef union _NVSP_MESSAGE_INIT_UBER {
|
||||
NVSP_MESSAGE_INIT Init;
|
||||
NVSP_MESSAGE_INIT_COMPLETE InitComplete;
|
||||
} __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 {
|
||||
u32 NdisMajorVersion;
|
||||
u32 NdisMinorVersion;
|
||||
} __attribute__((packed)) 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.
|
||||
*/
|
||||
typedef struct _NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER {
|
||||
u32 GpadlHandle;
|
||||
u16 Id;
|
||||
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER, *PNVSP_1_MESSAGE_SEND_RECEIVE_BUFFER;
|
||||
|
||||
/* 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_RECEIVE_BUFFER_SECTION {
|
||||
u32 Offset;
|
||||
u32 SubAllocationSize;
|
||||
u32 NumSubAllocations;
|
||||
u32 EndOffset;
|
||||
} __attribute__((packed)) NVSP_1_RECEIVE_BUFFER_SECTION, *PNVSP_1_RECEIVE_BUFFER_SECTION;
|
||||
|
||||
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 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.
|
||||
*/
|
||||
|
||||
/* 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. */
|
||||
/*
|
||||
* For example, the following break up of the receive buffer has 6
|
||||
* large suballocations and 10 small suballocations.
|
||||
*/
|
||||
|
||||
typedef struct _NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER
|
||||
{
|
||||
u32 GpadlHandle;
|
||||
u16 Id;
|
||||
} NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER, *PNVSP_1_MESSAGE_SEND_RECEIVE_BUFFER;
|
||||
/*
|
||||
* | Large Section | | Small Section |
|
||||
* ------------------------------------------------------------
|
||||
* | | | | | | | | | | | | | | | | | |
|
||||
* | |
|
||||
* LargeOffset SmallOffset
|
||||
*/
|
||||
|
||||
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;
|
||||
NVSP_1_RECEIVE_BUFFER_SECTION Sections[1];
|
||||
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE, *PNVSP_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. */
|
||||
|
||||
/* For example, the following break up of the receive */
|
||||
/* buffer has 6 large suballocations and 10 small */
|
||||
/* suballocations. */
|
||||
|
||||
/* | Large Section | | Small Section | */
|
||||
/* ------------------------------------------------------------ */
|
||||
/* | | | | | | | | | | | | | | | | | | */
|
||||
/* | | */
|
||||
/* LargeOffset SmallOffset */
|
||||
|
||||
NVSP_1_RECEIVE_BUFFER_SECTION Sections[1];
|
||||
|
||||
} 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
|
||||
{
|
||||
u16 Id;
|
||||
/*
|
||||
* 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 {
|
||||
u32 GpadlHandle;
|
||||
u16 Id;
|
||||
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_SEND_BUFFER, *PNVSP_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. */
|
||||
/*
|
||||
* 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;
|
||||
|
||||
typedef struct _NVSP_1_MESSAGE_SEND_SEND_BUFFER
|
||||
{
|
||||
u32 GpadlHandle;
|
||||
u16 Id;
|
||||
} NVSP_1_MESSAGE_SEND_SEND_BUFFER, *PNVSP_1_MESSAGE_SEND_SEND_BUFFER;
|
||||
/*
|
||||
* 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;
|
||||
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE, *PNVSP_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. */
|
||||
|
||||
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. */
|
||||
|
||||
typedef struct _NVSP_1_MESSAGE_REVOKE_SEND_BUFFER
|
||||
{
|
||||
u16 Id;
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
u32 ChannelType;
|
||||
|
||||
/* This message is used by both the VSP and the VSC to send */
|
||||
/* a RNDIS message to the opposite channel endpoint. */
|
||||
/*
|
||||
* 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;
|
||||
} __attribute__((packed)) NVSP_1_MESSAGE_SEND_RNDIS_PACKET, *PNVSP_1_MESSAGE_SEND_RNDIS_PACKET;
|
||||
|
||||
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. */
|
||||
|
||||
u32 SendBufferSectionIndex;
|
||||
u32 SendBufferSectionSize;
|
||||
} 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
|
||||
{
|
||||
u32 Status;
|
||||
/*
|
||||
* 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
|
||||
{
|
||||
NVSP_1_MESSAGE_SEND_NDIS_VERSION SendNdisVersion;
|
||||
typedef union _NVSP_MESSAGE_1_UBER {
|
||||
NVSP_1_MESSAGE_SEND_NDIS_VERSION SendNdisVersion;
|
||||
|
||||
NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER SendReceiveBuffer;
|
||||
NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE SendReceiveBufferComplete;
|
||||
NVSP_1_MESSAGE_REVOKE_RECEIVE_BUFFER RevokeReceiveBuffer;
|
||||
NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER SendReceiveBuffer;
|
||||
NVSP_1_MESSAGE_SEND_RECEIVE_BUFFER_COMPLETE SendReceiveBufferComplete;
|
||||
NVSP_1_MESSAGE_REVOKE_RECEIVE_BUFFER RevokeReceiveBuffer;
|
||||
|
||||
NVSP_1_MESSAGE_SEND_SEND_BUFFER SendSendBuffer;
|
||||
NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE SendSendBufferComplete;
|
||||
NVSP_1_MESSAGE_REVOKE_SEND_BUFFER RevokeSendBuffer;
|
||||
NVSP_1_MESSAGE_SEND_SEND_BUFFER SendSendBuffer;
|
||||
NVSP_1_MESSAGE_SEND_SEND_BUFFER_COMPLETE SendSendBufferComplete;
|
||||
NVSP_1_MESSAGE_REVOKE_SEND_BUFFER RevokeSendBuffer;
|
||||
|
||||
NVSP_1_MESSAGE_SEND_RNDIS_PACKET SendRNDISPacket;
|
||||
NVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE SendRNDISPacketComplete;
|
||||
} NVSP_1_MESSAGE_UBER;
|
||||
|
||||
typedef union _NVSP_ALL_MESSAGES
|
||||
{
|
||||
NVSP_MESSAGE_INIT_UBER InitMessages;
|
||||
NVSP_1_MESSAGE_UBER Version1Messages;
|
||||
|
||||
} NVSP_ALL_MESSAGES;
|
||||
NVSP_1_MESSAGE_SEND_RNDIS_PACKET SendRNDISPacket;
|
||||
NVSP_1_MESSAGE_SEND_RNDIS_PACKET_COMPLETE SendRNDISPacketComplete;
|
||||
} __attribute__((packed)) NVSP_1_MESSAGE_UBER;
|
||||
|
||||
typedef union _NVSP_ALL_MESSAGES {
|
||||
NVSP_MESSAGE_INIT_UBER InitMessages;
|
||||
NVSP_1_MESSAGE_UBER Version1Messages;
|
||||
} __attribute__((packed)) NVSP_ALL_MESSAGES;
|
||||
|
||||
/* ALL Messages */
|
||||
typedef struct _NVSP_MESSAGE {
|
||||
NVSP_MESSAGE_HEADER Header;
|
||||
NVSP_ALL_MESSAGES Messages;
|
||||
} __attribute__((packed)) NVSP_MESSAGE, *PNVSP_MESSAGE;
|
||||
|
||||
typedef struct _NVSP_MESSAGE
|
||||
{
|
||||
NVSP_MESSAGE_HEADER Header;
|
||||
NVSP_ALL_MESSAGES Messages;
|
||||
} NVSP_MESSAGE, *PNVSP_MESSAGE;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
|
Loading…
Reference in New Issue