/* VmbusChannelSetEvent - Trigger an event notification on the specified channel.  */
static void VmbusChannelSetEvent(struct vmbus_channel *channel)
/* VmbusChannelSetEvent - Trigger an event notification on the specified channel.  */
static void VmbusChannelSetEvent(struct vmbus_channel *channel)
{
	struct hv_monitor_page *monitorPage;
	DPRINT_ENTER(VMBUS);
	if (Channel->OfferMsg.MonitorAllocated) {
		set_bit(Channel->OfferMsg.ChildRelId & 31,
			(unsigned long *) gVmbusConnection.SendInterruptPage +
			(Channel->OfferMsg.ChildRelId >> 5));
		monitorPage = gVmbusConnection.MonitorPages;
		monitorPage++;
		set_bit(Channel->MonitorBit,
			(unsigned long *)&monitorPage->TriggerGroup
					[Channel->MonitorGroup].Pending);
	} else {
		VmbusSetEvent(Channel->OfferMsg.ChildRelId);
	}
	DPRINT_EXIT(VMBUS);
}