<!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>