[openib-general] [PATCH] libibverbs/examples/asyncwatch.c: Added a print of the event name in string format

Dotan Barak dotanb at mellanox.co.il
Sun Mar 19 07:44:14 PST 2006


Added a print of the event name in string format.

Signed-off-by: Dotan Barak <dotanb at mellanox.co.il>

Index: latest/src/userspace/libibverbs/examples/asyncwatch.c
===================================================================
--- latest.orig/src/userspace/libibverbs/examples/asyncwatch.c	2006-03-19 12:03:02.000000000 +0200
+++ latest/src/userspace/libibverbs/examples/asyncwatch.c	2006-03-19 17:36:14.000000000 +0200
@@ -42,6 +42,38 @@
 
 #include <infiniband/verbs.h>
 
+static const char *event_name_str(enum ibv_event_type event_type)
+{
+	switch (event_type) {
+	case IBV_EVENT_DEVICE_FATAL:
+		return "IBV_EVENT_DEVICE_FATAL";
+	case IBV_EVENT_PORT_ACTIVE:
+		return "IBV_EVENT_PORT_ACTIVE";
+	case IBV_EVENT_PORT_ERR:
+		return "IBV_EVENT_PORT_ERR";
+	case IBV_EVENT_LID_CHANGE:
+		return "IBV_EVENT_LID_CHANGE";
+	case IBV_EVENT_PKEY_CHANGE:
+		return "IBV_EVENT_PKEY_CHANGE";
+	case IBV_EVENT_SM_CHANGE:
+		return "IBV_EVENT_SM_CHANGE";
+
+	case IBV_EVENT_CQ_ERR:
+	case IBV_EVENT_QP_FATAL:
+	case IBV_EVENT_QP_REQ_ERR:
+	case IBV_EVENT_QP_ACCESS_ERR:
+	case IBV_EVENT_COMM_EST:
+	case IBV_EVENT_SQ_DRAINED:
+	case IBV_EVENT_PATH_MIG:
+	case IBV_EVENT_PATH_MIG_ERR:
+	case IBV_EVENT_SRQ_ERR:
+	case IBV_EVENT_SRQ_LIMIT_REACHED:
+	case IBV_EVENT_QP_LAST_WQE_REACHED:
+	default:
+		return "unexpected";
+	}
+}
+
 int main(int argc, char *argv[])
 {
 	struct ibv_device **dev_list;
@@ -73,9 +105,9 @@ int main(int argc, char *argv[])
 		if (ibv_get_async_event(context, &event))
 			return 1;
 
-		printf("  event_type %d, port %d\n", event.event_type,
-		       event.element.port_num);
-
+		printf("  event_type %s (%d), port %d\n",
+		       event_name_str(event.event_type),
+		       event.event_type, event.element.port_num);
 		ibv_ack_async_event(&event);
 	}
 



More information about the general mailing list