.\" Automatically generated by Pandoc 1.16.0.2
.\"
.TH "mlx5dv_devx_alloc_msi_vector" "3" "2022\-01\-12" "mlx5" "mlx5 Programmer\[aq]s Manual"
.hy
.SH NAME
.PP
mlx5dv_devx_alloc_msi_vector \- Allocate an msi vector to be used for
creating an EQ.
.PP
mlx5dv_devx_free_msi_vector \- Release an msi vector.
.SH SYNOPSIS
.IP
.nf
\f[C]
#include\ <infiniband/mlx5dv.h>

struct\ mlx5dv_devx_msi_vector\ *
mlx5dv_devx_alloc_msi_vector(struct\ ibv_context\ *ibctx);

int\ mlx5dv_devx_free_msi_vector(struct\ mlx5dv_devx_msi_vector\ *msi);
\f[]
.fi
.SH DESCRIPTION
.PP
Allocate or free an msi vector to be used for creating an EQ.
.PP
The allocate API exposes a mlx5dv_devx_msi_vector object, which includes
an msi vector and a fd.
The vector can be used as the "eqc.intr" field when creating an EQ,
while the fd (created as non\-blocking) can be polled to see once there
is some data on that EQ.
.SH ARGUMENTS
.TP
.B \f[I]ibctx\f[]
RDMA device context to create the action on.
.RS
.RE
.TP
.B \f[I]msi\f[]
The msi vector object to work on.
.RS
.RE
.SS msi_vector
.IP
.nf
\f[C]
struct\ mlx5dv_devx_msi_vector\ {
\ \ \ \ int\ vector;
\ \ \ \ int\ fd;
};
\f[]
.fi
.TP
.B \f[I]vector\f[]
The vector to be used when creating the EQ over the device
specification.
.RS
.RE
.TP
.B \f[I]fd\f[]
The FD that will be used for polling.
.RS
.RE
.SH RETURN VALUE
.PP
Upon success \f[I]mlx5dv_devx_alloc_msi_vector\f[] will return a new
\f[I]struct mlx5dv_devx_msi_vector\f[]; On error NULL will be returned
and errno will be set.
.PP
Upon success \f[I]mlx5dv_devx_free_msi_vector\f[] will return 0, on
error errno will be returned.
.SH AUTHOR
.PP
Mark Zhang <markzhang@nvidia.com>
