[ofa-general] Stringify ibv_event_type

Steve Wise swise at opengridcomputing.com
Thu Jun 21 17:10:01 PDT 2007


Looks good to me!


Sean Hefty wrote:
>> /me nudges sean...
>>     
>
> How's this?  Does anything else need to be done with the build (beyond a new
> release at some point)?
>
> Signed-off-by: Sean Hefty <sean.hefty at intel.com>
>
> diff --git a/include/rdma/rdma_cma.h b/include/rdma/rdma_cma.h
> index f920ae0..43c71d5 100644
> --- a/include/rdma/rdma_cma.h
> +++ b/include/rdma/rdma_cma.h
> @@ -463,7 +463,7 @@ int rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr);
>   *   Destruction of an rdma_cm_id will block until related events have been
>   *   acknowledged.
>   * See also:
> - *   rdma_ack_cm_event, rdma_create_event_channel
> + *   rdma_ack_cm_event, rdma_create_event_channel, rdma_event_str
>   */
>  int rdma_get_cm_event(struct rdma_event_channel *channel,
>  		      struct rdma_cm_event **event);
> @@ -519,6 +519,16 @@ struct ibv_context **rdma_get_devices(int *num_devices);
>   */
>  void rdma_free_devices(struct ibv_context **list);
>  
> +/**
> + * rdma_event_str - Returns a string representation of an rdma cm event.
> + * @event: Asynchronous event.
> + * Description:
> + *   Returns a string representation of an asynchronous event.
> + * See also:
> + *   rdma_get_cm_event
> + */
> +const char *rdma_event_str(enum rdma_cm_event_type event);
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/man/rdma_event_str.3 b/man/rdma_event_str.3
> new file mode 100644
> index 0000000..a6ee3e5
> --- /dev/null
> +++ b/man/rdma_event_str.3
> @@ -0,0 +1,15 @@
> +.TH "RDMA_EVENT_STR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm
> +.SH NAME
> +rdma_event_str \- Returns a string representation of an rdma cm event.
> +.SH SYNOPSIS
> +.B "#include <rdma/rdma_cma.h>"
> +.P
> +.B "char *" rdma_event_str
> +.BI "("enum ibv_event_type " event ");"
> +.SH ARGUMENTS
> +.IP "event" 12
> +Asynchronous event.
> +.SH "DESCRIPTION"
> +Returns a string representation of an asynchronous event.
> +.SH "SEE ALSO"
> +rdma_get_cm_event(3)
> diff --git a/man/rdma_get_cm_event.3 b/man/rdma_get_cm_event.3
> index a260092..252a7ab 100644
> --- a/man/rdma_get_cm_event.3
> +++ b/man/rdma_get_cm_event.3
> @@ -62,4 +62,4 @@ no longer accessible and should be rejoined, if desired.
>  .SH "SEE ALSO"
>  rdma_ack_cm_event(3), rdma_create_event_channel(3), rdma_resolve_addr(3),
>  rdma_resolve_route(3), rdma_connect(3), rdma_listen(3), rdma_join_multicast(3),
> -rdma_destroy_id(3)
> +rdma_destroy_id(3), rdma_event_str(3)
> diff --git a/src/cma.c b/src/cma.c
> index fdadb69..3579530 100644
> --- a/src/cma.c
> +++ b/src/cma.c
> @@ -1359,3 +1359,39 @@ retry:
>  	*event = &evt->event;
>  	return 0;
>  }
> +
> +const char *rdma_event_str(enum rdma_cm_event_type event)
> +{
> +	switch (event) {
> +	case RDMA_CM_EVENT_ADDR_RESOLVED:
> +		return "RDMA_CM_EVENT_ADDR_RESOLVED";
> +	case RDMA_CM_EVENT_ADDR_ERROR:
> +		return "RDMA_CM_EVENT_ADDR_ERROR";
> +	case RDMA_CM_EVENT_ROUTE_RESOLVED:
> +		return "RDMA_CM_EVENT_ROUTE_RESOLVED";
> +	case RDMA_CM_EVENT_ROUTE_ERROR:
> +		return "RDMA_CM_EVENT_ROUTE_ERROR";
> +	case RDMA_CM_EVENT_CONNECT_REQUEST:
> +		return "RDMA_CM_EVENT_CONNECT_REQUEST";
> +	case RDMA_CM_EVENT_CONNECT_RESPONSE:
> +		return "RDMA_CM_EVENT_CONNECT_RESPONSE";
> +	case RDMA_CM_EVENT_CONNECT_ERROR:
> +		return "RDMA_CM_EVENT_CONNECT_ERROR";
> +	case RDMA_CM_EVENT_UNREACHABLE:
> +		return "RDMA_CM_EVENT_UNREACHABLE";
> +	case RDMA_CM_EVENT_REJECTED:
> +		return "RDMA_CM_EVENT_REJECTED";
> +	case RDMA_CM_EVENT_ESTABLISHED:
> +		return "RDMA_CM_EVENT_ESTABLISHED";
> +	case RDMA_CM_EVENT_DISCONNECTED:
> +		return "RDMA_CM_EVENT_DISCONNECTED";
> +	case RDMA_CM_EVENT_DEVICE_REMOVAL:
> +		return "RDMA_CM_EVENT_DEVICE_REMOVAL";
> +	case RDMA_CM_EVENT_MULTICAST_JOIN:
> +		return "RDMA_CM_EVENT_MULTICAST_JOIN";
> +	case RDMA_CM_EVENT_MULTICAST_ERROR:
> +		return "RDMA_CM_EVENT_MULTICAST_ERROR";
> +	default:
> +		return "UNKNOWN EVENT";
> +	}
> +}
> diff --git a/src/librdmacm.map b/src/librdmacm.map
> index 06e9765..eafeae4 100644
> --- a/src/librdmacm.map
> +++ b/src/librdmacm.map
> @@ -23,5 +23,6 @@ RDMACM_1.0 {
>  		rdma_leave_multicast;
>  		rdma_get_devices;
>  		rdma_free_devices;
> +		rdma_event_str;
>  	local: *;
>  };
>
> ===
>
> diff --git a/examples/cmatose.c b/examples/cmatose.c
> index 4479fd4..0daaab0 100644
> --- a/examples/cmatose.c
> +++ b/examples/cmatose.c
> @@ -320,8 +320,8 @@ static int cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
>  	case RDMA_CM_EVENT_CONNECT_ERROR:
>  	case RDMA_CM_EVENT_UNREACHABLE:
>  	case RDMA_CM_EVENT_REJECTED:
> -		printf("cmatose: event: %d, error: %d\n", event->event,
> -			event->status);
> +		printf("cmatose: event: %s, error: %d\n",
> +		       rdma_event_str(event->event), event->status);
>  		connect_error();
>  		break;
>  	case RDMA_CM_EVENT_DISCONNECTED:
> diff --git a/examples/mckey.c b/examples/mckey.c
> index 24514a4..15371b6 100644
> --- a/examples/mckey.c
> +++ b/examples/mckey.c
> @@ -305,8 +305,8 @@ static int cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
>  	case RDMA_CM_EVENT_ADDR_ERROR:
>  	case RDMA_CM_EVENT_ROUTE_ERROR:
>  	case RDMA_CM_EVENT_MULTICAST_ERROR:
> -		printf("mckey: event: %d, error: %d\n", event->event,
> -			event->status);
> +		printf("mckey: event: %s, error: %d\n",
> +		       rdma_event_str(event->event), event->status);
>  		connect_error();
>  		ret = event->status;
>  		break;
> diff --git a/examples/rping.c b/examples/rping.c
> index 2dd1cef..c03d3b5 100644
> --- a/examples/rping.c
> +++ b/examples/rping.c
> @@ -164,7 +164,8 @@ static int rping_cma_event_handler(struct rdma_cm_id *cma_id,
>  	int ret = 0;
>  	struct rping_cb *cb = cma_id->context;
>  
> -	DEBUG_LOG("cma_event type %d cma_id %p (%s)\n", event->event, cma_id,
> +	DEBUG_LOG("cma_event type %s cma_id %p (%s)\n",
> +		  rdma_event_str(event->event), cma_id,
>  		  (cma_id == cb->cm_id) ? "parent" : "child");
>  
>  	switch (event->event) {
> @@ -207,14 +208,15 @@ static int rping_cma_event_handler(struct rdma_cm_id *cma_id,
>  	case RDMA_CM_EVENT_CONNECT_ERROR:
>  	case RDMA_CM_EVENT_UNREACHABLE:
>  	case RDMA_CM_EVENT_REJECTED:
> -		fprintf(stderr, "cma event %d, error %d\n", event->event,
> -		       event->status);
> +		fprintf(stderr, "cma event %s, error %d\n",
> +			rdma_event_str(event->event), event->status);
>  		sem_post(&cb->sem);
>  		ret = -1;
>  		break;
>  
>  	case RDMA_CM_EVENT_DISCONNECTED:
> -		fprintf(stderr, "%s DISCONNECT EVENT...\n", cb->server ? "server" : "client");
> +		fprintf(stderr, "%s DISCONNECT EVENT...\n",
> +			cb->server ? "server" : "client");
>  		sem_post(&cb->sem);
>  		break;
>  
> diff --git a/examples/udaddy.c b/examples/udaddy.c
> index 12e6297..1b6a732 100644
> --- a/examples/udaddy.c
> +++ b/examples/udaddy.c
> @@ -363,8 +363,8 @@ static int cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
>  	case RDMA_CM_EVENT_CONNECT_ERROR:
>  	case RDMA_CM_EVENT_UNREACHABLE:
>  	case RDMA_CM_EVENT_REJECTED:
> -		printf("udaddy: event: %d, error: %d\n", event->event,
> -			event->status);
> +		printf("udaddy: event: %s, error: %d\n",
> +		       rdma_event_str(event->event), event->status);
>  		connect_error();
>  		ret = event->status;
>  		break;
>
>   



More information about the general mailing list