From c3e5d0c6ba10546673181653f225e2e8080bbc96 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Thu, 21 Jun 2007 15:36:38 -0700 Subject: [PATCH] librdmacm/cma: add routine to convert rdma cm events to strings Signed-off-by: Sean Hefty --- include/rdma/rdma_cma.h | 12 +++++++++++- man/rdma_event_str.3 | 15 +++++++++++++++ man/rdma_get_cm_event.3 | 2 +- src/cma.c | 36 ++++++++++++++++++++++++++++++++++++ src/librdmacm.map | 1 + 5 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 man/rdma_event_str.3 diff --git a/include/rdma/rdma_cma.h b/include/rdma/rdma_cma.h index f920ae04..43c71d5f 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 00000000..a6ee3e5f --- /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 " +.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 a2600927..252a7abb 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 fdadb69b..35795300 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 06e97652..eafeae46 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: *; }; -- 2.41.0