.\" -*- nroff -*- .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md .\" .TH IBV_OPEN_DEVICE 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" .SH "NAME" ibv_open_device, ibv_close_device \- open and close an RDMA device context .SH "SYNOPSIS" .nf .B #include .sp .BI "struct ibv_context *ibv_open_device(struct ibv_device " "*device" "); .sp .BI "int ibv_close_device(struct ibv_context " "*context" "); .fi .SH "DESCRIPTION" .B ibv_open_device() opens the device .I device and creates a context for further use. .PP .B ibv_close_device() closes the device context .I context\fR. .SH "RETURN VALUE" .B ibv_open_device() returns a pointer to the allocated device context, or NULL if the request fails. .PP .B ibv_close_device() returns 0 on success, \-1 on failure. .SH "NOTES" .B ibv_close_device() does not release all the resources allocated using context .I context\fR. To avoid resource leaks, the user should release all associated resources before closing a context. Setting the environment variable **RDMAV_ALLOW_DISASSOC_DESTROY** tells the library to relate an EIO from destroy commands as a success as the kernel resources were already released. This comes to prevent memory leakage in the user space area upon device disassociation. Applications using this flag cannot call ibv_get_cq_event or ibv_get_async_event concurrently with any call to an object destruction function. .SH "SEE ALSO" .BR ibv_get_device_list (3), .BR ibv_query_device (3), .BR ibv_query_port (3), .BR ibv_query_gid (3), .BR ibv_query_pkey (3) .SH "AUTHORS" .TP Dotan Barak