<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<link rel="stylesheet" href="./robodoc.css" type="text/css">
<title>./iba_doc/ib_al_ioctl_h.html</title>
<!-- Source: ./iba/ib_al_ioctl.h -->
<!-- Generated with ROBODoc Version 4.99.17 (Aug 2 2005) -->
</head>
<body bgcolor="#FFFFFF">
<a name="robo_top_of_doc">Generated from ./iba/ib_al_ioctl.h</a> with <a href="http://sourceforge.net/projects/robodoc/">ROBODoc</a> v4.99.17 on Thu Sep 22 2005 14:46:34
<br />
<hr />
<h2><a name="robo493">[Structures]<a name="User2dmode20Access20Layer2fual5falloc5fpd5fioctl5ft">
User-mode Access Layer/ual_alloc_pd_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_alloc_pd_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo8">ib_alloc_pd</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_alloc_pd_ioctl
{
struct _ual_alloc_pd_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_ca;
<a href="./ib_types_h.html#robo125">ib_pd_type_t</a> type;
void* __ptr64 context;
} in;
struct _ual_alloc_pd_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_pd;
} out;
} <strong>ual_alloc_pd_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_ca
The handle to an open instance of CA returned in a ual_open_ca_ioctl.
in.context
UAL's pd context. This context will be provided on destroy callback.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation
out.h_pd
The handle to the PD to use in further PD-related IOCTLs.
</pre>
</span>
<hr />
<h2><a name="robo494">[Structures]<a name="User2dmode20Access20Layer2fual5fattach5fmcast5fioctl5ft">
User-mode Access Layer/ual_attach_mcast_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_attach_mcast_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
verbs attach multicast call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_attach_mcast_ioctl
{
struct _ual_attach_mcast_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_qp;
<a href="./ib_types_h.html#robo370">ib_gid_t</a> mgid;
<a href="./ib_types_h.html#robo407">ib_net16_t</a> mlid;
} in;
struct _ual_attach_mcast_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_attach;
} out;
} <strong>ual_attach_mcast_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_qp
Handle to the QP that is joining the multicast group.
in.mgid
Multicast GID address for this multicast group.
in.mlid
Multicast LID for this multicast group.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
h_attach
Multicast group handle.
</pre>
</span>
<hr />
<h2><a name="robo495">[Structures]<a name="User2dmode20Access20Layer2fual5fbind5ffile5fioctl5ft">
User-mode Access Layer/ual_bind_file_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_bind_file_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
binding a file handle to an existing proxy context.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_bind_file_ioctl
{
void* __ptr64 h_file;
} <strong>ual_bind_file_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> h_file
File handle from the user-mode process intended for asynchronous requests.
The IOCTL code will specify the type of asynchronous requests to be
performed on this file handle.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"></span>
<hr />
<h2><a name="robo496">[Structures]<a name="User2dmode20Access20Layer2fual5fbind5fmw5fioctl5ft">
User-mode Access Layer/ual_bind_mw_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_bind_mw_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo18">ib_bind_mw</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_bind_mw_ioctl
{
struct _ual_bind_mw_ioctl_in
{
uint64_t h_mw;
uint64_t h_qp;
<a href="./ib_types_h.html#robo19">ib_bind_wr_t</a> mw_bind;
} in;
struct _ual_bind_mw_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t r_key;
} out;
} <strong>ual_bind_mw_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mw
A handle to an existing memory window.
in.h_qp
The qp handle to post the bind request.
in.mw_bind
Bind request.
out.status
Status of the operation.
out.rkey
RKey for the memory window.
</pre>
</span>
<hr />
<h2><a name="robo497">[Structures]<a name="User2dmode20Access20Layer2fual5fcancel5fmad5fioctl5ft">
User-mode Access Layer/ual_cancel_mad_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cancel_mad_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo22">ib_cancel_mad</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_cancel_mad_ioctl
{
struct _ual_cancel_mad_ioctl_in
{
uint64_t h_mad_svc;
void* __ptr64 h_proxy_element;
} in;
struct _ual_cancel_mad_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_cancel_mad_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mad_svc
contains the handle to the mad service
in.h_mad_send
this references the handle to the sent MAD operation.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo498">[Structures]<a name="User2dmode20Access20Layer2fual5fcancel5fsa5freq5fioctl5ft">
User-mode Access Layer/ual_cancel_sa_req_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cancel_sa_req_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for cancelling an
SA request.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cancel_sa_req_ioctl
{
uint64_t h_sa_req;
} <strong>ual_cancel_sa_req_ioctl_t</strong>;
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> h_sa_req
Handle to the query to cancel.
</pre>
</span>
<hr />
<h2><a name="robo499">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fapr5fioctl5ft">
User-mode Access Layer/ual_cep_apr_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_apr_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for
ib_cep_apr
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_cep_apr_ioctl
{
struct _ual_cep_apr_ioctl_in
{
net32_t cid;
<a href="./ib_al_h.html#robo31">ib_cm_apr_t</a> cm_apr;
uint8_t apr_info[IB_APR_INFO_SIZE];
uint8_t pdata[IB_APR_PDATA_SIZE];
} in;
struct _ual_cep_apr_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo167">ib_qp_mod_t</a> apr;
} out;
} <strong>ual_cep_apr_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cm_lap
The cm_lap connection handle got on the LAP callback.
in.cm_apr
CM APR parameters.
</pre>
</span>
<hr />
<h2><a name="robo500">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fdrep5fioctl5ft">
User-mode Access Layer/ual_cep_drep_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_drep_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo34">ib_cm_drep</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_drep_ioctl
{
net32_t cid;
<a href="./ib_al_h.html#robo36">ib_cm_drep_t</a> cm_drep;
uint8_t pdata[IB_DREP_PDATA_SIZE];
} <strong>ual_cep_drep_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cm_dreq
The cm_dreq connection handle got on the callback.
in.cm_drep
CM DREP parameters.
</pre>
</span>
<hr />
<h2><a name="robo501">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fdreq5fioctl5ft">
User-mode Access Layer/ual_cep_dreq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_dreq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for
<a href="./ib_al_h.html#robo37">ib_cm_dreq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_dreq_ioctl
{
net32_t cid;
uint8_t pdata_len;
uint8_t pdata[IB_DREQ_PDATA_SIZE];
} <strong>ual_cep_dreq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> cm_dreq
CM DREQ parameters.
</pre>
</span>
<hr />
<h2><a name="robo502">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fget5frtr5fioctl5ft">
User-mode Access Layer/ual_cep_get_rtr_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_get_rtr_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the output parameters for
al_cep_get_rtr_attr call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_get_rtr_ioctl
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo167">ib_qp_mod_t</a> rtr;
} <strong>ual_cep_get_rtr_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> out.status
Status of the operation.
out.rtr
QP modify paramters for RTR state transition.
</pre>
</span>
<hr />
<h2><a name="robo503">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fget5frts5fioctl5ft">
User-mode Access Layer/ual_cep_get_rts_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_get_rts_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the output parameters for
al_cep_get_rts_attr call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_get_rts_ioctl
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo167">ib_qp_mod_t</a> rts;
} <strong>ual_cep_get_rts_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> out.status
Status of the operation.
out.rts
QP modify paramters for RTS state transition.
</pre>
</span>
<hr />
<h2><a name="robo504">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fget5ftimewait5fioctl5ft">
User-mode Access Layer/ual_cep_get_timewait_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_get_timewait_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the output parameters for
ib_cep_get_timewait
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_get_timewait_ioctl
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t timewait_us;
} <strong>ual_cep_get_timewait_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.status
Status of the request.
in.timewait_us
Timewait value, in microseconds.
</pre>
</span>
<hr />
<h2><a name="robo505">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fhandoff5fioctl5ft">
User-mode Access Layer/ual_cep_handoff_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_handoff_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo41">ib_cm_handoff</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_cep_handoff_ioctl
{
struct _ual_cep_handoff_ioctl_in
{
uint64_t h_cm;
net64_t sid;
} in;
struct _ual_cep_handoff_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_cep_handoff_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cm
The connection handle got on the callback.
in.sid
Service ID to which to handoff the listen.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo506">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5flap5fioctl5ft">
User-mode Access Layer/ual_cep_lap_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_lap_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for
<a href="./ib_al_h.html#robo42">ib_cm_lap</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_lap_ioctl
{
net32_t cid;
<a href="./ib_al_h.html#robo44">ib_cm_lap_t</a> cm_lap;
<a href="./ib_types_h.html#robo441">ib_path_rec_t</a> alt_path;
uint8_t pdata[IB_LAP_PDATA_SIZE];
} <strong>ual_cep_lap_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.cm_lap
CM LAP parameters
in.alt_path
Alternate path information.
</pre>
</span>
<hr />
<h2><a name="robo507">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5flisten5fioctl5ft">
User-mode Access Layer/ual_cep_listen_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_listen_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters to
perform a CM listen request.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_listen_ioctl
{
net32_t cid;
<a href="./ib_al_h.html#robo24">ib_cep_listen_t</a> cep_listen;
uint8_t compare[IB_REQ_PDATA_SIZE];
} <strong>ual_cep_listen_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.cid
CID of an existing CEP.
in.cep_listen
Information used to direct the listen request to match incoming
connection requests.
</pre>
</span>
<hr />
<h2><a name="robo508">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fmra5fioctl5ft">
User-mode Access Layer/ual_cep_mra_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_mra_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for
<a href="./ib_al_h.html#robo47">ib_cm_mra</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_mra_ioctl
{
net32_t cid;
<a href="./ib_al_h.html#robo49">ib_cm_mra_t</a> cm_mra;
uint8_t pdata[IB_MRA_PDATA_SIZE];
} <strong>ual_cep_mra_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.cid
The CID for the target CEP.
in.cm_mra
CM MRA parameters.
</pre>
</span>
<hr />
<h2><a name="robo509">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5fpoll5fioctl5ft">
User-mode Access Layer/ual_cep_poll_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_poll_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the output parameters to
poll for incoming events on a CEP. The input parameter is the CID.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_poll_ioctl
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
void* __ptr64 context;
net32_t new_cid;
<a href="./ib_al_h.html#robo110">ib_mad_element_t</a> element;
<a href="./ib_types_h.html#robo373">ib_grh_t</a> grh;
uint8_t mad_buf[<a href="./ib_types_h.html#robo346">MAD_BLOCK_SIZE</a>];
} <strong>ual_cep_poll_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> status
Status of the operation.
new_cep
For listen requests, CEP information of CEPs created in response
to incoming REQs.
mad_buf
Payload of a received MAD (or failed send)
</pre>
</span>
<hr />
<h2><a name="robo510">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5frej5fioctl5ft">
User-mode Access Layer/ual_cep_rej_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_rej_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for
al_cep_rej
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_rej_ioctl
{
net32_t cid;
<a href="./ib_types_h.html#robo198">ib_rej_status_t</a> rej_status;
uint8_t ari_len;
uint8_t pdata_len;
uint8_t ari[IB_ARI_SIZE];
uint8_t pdata[IB_REJ_PDATA_SIZE];
} <strong>ual_cep_rej_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.cid
The CID of the target CEP.
in.rej_status
Rejection status as defined in IB spec.
in.ari_len
Length of the ARI data.
in.pdata_len
Length of the private data.
in.ari
ARI data.
in.pdata
Private data.
</pre>
</span>
<hr />
<h2><a name="robo511">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5frep5fioctl5ft">
User-mode Access Layer/ual_cep_rep_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_rep_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
al_cep_pre_rep call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_cep_rep_ioctl
{
struct _ual_cep_rep_ioctl_in
{
void* __ptr64 context;
net32_t cid;
<a href="./ib_al_h.html#robo55">ib_cm_rep_t</a> cm_rep;
uint8_t pdata[IB_REP_PDATA_SIZE];
} in;
struct _ual_cep_rep_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo167">ib_qp_mod_t</a> init;
} out;
} <strong>ual_cep_rep_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cm_req
The cm_req connection handle got on the callback.
in.cm_rep
CM REP parameters.
out.status
Status of the operation.
out.init
QP modify paramters for INIT state transition.
</pre>
</span>
<hr />
<h2><a name="robo512">[Structures]<a name="User2dmode20Access20Layer2fual5fcep5frtu5fioctl5ft">
User-mode Access Layer/ual_cep_rtu_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cep_rtu_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for
al_cep_rtu call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_cep_rtu_ioctl
{
net32_t cid;
uint8_t pdata_len;
uint8_t pdata[IB_RTU_PDATA_SIZE];
} <strong>ual_cep_rtu_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.cid
The cm_rep connection handle got on the callback.
in.pdata_len
Length of private data.
in.pdata
Private data.
</pre>
</span>
<hr />
<h2><a name="robo513">[Structures]<a name="User2dmode20Access20Layer2fual5fci5fcall5fioctl5ft">
User-mode Access Layer/ual_ci_call_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_ci_call_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo25">ib_ci_call</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_ci_call_ioctl
{
struct _ual_ci_call_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo26">ib_ci_op_t</a> ci_op;
uint64_t h_ca;
uint32_t num_handles;
uint64_t handle_array[1];
} in;
struct _ual_ci_call_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo26">ib_ci_op_t</a> ci_op;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_ci_call_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.ci_op
Contains information on the operation that needs to be performed
by the verbs provider. The proxy marshals the data buffer between
user mode and kernel space.
in.h_ca
The handle to an open instance of CA returned by a ual_open_ca_ioctl.
in.num_handles
The number of handles in the array at in.p_handle_array.
in.handle_array
First entry in an array of handles used for this operation. Ignored if
in.num_handles is zero.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation
out.ci_op
Contains information on the operation that needs to be performed
by the verbs provider. The proxy marshals the data buffer between
user mode and kernel space.
</pre>
</span>
<hr />
<h2><a name="robo514">[Structures]<a name="User2dmode20Access20Layer2fual5fclose5fca5fioctl5ft">
User-mode Access Layer/ual_close_ca_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_close_ca_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo28">ib_close_ca</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_close_ca_ioctl
{
struct _ual_close_ca_ioctl_in
{
uint64_t h_ca;
} in;
struct _ual_close_ca_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_close_ca_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_ca
The handle to an open instance of CA (in KAL space).
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo515">[Structures]<a name="User2dmode20Access20Layer2fual5fcm5freq5fioctl5ft">
User-mode Access Layer/ual_cm_req_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_cm_req_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
al_cep_pre_req call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_cep_req_ioctl
{
struct _ual_cep_req_ioctl_in
{
net32_t cid;
<a href="./ib_al_h.html#robo58">ib_cm_req_t</a> cm_req;
<a href="./ib_types_h.html#robo441">ib_path_rec_t</a> paths[2];
uint8_t pdata[IB_REQ_PDATA_SIZE];
uint8_t compare[IB_REQ_PDATA_SIZE];
} in;
struct _ual_cep_req_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo167">ib_qp_mod_t</a> init;
} out;
} ual_cep_req_ioctl_t;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.cid
CID of the target CEP.
in.cm_req
CM REQ parameters.
in.paths
Array of paths, the first being the primary path to use for the REQ.
out.status
Status of the operation
out.init
QP modify paramters for INIT state transition.
</pre>
</span>
<hr />
<h2><a name="robo516">[Structures]<a name="User2dmode20Access20Layer2fual5fcreate5fav5fioctl5ft">
User-mode Access Layer/ual_create_av_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_create_av_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo64">ib_create_av</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_create_av_ioctl
{
struct _ual_create_av_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_pd;
<a href="./ib_types_h.html#robo17">ib_av_attr_t</a> attr;
} in;
struct _ual_create_av_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_av;
} out;
} <strong>ual_create_av_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_pd
The handle to an already allocated PD (in KAL space).
in.attr
Attributes of the address vector that needs to be created.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.h_av
Handle to the newly created address vector.
</pre>
</span>
<hr />
<h2><a name="robo517">[Structures]<a name="User2dmode20Access20Layer2fual5fcreate5fcep5fioctl5ft">
User-mode Access Layer/ual_create_cep_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_create_cep_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the output parameters to
create a CEP.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_create_cep_ioctl
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
net32_t cid;
} <strong>ual_create_cep_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> status
Status of the operation.
cid
CID of the created CEP.
</pre>
</span>
<hr />
<h2><a name="robo518">[Structures]<a name="User2dmode20Access20Layer2fual5fcreate5fcq5fioctl5ft">
User-mode Access Layer/ual_create_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_create_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo65">ib_create_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_create_cq_ioctl
{
struct _ual_create_cq_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_ca;
void* __ptr64 h_wait_obj;
void* __ptr64 context;
uint32_t size;
boolean_t ev_notify;
} in;
struct _ual_create_cq_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_cq;
uint32_t size;
} out;
} <strong>ual_create_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_ca
CA handle on which to create the CQ.
in.cq_create
Attributes necessary for creating the cq.
in.cq_context
UAL's cq context that needs to be returned on a callback.
in.ev_notify
Boolean indicating whether asynchronous events should be
forwared to user-mode.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
h_cq
Handle to the newly created CQ.
size
Actual size of the newly created CQ.
</pre>
</span>
<hr />
<h2><a name="robo519">[Structures]<a name="User2dmode20Access20Layer2fual5fcreate5fmw5fioctl5ft">
User-mode Access Layer/ual_create_mw_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_create_mw_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo68">ib_create_mw</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_create_mw_ioctl
{
struct _ual_create_mw_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_pd;
} in;
struct _ual_create_mw_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
net32_t rkey;
uint64_t h_mw;
} out;
} <strong>ual_create_mw_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_pd
A handle to the protection domain on which the memory window should
be created.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.rkey
RKey associated with the memory window.
h_mw
Handle to the newly created MW.
</pre>
</span>
<hr />
<h2><a name="robo520">[Structures]<a name="User2dmode20Access20Layer2fual5fcreate5fqp5fioctl5ft">
User-mode Access Layer/ual_create_qp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_create_qp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo69">ib_create_qp</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_create_qp_ioctl
{
struct _ual_create_qp_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_pd;
<a href="./ib_types_h.html#robo166">ib_qp_create_t</a> qp_create;
void* __ptr64 context;
boolean_t ev_notify;
} in;
struct _ual_create_qp_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo165">ib_qp_attr_t</a> attr;
uint64_t h_qp;
} out;
} <strong>ual_create_qp_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_pd
Protection domain on which to create the QP.
in.qp_create
Attributes necessary for creating the QP.
in.context
UAL's qp context that needs to be returned on a callback.
in.ev_notify
Boolean indicating whether asynchronous events should be
forwarded to user-mode.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.attr
Actual attributes of the newly created QP.
out.h_qp
Handle for the newly created QP.
</pre>
</span>
<hr />
<h2><a name="robo521">[Structures]<a name="User2dmode20Access20Layer2fual5fdealloc5fpd5fioctl5ft">
User-mode Access Layer/ual_dealloc_pd_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_dealloc_pd_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo70">ib_dealloc_pd</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_dealloc_pd_ioctl
{
struct _ual_dealloc_pd_ioctl_in
{
uint64_t h_pd;
} in;
struct _ual_dealloc_pd_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_dealloc_pd_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_pd
The handle of the PD that is going to be deallocated.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo522">[Structures]<a name="User2dmode20Access20Layer2fual5fdereg5fmad5fpool5fioctl5ft">
User-mode Access Layer/ual_dereg_mad_pool_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_dereg_mad_pool_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
deregistering a mad pool to be used with special qp.
The kernel proxy will deregister and destroy the mad pool
created on behalf of the user process.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_dereg_mad_pool_ioctl
{
struct _ual_dereg_mad_pool_ioctl_in
{
uint64_t pool_key;
} in;
struct _ual_dereg_mad_pool_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_dereg_mad_pool_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.pool_key
Pool key to the mad pool in kernel space.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo523">[Structures]<a name="User2dmode20Access20Layer2fual5fdereg5fmad5fsvc5fioctl5ft">
User-mode Access Layer/ual_dereg_mad_svc_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_dereg_mad_svc_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
ib_dereg_mad_svc
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_dereg_mad_svc_ioctl
{
struct _ual_dereg_mad_svc_ioctl_in
{
uint64_t h_mad_svc;
} in;
struct _ual_dereg_mad_svc_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_dereg_mad_svc_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mad_svc
Handle to the mad service.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo524">[Structures]<a name="User2dmode20Access20Layer2fual5fdereg5fmr5fioctl5ft">
User-mode Access Layer/ual_dereg_mr_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_dereg_mr_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo72">ib_dereg_mr</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_dereg_mr_ioctl
{
struct _ual_dereg_mr_ioctl_in
{
uint64_t h_mr;
} in;
struct _ual_dereg_mr_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_dereg_mr_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mr
A handle to a registered memory region.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo525">[Structures]<a name="User2dmode20Access20Layer2fual5fdereg5fpnp5fioctl5ft">
User-mode Access Layer/ual_dereg_pnp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_dereg_pnp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for cancelling an
SA request.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_dereg_pnp_ioctl
{
uint64_t h_pnp;
} <strong>ual_dereg_pnp_ioctl_t</strong>;
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre> This is an asynchronous IOCTL.
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> h_pnp
Handle to the PnP registration to deregister.
</pre>
</span>
<hr />
<h2><a name="robo526">[Structures]<a name="User2dmode20Access20Layer2fual5fdestroy5fav5fioctl5ft">
User-mode Access Layer/ual_destroy_av_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_destroy_av_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo75">ib_destroy_av</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_destroy_av_ioctl
{
struct _ual_destroy_av_ioctl_in
{
uint64_t h_av;
} in;
struct _ual_destroy_av_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_destroy_av_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_av
A handle to an existing address vector.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo527">[Structures]<a name="User2dmode20Access20Layer2fual5fdestroy5fcq5fioctl5ft">
User-mode Access Layer/ual_destroy_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_destroy_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo76">ib_destroy_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_destroy_cq_ioctl
{
struct _ual_destroy_cq_ioctl_in
{
uint64_t h_cq;
} in;
struct _ual_destroy_cq_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_destroy_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cq
Handle of the cq that needs to be destroyed.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo528">[Structures]<a name="User2dmode20Access20Layer2fual5fdestroy5fmw5fioctl5ft">
User-mode Access Layer/ual_destroy_mw_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_destroy_mw_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo79">ib_destroy_mw</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_destroy_mw_ioctl
{
struct _ual_destroy_mw_ioctl_in
{
uint64_t h_mw;
} in;
struct _ual_destroy_mw_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_destroy_mw_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mw
A handle to an existing memory window.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo529">[Structures]<a name="User2dmode20Access20Layer2fual5fdestroy5fqp5fioctl5ft">
User-mode Access Layer/ual_destroy_qp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_destroy_qp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo80">ib_destroy_qp</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_destroy_qp_ioctl
{
struct _ual_destroy_qp_ioctl_in
{
uint64_t h_qp;
} in;
struct _ual_destroy_qp_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_destroy_qp_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_qp
Handle of the QP that needs to be destroyed.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo530">[Structures]<a name="User2dmode20Access20Layer2fual5fdetach5fmcast5fioctl5ft">
User-mode Access Layer/ual_detach_mcast_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_detach_mcast_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
verbs detach call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_detach_mcast_ioctl
{
struct _ual_detach_mcast_ioctl_in
{
uint64_t h_attach;
} in;
struct _ual_detach_mcast_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_detach_mcast_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_attach
A handle to the multicast group.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo531">[Structures]<a name="User2dmode20Access20Layer2fual5fforce5fapm5fioctl5ft">
User-mode Access Layer/ual_force_apm_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_force_apm_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo85">ib_force_apm</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_force_apm_ioctl
{
union _ual_force_apm_ioctl_in
{
uint64_t h_qp;
} in;
struct _ual_force_apm_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_force_apm_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_qp
A handle to the QP to migrate.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo532">[Structures]<a name="User2dmode20Access20Layer2fual5fget5fuvp5fname5ft">
User-mode Access Layer/ual_get_uvp_name_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_get_uvp_name_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
getting the user library information.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_get_uvp_name
{
struct _ual_get_uvp_name_in
{
<a href="./ib_types_h.html#robo409">ib_net64_t</a> ca_guid;
} in;
struct _ual_get_uvp_name_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
char uvp_lib_name[MAX_LIB_NAME];
} out;
} ual_get_uvp_name_ioctl_t;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.ca_guid
The GUID of the channel adapter
out.status
Status of the operation
out.uvp_lib_name
The vendor's library name associated with the CA
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"></span>
<hr />
<h2><a name="robo533">[Structures]<a name="User2dmode20Access20Layer2fual5fmad5frecv5fioctl5ft">
User-mode Access Layer/ual_mad_recv_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_mad_recv_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters to get
the mad_element information upon receiving MAD.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_mad_recv_ioctl
{
struct _ual_mad_recv_comp_ioctl_in
{
uint64_t h_mad;
<a href="./ib_al_h.html#robo110">ib_mad_element_t</a>* __ptr64 p_user_mad;
<a href="./ib_types_h.html#robo396">ib_mad_t</a>* __ptr64 p_mad_buf;
<a href="./ib_types_h.html#robo373">ib_grh_t</a>* __ptr64 p_grh;
} in;
struct _ual_mad_recv_comp_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_mad_recv_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mad
Received MAD handle handed to usermode in the MAD recv notification.
in.p_user_mad
Pointer to a user-mode mad element.
in.p_mad_buf
Pointer to the MAD element's user-mode buffer.
in.p_grh
Ponter to the MAD element's user-mode GRH buffer.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo534">[Structures]<a name="User2dmode20Access20Layer2fual5fmodify5fav5fioctl5ft">
User-mode Access Layer/ual_modify_av_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_modify_av_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo115">ib_modify_av</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_modify_av_ioctl
{
struct _ual_modify_av_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_av;
<a href="./ib_types_h.html#robo17">ib_av_attr_t</a> attr;
} in;
struct _ual_modify_av_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_modify_av_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_av
A handle to an existing address vector.
in.attr
The requested attributes to be used for modifying the address vector.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo535">[Structures]<a name="User2dmode20Access20Layer2fual5fmodify5fca5fioctl5ft">
User-mode Access Layer/ual_modify_ca_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_modify_ca_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo116">ib_modify_ca</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_modify_ca_ioctl
{
struct _ual_modify_ca_ioctl_in
{
uint64_t h_ca;
uint8_t port_num;
<a href="./ib_types_h.html#robo21">ib_ca_mod_t</a> ca_mod;
<a href="./ib_types_h.html#robo159">ib_port_attr_mod_t</a> port_attr_mod;
} in;
struct _ual_modify_ca_ioclt_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_modify_ca_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_ca
The handle to an open instance of CA (in KAL space).
in.port_num
An index of the port that is being modified.
in.ca_mod
The mask of the attributes and counters to modify.
in.port_attr_mod
List of port attribute information to modify.
out.status
Status of the operation
</pre>
</span>
<hr />
<h2><a name="robo536">[Structures]<a name="User2dmode20Access20Layer2fual5fmodify5fcq5fioctl5ft">
User-mode Access Layer/ual_modify_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_modify_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo117">ib_modify_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_modify_cq_ioctl
{
struct _ual_modify_cq_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_cq;
uint32_t size;
} in;
struct _ual_modify_cq_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t size;
} out;
} <strong>ual_modify_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_cq
A handle to the CQ to modify.
in.size
The requested new size of the CQ.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.size
The actual size of the CQ.
</pre>
</span>
<hr />
<h2><a name="robo537">[Structures]<a name="User2dmode20Access20Layer2fual5fmodify5fqp5fioctl5ft">
User-mode Access Layer/ual_modify_qp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_modify_qp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo118">ib_modify_qp</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_modify_qp_ioctl
{
struct _ual_modify_qp_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_qp;
<a href="./ib_types_h.html#robo167">ib_qp_mod_t</a> modify_attr;
} in;
struct _ual_modify_qp_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
//ib_qp_query_t query_attr; // Not returned by AL
} out;
} <strong>ual_modify_qp_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_qp
A handle to an existing Queue Pair.
in.modify_attr
Attributes used for modifying the QP.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.query_attr
On return from the ioctl, contains the actual attributes of
the QP just modified.
</pre>
</span>
<hr />
<h2><a name="robo538">[Structures]<a name="User2dmode20Access20Layer2fual5fopen5fca5fioctl5ft">
User-mode Access Layer/ual_open_ca_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_open_ca_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo124">ib_open_ca</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_open_ca_ioctl
{
struct _ual_open_ca_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo409">ib_net64_t</a> guid;
void* __ptr64 context;
} in;
struct _ual_open_ca_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_ca;
} out;
} <strong>ual_open_ca_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.guid
The GUID of the channel adapter to open.
in.context
A caller-specified context to associate with this opened instance
of the channel adapter. This context is returned to the user when
invoking asynchronous callbacks referencing this channel adapter.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation
out.h_ca
On return from IOCTL, contains the CA Handle from AL.
</pre>
</span>
<hr />
<h2><a name="robo539">[Structures]<a name="User2dmode20Access20Layer2fual5fpeek5fcq5fioctl5ft">
User-mode Access Layer/ual_peek_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_peek_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo126">ib_peek_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_peek_cq_ioctl
{
struct _ual_peek_cq_ioctl_in
{
uint64_t h_cq;
} in;
struct _ual_peek_cq_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t n_cqes;
} out;
} <strong>ual_peek_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cq
A handle to a CQ.
out.status
Status of the operation.
out.n_cqes
The number of completion queue entries currently on the CQ.
</pre>
</span>
<hr />
<h2><a name="robo540">[Structures]<a name="User2dmode20Access20Layer2fual5fpoll5fcq5fioctl5ft">
User-mode Access Layer/ual_poll_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_poll_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo158">ib_poll_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_poll_cq_ioctl
{
struct _ual_poll_cq_ioctl_in
{
uint64_t h_cq;
uint32_t num_wc;
} in;
struct _ual_poll_cq_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t num_wc;
<a href="./ib_types_h.html#robo220">ib_wc_t</a> wc[1];
/* Additional WC's follow. */
} out;
} <strong>ual_poll_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cq
A handle to cq that is going to be polled for completions.
in.num_wc
Number of work completions in the output array.
out.status
Status of the operation.
out.num_wc
Number of work completions polled.
out.wc
First work completion in the array to use for polling.
</pre>
</span>
<hr />
<h2><a name="robo541">[Structures]<a name="User2dmode20Access20Layer2fual5fpoll5fpnp5fioctl5ft">
User-mode Access Layer/ual_poll_pnp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_poll_pnp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the parameters for retriveing data for
a PnP event.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_poll_pnp_ioctl
{
struct _ual_poll_pnp_ioctl_in
{
uint64_t evt_hdl;
} in;
struct _ual_poll_pnp_ioctl_out
{
<a href="./ib_al_h.html#robo156">ib_pnp_rec_t</a> pnp_rec;
} out;
} <strong>ual_poll_pnp_ioctl_t</strong>;
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre> This is a synchronous IOCTL.
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> in.evt_hdl
Handle to a new PnP event.
out.pnp_rec
Buffer for the new PnP event.
</pre>
</span>
<hr />
<h2><a name="robo542">[Structures]<a name="User2dmode20Access20Layer2fual5fpost5frecv5fioctl5ft">
User-mode Access Layer/ual_post_recv_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_post_recv_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo162">ib_post_recv</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_post_recv_ioctl
{
struct _ual_post_recv_ioctl_in
{
uint64_t h_qp;
uint32_t num_wr;
uint32_t num_ds;
<a href="./ib_types_h.html#robo185">ib_recv_wr_t</a> recv_wr[1];
/* Additional work requests follow, followed by data segments. */
} in;
struct _ual_post_recv_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t failed_cnt;
} out;
} <strong>ual_post_recv_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_qp
A handle to QP where the work request is being posted.
in.num_wr
Number of work request items in the array of work requests.
in.num_ds
Number of data segments following the array of work requests.
in.recv_wr
First work request in the array of work requests being posted.
out.status
Status of the operation.
failed_cnt
Number of work request that failed.
</pre>
</span>
<hr />
<h2><a name="robo543">[Structures]<a name="User2dmode20Access20Layer2fual5fpost5fsend5fioctl5ft">
User-mode Access Layer/ual_post_send_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_post_send_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo163">ib_post_send</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_post_send_ioctl
{
struct _ual_post_send_ioctl_in
{
uint64_t h_qp;
uint32_t num_wr;
uint32_t num_ds;
<a href="./ib_types_h.html#robo209">ib_send_wr_t</a> send_wr[1];
/* Additional work requests follow, followed by data segments. */
} in;
struct _ual_post_send_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t failed_cnt;
} out;
} <strong>ual_post_send_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_qp
A handle to QP where the work request is being posted.
in.num_wr
Number of work request items in the array of work requests.
in.num_ds
Number of data segments following the array of work requests.
in.send_wr
First work request in the array of work requests being posted.
out.status
Status of the operation.
out.failed_cnt
Number of work request that failed.
</pre>
</span>
<hr />
<h2><a name="robo544">[Structures]<a name="User2dmode20Access20Layer2fual5fquery5fav5fioctl5ft">
User-mode Access Layer/ual_query_av_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_query_av_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo172">ib_query_av</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_query_av_ioctl
{
struct _ual_query_av_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_av;
} in;
struct _ual_query_av_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo17">ib_av_attr_t</a> attr;
void* __ptr64 pd_context;
} out;
} <strong>ual_query_av_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_av
A handle to an existing address vector.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.attr
Attributes of the address vector.
pd_context
Context associated with the PD when created.
</pre>
</span>
<hr />
<h2><a name="robo545">[Structures]<a name="User2dmode20Access20Layer2fual5fquery5fca5fioctl5ft">
User-mode Access Layer/ual_query_ca_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_query_ca_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo173">ib_query_ca</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_query_ca_ioctl
{
struct _ual_query_ca_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_ca;
uint32_t byte_cnt;
<a href="./ib_types_h.html#robo20">ib_ca_attr_t</a>* __ptr64 p_ca_attr;
} in;
struct _ual_query_ca_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t byte_cnt;
} out;
} <strong>ual_query_ca_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_ca
The handle to an open instance of CA returned via a
ual_open_ca_ioctl structure.
in.byte_cnt
Specifies the size of the data buffer referenced by the p_ca_attr
parameter.
p_ca_attr
A reference to a buffer where the channel adapter attributes,
including port attribute information will be copied. If this parameter
is NULL, then the required buffer size needed to return all of the CA
attribute information is returned through the out.byte_cnt parameter.
The <a href="./ib_types_h.html#robo20">ib_ca_attr_t</a> structure for the specified channel adapter is stored
at the top of this buffer.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation
out.byte_cnt
Contains the number of bytes used or needed to copy all CA attributes.
</pre>
</span>
<hr />
<h2><a name="robo546">[Structures]<a name="User2dmode20Access20Layer2fual5fquery5fcq5fioctl5ft">
User-mode Access Layer/ual_query_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_query_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo175">ib_query_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_query_cq_ioctl
{
struct _ual_query_cq_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_cq;
} in;
struct _ual_query_cq_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint32_t size;
} out;
} <strong>ual_query_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_cq
A handle to an existing CQ.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.size
The size of the CQ.
</pre>
</span>
<hr />
<h2><a name="robo547">[Structures]<a name="User2dmode20Access20Layer2fual5fquery5fmr5fioctl5ft">
User-mode Access Layer/ual_query_mr_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_query_mr_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo176">ib_query_mr</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_query_mr_ioctl
{
struct _ual_query_mr_ioctl_in
{
uint64_t h_mr;
} in;
struct _ual_query_mr_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo119">ib_mr_attr_t</a> attr;
} out;
} <strong>ual_query_mr_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mr
A handle to a registered memory region.
out.status
Status of the operation.
out.attr
Attributes of the registered memory region.
</pre>
</span>
<hr />
<h2><a name="robo548">[Structures]<a name="User2dmode20Access20Layer2fual5fquery5fmw5fioctl5ft">
User-mode Access Layer/ual_query_mw_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_query_mw_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo177">ib_query_mw</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_query_mw_ioctl
{
struct _ual_query_mw_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_mw;
} in;
struct _ual_query_mw_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
void* __ptr64 pd_context;
net32_t rkey;
} out;
} <strong>ual_query_mw_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
in.h_mw
A handle to an existing memory window.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
pd_context
This user-mode context for the protection domain
associated with the memory window.
rkey
RKey associated with the memory window.
</pre>
</span>
<hr />
<h2><a name="robo549">[Structures]<a name="User2dmode20Access20Layer2fual5fquery5fqp5fioctl5ft">
User-mode Access Layer/ual_query_qp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_query_qp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo178">ib_query_qp</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_query_qp_ioctl
{
struct _ual_query_qp_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_qp;
} in;
struct _ual_query_qp_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
<a href="./ib_types_h.html#robo165">ib_qp_attr_t</a> attr;
} out;
} <strong>ual_query_qp_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.umv_buf
Opaque to IBAL buffer descriptor to allow the user-mode HCA library to
exchange private information with the kernel-mode HCA driver.
h_qp
Handle to the QP whose attributes to query.
out.umv_buf
Returns the status from the HCA driver to the user-mode HCA library,
along with any vendor specific output information.
out.status
Status of the operation.
out.attr
Attributes of the QP.
</pre>
</span>
<hr />
<h2><a name="robo550">[Structures]<a name="User2dmode20Access20Layer2fual5frearm5fcq5fioctl5ft">
User-mode Access Layer/ual_rearm_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_rearm_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo182">ib_rearm_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_rearm_cq_ioctl
{
struct _ual_rearm_cq_ioctl_in
{
uint64_t h_cq;
boolean_t solicited;
} in;
struct _ual_rearm_cq_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_rearm_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cq
A handle to a CQ.
in.solicited
Flag for rearm CQ.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo551">[Structures]<a name="User2dmode20Access20Layer2fual5frearm5fn5fcq5fioctl5ft">
User-mode Access Layer/ual_rearm_n_cq_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_rearm_n_cq_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo183">ib_rearm_n_cq</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_rearm_n_cq_ioctl
{
struct _ual_rearm_n_cq_ioctl_in
{
uint64_t h_cq;
uint32_t n_cqes;
} in;
struct _ual_rearm_n_cq_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_rearm_n_cq_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_cq
A handle to a CQ.
in.n_cqes
Rearm the CQ to signal when the next N completions are added.
in.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo552">[Structures]<a name="User2dmode20Access20Layer2fual5frearm5fpnp5fioctl5fin5ft">
User-mode Access Layer/ual_rearm_pnp_ioctl_in_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_rearm_pnp_ioctl_in_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for requesting
notification of the next PnP event.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_rearm_pnp_ioctl_in
{
uint64_t pnp_hdl;
uint64_t last_evt_hdl;
void* __ptr64 last_evt_context;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> last_evt_status;
} <strong>ual_rearm_pnp_ioctl_in_t</strong>;
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre> This is an asynchronous IOCTL.
The output parameters are a <a href="#robo553">ual_rearm_pnp_ioctl_out_t</a>.
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> pnp_hdl
Handle to the PnP registration to rearm.
last_evt_hdl
Handle to the last PnP event processed.
last_evt_context
Context value to set for the last reported PnP event.
last_evt_status
Status value to return for the last reported PnP event.
</pre>
</span>
<hr />
<h2><a name="robo553">[Structures]<a name="User2dmode20Access20Layer2fual5frearm5fpnp5fioctl5fout5ft">
User-mode Access Layer/ual_rearm_pnp_ioctl_out_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_rearm_pnp_ioctl_out_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the output parameters for a PnP event.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_rearm_pnp_ioctl_out
{
uint64_t evt_hdl;
uint32_t evt_size;
} <strong>ual_rearm_pnp_ioctl_out_t</strong>;
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre> This is an asynchronous IOCTL.
The output parameters are identical to that of ual_reg_pnp_ioctl_t.
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> evt_hdl
Handle to a new PnP event.
evt_size
Buffer size needed to poll the new PnP event.
</pre>
</span>
<hr />
<h2><a name="robo554">[Structures]<a name="User2dmode20Access20Layer2fual5freg5fmad5fpool5fioctl5ft">
User-mode Access Layer/ual_reg_mad_pool_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_reg_mad_pool_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
registering a mad pool to be used with special qp. This ioctl
will result in user-mode pool registered. Additionally,
the kernel proxy will allocate a kernel mad pool and register it
so that later mad_sends will have the appropriate pool in kernel.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_reg_mad_pool_ioctl
{
struct _ual_reg_mad_pool_ioctl_in
{
uint64_t h_pd;
} in;
struct _ual_reg_mad_pool_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t pool_key;
} out;
} <strong>ual_reg_mad_pool_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_pd
PD associated with the pool
out.status
Status of the operation.
out.pool_key
Pool key to the mad pool in kernel space
</pre>
</span>
<hr />
<h2><a name="robo555">[Structures]<a name="User2dmode20Access20Layer2fual5freg5fmad5fsvc5fioctl5ft">
User-mode Access Layer/ual_reg_mad_svc_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_reg_mad_svc_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo188">ib_reg_mad_svc</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_reg_mad_svc_ioctl
{
struct _ual_reg_mad_svc_ioctl_in
{
uint64_t h_qp;
<a href="./ib_al_h.html#robo111">ib_mad_svc_t</a> mad_svc;
} in;
struct _ual_reg_mad_svc_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_mad_svc;
} out;
} <strong>ual_reg_mad_svc_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_qp
Handle to the special QP or MAD QP.
in.mad_svc
Mad service definition.
out.status
Status of the operation.
out.h_mad_svc
Handle to the mad service.
</pre>
</span>
<hr />
<h2><a name="robo556">[Structures]<a name="User2dmode20Access20Layer2fual5freg5fmem5fioctl5ft">
User-mode Access Layer/ual_reg_mem_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_reg_mem_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo189">ib_reg_mem</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_reg_mem_ioctl
{
struct _ual_reg_mem_ioctl_in
{
uint64_t h_pd;
<a href="./ib_types_h.html#robo120">ib_mr_create_t</a> mem_create;
} in;
struct _ual_reg_mem_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
net32_t lkey;
net32_t rkey;
uint64_t h_mr;
} out;
} <strong>ual_reg_mem_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_pd
Handle to the protection domain on which to register the memory.
in.mem_create
Information for registering the memory region.
out.status
Status of the operation.
out.lkey
LKey value returned by verb.
out.rkey
RKey value returned by verb.
h_mr
Handle to the registered memory region.
</pre>
</span>
<hr />
<h2><a name="robo557">[Structures]<a name="User2dmode20Access20Layer2fual5freg5fpnp5fioctl5fin5ft">
User-mode Access Layer/ual_reg_pnp_ioctl_in_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_reg_pnp_ioctl_in_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input parameters for registering
for PnP events.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ual_reg_pnp_ioctl_in
{
<a href="./ib_al_h.html#robo150">ib_pnp_class_t</a> pnp_class;
void* __ptr64 sync_event;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a>* __ptr64 p_status;
uint64_t* __ptr64 p_hdl;
} <strong>ual_reg_pnp_ioctl_in_t</strong>;
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre> This is an asynchronous IOCTL.
The output parameters are a <a href="#robo553">ual_rearm_pnp_ioctl_out_t</a>.
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> pnp_class
Class of PnP events for which to register.
p_status
Pointer to user-mode status variable to set in failure case.
p_hdl
Pointer to user-mode handle variable to set in success case.
</pre>
</span>
<hr />
<h2><a name="robo558">[Structures]<a name="User2dmode20Access20Layer2fual5freg5fshared5fioctl5ft">
User-mode Access Layer/ual_reg_shared_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_reg_shared_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo192">ib_reg_shared</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_reg_shared_ioctl
{
struct _ual_reg_shared_ioctl_in
{
uint64_t h_mr;
uint64_t h_pd;
<a href="./ib_types_h.html#robo5">ib_access_t</a> access_ctrl;
uint64_t vaddr;
} in;
struct _ual_reg_shared_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t vaddr;
net32_t lkey;
net32_t rkey;
uint64_t h_new_mr;
} out;
} <strong>ual_reg_shared_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mr
A handle to the existing registered memory region.
in.h_pd
A handle to the PD on which memory is being registered.
in.access_ctrl
Access control for the new memory region.
in.vaddr
Requested virtual address.
out.status
Status of the operation.
out.vaddr
Actual virtual address of the registered region.
out.l_key
LKey of the memory region.
out.rkey
RKey of the memory region.
h_new_mr
Handle to the registered memory region.
</pre>
</span>
<hr />
<h2><a name="robo559">[Structures]<a name="User2dmode20Access20Layer2fual5freg5fshmid5fioctl5ft">
User-mode Access Layer/ual_reg_shmid_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_reg_shmid_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
ib_create_shmid
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_reg_shmid_ioctl
{
struct _ual_reg_shmid_ioctl_in
{
uint64_t h_pd;
<a href="./ib_al_h.html#robo210">ib_shmid_t</a> shmid;
<a href="./ib_types_h.html#robo120">ib_mr_create_t</a> mr_create;
} in;
struct _ual_reg_shmid_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t vaddr;
net32_t lkey;
net32_t rkey;
uint64_t h_mr;
} out;
} <strong>ual_reg_shmid_ioctl_t</strong>;
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> in.h_pd
A handle to an existing protection domain that the memory
should be registered with.
in.shmid
An identifier to the shared memory region.
in.mr_create
Information describing the attributes of the memory region to
register.
out.status
Status of the operation.
out.vaddr
Assigned I/O virtual address for the memory region.
out.lkey
The local access key associated with this registered memory
region.
out.rkey
A key that may be used by a remote end-point when performing RDMA
or atomic operations to this registered memory region.
out.h_mr
Upon successful completion of this call, this references a handle
to the registered memory region. This handle is used when performing
data transfers and to deregister the memory.
</pre>
</span>
<hr />
<h2><a name="robo560">[Structures]<a name="User2dmode20Access20Layer2fual5frereg5fmem5fioctl5ft">
User-mode Access Layer/ual_rereg_mem_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_rereg_mem_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
ib_modify_mr
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_rereg_mem_ioctl
{
struct _ual_rereg_mem_ioctl_in
{
uint64_t h_mr;
<a href="./ib_types_h.html#robo121">ib_mr_mod_t</a> mem_mod_mask;
<a href="./ib_types_h.html#robo120">ib_mr_create_t</a> mem_create;
uint64_t h_pd;
} in;
struct _ual_rereg_mem_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
net32_t lkey;
net32_t rkey;
} out;
} <strong>ual_rereg_mem_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mr
A handle to a registered memory region that is being modified.
in.mem_mod_mask
The attributes to use when modifying the memory region.
in.mem_create
Information to use for modifying the memory region. Required only
for changes other than the PD.
in.h_pd
PD Handle for changing protection domains.
out.status
Status of the operation.
out.l_key
LKey of the memory region.
out.rkey
RKey of the memory region.
</pre>
</span>
<hr />
<h2><a name="robo561">[Structures]<a name="User2dmode20Access20Layer2fual5fsend5fmad5fioctl5ft">
User-mode Access Layer/ual_send_mad_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_send_mad_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
<a href="./ib_al_h.html#robo207">ib_send_mad</a>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_send_mad_ioctl
{
struct _ual_send_mad_ioctl_in
{
uint64_t h_mad_svc;
uint64_t pool_key;
uint64_t h_av;
<a href="./ib_al_h.html#robo110">ib_mad_element_t</a>* __ptr64 p_mad_element;
uint32_t size;
void* __ptr64* __ptr64 ph_proxy;
} in;
struct _ual_send_mad_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
} out;
} <strong>ual_send_mad_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_mad_svc
Handle to the mad service.
in.pool_key
Pool key associated with the pool in kernel space.
in.h_av
handle to address vector of MAD.
in.p_mad_element
Pointer to the user-mode MAD element. The proxy marshals this data.
in.size
size of MAD buffer to send.
in.ph_proxy
Location to which to write the context used to cancel the MAD.
out.status
Status of the operation.
</pre>
</span>
<hr />
<h2><a name="robo562">[Structures]<a name="User2dmode20Access20Layer2fual5fsend5fsa5freq5ft">
User-mode Access Layer/ual_send_sa_req_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_send_sa_req_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters for
ib_create_shmid
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_send_sa_req_ioctl
{
struct _ual_send_sa_req_ioctl_in
{
net64_t port_guid;
uint32_t timeout_ms;
uint32_t retry_cnt;
<a href="./ib_al_h.html#robo218">ib_user_query_t</a> sa_req;
uint8_t attr[IB_SA_DATA_SIZE];
uint64_t* __ptr64 ph_sa_req;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a>* __ptr64 p_status;
} in;
struct _ual_send_sa_req_ioctl_out
{
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_resp;
uint32_t resp_size;
} out;
} ual_send_sa_req_ioctl_t;
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre> in.sa_mad_data
The SA request to send.
in.attr
The SA attribute data to send.
in.ph_sa_req
Pointer to UAL's query handle. The proxy fills this in
before returning from the IOCTL handler to allow cancelation.
in.p_status
Pointer to status of the query.
out.status
Status of the query if it was initiated successfully.
out.h_resp
Handle to a response MAD.
out.resp_size
Size, in bytes, of the response MAD's buffer.
</pre>
</span>
<hr />
<h2><a name="robo563">[Structures]<a name="User2dmode20Access20Layer2fual5fspl5fqp5fioctl5ft">
User-mode Access Layer/ual_spl_qp_ioctl_t</a></h2>
<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre> <strong>ual_spl_qp_ioctl_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre> IOCTL structure containing the input and output parameters to get
the alias qp from KAL.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef union _ual_spl_qp_ioctl
{
struct _ual_spl_qp_ioctl_in
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
uint64_t h_pd;
<a href="./ib_types_h.html#robo409">ib_net64_t</a> port_guid;
<a href="./ib_types_h.html#robo166">ib_qp_create_t</a> qp_create;
void* __ptr64 context;
} in;
struct _ual_spl_qp_ioctl_out
{
<a href="./ib_ci_h.html#robo608">ci_umv_buf_t</a> umv_buf;
<a href="./ib_types_h.html#robo9">ib_api_status_t</a> status;
uint64_t h_qp;
} out;
} <strong>ual_spl_qp_ioctl_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre> in.h_pd
Protection domain for the special qp.
in.port_guid
Port GUID on which to allocate the special QP.
in.qp_create
Special QP creation parameters.
in.qp_context
Context to associate with the QP, to be used in any notifications.
out.status
Status of the operation.
out.h_qp
Handle to the special QP.
</pre>
</span>
</body>
</html>