Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/hyperv/vmbus/vmbus_reg.h
Context not available. | |||||
#define VMBUS_CHANMSG_TYPE_CONNECT 14 /* REQ */ | #define VMBUS_CHANMSG_TYPE_CONNECT 14 /* REQ */ | ||||
#define VMBUS_CHANMSG_TYPE_CONNECT_RESP 15 /* RESP */ | #define VMBUS_CHANMSG_TYPE_CONNECT_RESP 15 /* RESP */ | ||||
#define VMBUS_CHANMSG_TYPE_DISCONNECT 16 /* REQ */ | #define VMBUS_CHANMSG_TYPE_DISCONNECT 16 /* REQ */ | ||||
#define VMBUS_CHANMSG_TYPE_17 17 | |||||
#define VMBUS_CHANMSG_TYPE_18 18 | |||||
#define VMBUS_CHANMSG_TYPE_19 19 | |||||
#define VMBUS_CHANMSG_TYPE_20 20 | |||||
#define VMBUS_CHANMSG_TYPE_TL_CONN 21 /* REQ */ | |||||
#define VMBUS_CHANMSG_TYPE_MAX 22 | #define VMBUS_CHANMSG_TYPE_MAX 22 | ||||
struct vmbus_chanmsg_hdr { | struct vmbus_chanmsg_hdr { | ||||
Context not available. | |||||
struct vmbus_chanmsg_hdr chm_hdr; | struct vmbus_chanmsg_hdr chm_hdr; | ||||
} __packed; | } __packed; | ||||
/* VMBUS_CHANMSG_TYPE_TL_CONN */ | |||||
/* Hyper-V socket guest connect request */ | |||||
struct vmbus_chanmsg_tl_connect { | |||||
struct vmbus_chanmsg_hdr chm_hdr; | |||||
struct hyperv_guid guest_endpoint_id; | |||||
struct hyperv_guid host_service_id; | |||||
} __packed; | |||||
/* VMBUS_CHANMSG_TYPE_CHOPEN */ | /* VMBUS_CHANMSG_TYPE_CHOPEN */ | ||||
struct vmbus_chanmsg_chopen { | struct vmbus_chanmsg_chopen { | ||||
struct vmbus_chanmsg_hdr chm_hdr; | struct vmbus_chanmsg_hdr chm_hdr; | ||||
Context not available. | |||||
uint32_t chm_chanid; | uint32_t chm_chanid; | ||||
} __packed; | } __packed; | ||||
/* Size of the user defined data buffer for non-pipe offers */ | |||||
#define VMBUS_CHANMSG_CHOFFER_UDATA_SIZE 120 | |||||
/* Size of the user defined data buffer for pipe offers. */ | |||||
#define VMBUS_CHANMSG_CHOFFER_UDATA_PIPE_SIZE 116 | |||||
/* VMBUS_CHANMSG_TYPE_CHOFFER */ | /* VMBUS_CHANMSG_TYPE_CHOFFER */ | ||||
struct vmbus_chanmsg_choffer { | struct vmbus_chanmsg_choffer { | ||||
struct vmbus_chanmsg_hdr chm_hdr; | struct vmbus_chanmsg_hdr chm_hdr; | ||||
Context not available. | |||||
uint32_t chm_svrctx_sz; | uint32_t chm_svrctx_sz; | ||||
uint16_t chm_chflags; | uint16_t chm_chflags; | ||||
uint16_t chm_mmio_sz; /* unit: MB */ | uint16_t chm_mmio_sz; /* unit: MB */ | ||||
uint8_t chm_udata[120]; | |||||
union { | |||||
/* Non-pipes */ | |||||
struct { | |||||
uint8_t user_def[VMBUS_CHANMSG_CHOFFER_UDATA_SIZE]; | |||||
} std; | |||||
/* | |||||
* Pipes: | |||||
* For integrated pipe protocol, which is implemented on | |||||
* top of standard user-defined data. Pipe clients have | |||||
* VMBUS_CHANMSG_CHOFFER_UDATA_PIPE_SIZE bytes left for | |||||
* their own user. | |||||
*/ | |||||
struct { | |||||
uint32_t pipe_mode; | |||||
uint8_t | |||||
user_def[VMBUS_CHANMSG_CHOFFER_UDATA_PIPE_SIZE]; | |||||
} pipe; | |||||
} chm_udata; | |||||
uint16_t chm_subidx; | uint16_t chm_subidx; | ||||
uint16_t chm_rsvd; | uint16_t chm_rsvd; | ||||
uint32_t chm_chanid; | uint32_t chm_chanid; | ||||
Context not available. | |||||
} __packed; | } __packed; | ||||
CTASSERT(sizeof(struct vmbus_chanmsg_choffer) <= VMBUS_MSG_DSIZE_MAX); | CTASSERT(sizeof(struct vmbus_chanmsg_choffer) <= VMBUS_MSG_DSIZE_MAX); | ||||
/* Server Flags */ | |||||
#define VMBUS_CHAN_ENUM_DEVICE_INTERFACE 1 | |||||
#define VMBUS_CHAN_SVR_SUPPORTS_TRANSFER_PAGES 2 | |||||
#define VMBUS_CHAN_SVR_SUPPORTS_GPADLS 4 | |||||
#define VMBUS_CHAN_NAMED_PIPE_MODE 0x10 | |||||
#define VMBUS_CHAN_LOOPBACK_OFFER 0x100 | |||||
#define VMBUS_CHAN_PARENT_OFFER 0x200 | |||||
#define VMBUS_CHAN_REQUEST_MONITORED_NOTIFICATION 0x400 | |||||
#define VMBUS_CHAN_TLNPI_PROVIDER_OFFER 0x2000 | |||||
#define VMBUS_CHOFFER_FLAG1_HASMNF 0x01 | #define VMBUS_CHOFFER_FLAG1_HASMNF 0x01 | ||||
#endif /* !_VMBUS_REG_H_ */ | #endif /* !_VMBUS_REG_H_ */ | ||||
Context not available. |