Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/hyperv/include/hyperv.h
Show First 20 Lines • Show All 287 Lines • ▼ Show 20 Lines | typedef struct hv_vmbus_channel { | ||||
* delivered on cpu 0. Setting this value to 0 would preserve | * delivered on cpu 0. Setting this value to 0 would preserve | ||||
* the earlier behavior. | * the earlier behavior. | ||||
*/ | */ | ||||
uint32_t target_vcpu; | uint32_t target_vcpu; | ||||
/* The corresponding CPUID in the guest */ | /* The corresponding CPUID in the guest */ | ||||
uint32_t target_cpu; | uint32_t target_cpu; | ||||
/* | /* | ||||
* Support for multi-channels. | * If this is a primary channel, ch_subchan* fields | ||||
* The initial offer is considered the primary channel and this | * contain sub-channels belonging to this primary | ||||
* offer message will indicate if the host supports multi-channels. | * channel. | ||||
* The guest is free to ask for multi-channels to be offerred and can | |||||
* open these multi-channels as a normal "primary" channel. However, | |||||
* all multi-channels will have the same type and instance guids as the | |||||
* primary channel. Requests sent on a given channel will result in a | |||||
* response on the same channel. | |||||
*/ | */ | ||||
struct mtx ch_subchan_lock; | |||||
TAILQ_HEAD(, hv_vmbus_channel) ch_subchans; | |||||
int ch_subchan_cnt; | |||||
struct mtx sc_lock; | /* If this is a sub-channel */ | ||||
TAILQ_ENTRY(hv_vmbus_channel) ch_sublink; /* sub-channel link */ | |||||
/* | struct hv_vmbus_channel *ch_prichan; /* owner primary chan */ | ||||
* Link list of all the multi-channels if this is a primary channel | |||||
*/ | |||||
TAILQ_HEAD(, hv_vmbus_channel) sc_list_anchor; | |||||
TAILQ_ENTRY(hv_vmbus_channel) sc_list_entry; | |||||
int subchan_cnt; | |||||
/* | |||||
* The primary channel this sub-channle belongs to. | |||||
* This will be NULL for the primary channel. | |||||
*/ | |||||
struct hv_vmbus_channel *primary_channel; | |||||
/* | /* | ||||
* Driver private data | * Driver private data | ||||
*/ | */ | ||||
void *hv_chan_priv1; | void *hv_chan_priv1; | ||||
void *hv_chan_priv2; | void *hv_chan_priv2; | ||||
void *hv_chan_priv3; | void *hv_chan_priv3; | ||||
▲ Show 20 Lines • Show All 124 Lines • Show Last 20 Lines |