svn commit: r302804 - head/sys/dev/hyperv/vmbus

Sepherosa Ziehau sephe at FreeBSD.org
Thu Jul 14 05:49:15 UTC 2016


Author: sephe
Date: Thu Jul 14 05:49:14 2016
New Revision: 302804
URL: https://svnweb.freebsd.org/changeset/base/302804

Log:
  hyperv/vmbus: Switch to vmbus channel message macros
  
  Prepare for more cleanup.
  
  MFC after:	1 week
  Sponsored by:	Microsoft OSTC
  Differential Revision:	https://reviews.freebsd.org/D7094

Modified:
  head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
  head/sys/dev/hyperv/vmbus/vmbus_reg.h

Modified: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c	Thu Jul 14 05:33:33 2016	(r302803)
+++ head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c	Thu Jul 14 05:49:14 2016	(r302804)
@@ -52,27 +52,30 @@ static void	vmbus_channel_on_offers_deli
 static void	vmbus_chan_msgproc_chrescind(struct vmbus_softc *,
 		    const struct vmbus_message *);
 
-/**
- * Channel message dispatch table
+/*
+ * Vmbus channel message processing.
  */
+
+#define VMBUS_CHANMSG_PROC(name, func)	\
+	[VMBUS_CHANMSG_TYPE_##name] = func
+#define VMBUS_CHANMSG_PROC_WAKEUP(name)	\
+	VMBUS_CHANMSG_PROC(name, vmbus_msghc_wakeup)
+
 static const vmbus_chanmsg_proc_t
-vmbus_chanmsg_process[HV_CHANNEL_MESSAGE_COUNT] = {
-	[HV_CHANNEL_MESSAGE_OFFER_CHANNEL] =
-		vmbus_channel_on_offer,
-	[HV_CHANNEL_MESSAGE_RESCIND_CHANNEL_OFFER] =
-		vmbus_chan_msgproc_chrescind,
-	[HV_CHANNEL_MESSAGE_ALL_OFFERS_DELIVERED] =
-		vmbus_channel_on_offers_delivered,
-	[HV_CHANNEL_MESSAGE_OPEN_CHANNEL_RESULT] =
-		vmbus_msghc_wakeup,
-	[HV_CHANNEL_MESSAGE_GPADL_CREATED] =
-		vmbus_msghc_wakeup,
-	[HV_CHANNEL_MESSAGE_GPADL_TORNDOWN] =
-		vmbus_msghc_wakeup,
-	[HV_CHANNEL_MESSAGE_VERSION_RESPONSE] =
-		vmbus_msghc_wakeup
+vmbus_chanmsg_process[VMBUS_CHANMSG_TYPE_MAX] = {
+	VMBUS_CHANMSG_PROC(CHOFFER,	vmbus_channel_on_offer),
+	VMBUS_CHANMSG_PROC(CHRESCIND,	vmbus_chan_msgproc_chrescind),
+	VMBUS_CHANMSG_PROC(CHOFFER_DONE,vmbus_channel_on_offers_delivered),
+
+	VMBUS_CHANMSG_PROC_WAKEUP(CHOPEN_RESP),
+	VMBUS_CHANMSG_PROC_WAKEUP(GPADL_CONNRESP),
+	VMBUS_CHANMSG_PROC_WAKEUP(GPADL_DISCONNRESP),
+	VMBUS_CHANMSG_PROC_WAKEUP(CONNECT_RESP)
 };
 
+#undef VMBUS_CHANMSG_PROC_WAKEUP
+#undef VMBUS_CHANMSG_PROC
+
 /**
  * @brief Allocate and initialize a vmbus channel object
  */

Modified: head/sys/dev/hyperv/vmbus/vmbus_reg.h
==============================================================================
--- head/sys/dev/hyperv/vmbus/vmbus_reg.h	Thu Jul 14 05:33:33 2016	(r302803)
+++ head/sys/dev/hyperv/vmbus/vmbus_reg.h	Thu Jul 14 05:49:14 2016	(r302804)
@@ -125,6 +125,7 @@ struct vmbus_gpa_range {
 #define VMBUS_CHANMSG_TYPE_CHOFFER		1	/* NOTE */
 #define VMBUS_CHANMSG_TYPE_CHRESCIND		2	/* NOTE */
 #define VMBUS_CHANMSG_TYPE_CHREQUEST		3	/* REQ */
+#define VMBUS_CHANMSG_TYPE_CHOFFER_DONE		4	/* NOTE */
 #define VMBUS_CHANMSG_TYPE_CHOPEN		5	/* REQ */
 #define VMBUS_CHANMSG_TYPE_CHOPEN_RESP		6	/* RESP */
 #define VMBUS_CHANMSG_TYPE_CHCLOSE		7	/* REQ */
@@ -137,6 +138,7 @@ struct vmbus_gpa_range {
 #define VMBUS_CHANMSG_TYPE_CONNECT		14	/* REQ */
 #define VMBUS_CHANMSG_TYPE_CONNECT_RESP		15	/* RESP */
 #define VMBUS_CHANMSG_TYPE_DISCONNECT		16	/* REQ */
+#define VMBUS_CHANMSG_TYPE_MAX			22
 
 struct vmbus_chanmsg_hdr {
 	uint32_t	chm_type;	/* VMBUS_CHANMSG_TYPE_ */


More information about the svn-src-head mailing list