.\" -*- nroff -*- .\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md .\" .TH IBV_CREATE_WQ 3 2016-07-27 libibverbs "Libibverbs Programmer's Manual" .SH "NAME" ibv_create_wq, ibv_destroy_wq \- create or destroy a Work Queue (WQ). .SH "SYNOPSIS" .nf .B #include .sp .BI "struct ibv_wq *ibv_create_wq(struct ibv_context " "*context," .BI " struct ibv_wq_init_attr " "*wq_init_attr" ); .sp .BI "int ibv_destroy_wq(struct ibv_wq " "*wq" ); .fi .SH "DESCRIPTION" .B ibv_create_wq() creates a WQ associated with the ibv_context .I context\fR. The argument .I wq_init_attr is an ibv_wq_init_attr struct, as defined in . .PP .nf struct ibv_wq_init_attr { .in +8 void *wq_context; /* Associated context of the WQ */ enum ibv_wq_type wq_type; /* WQ type */ uint32_t max_wr; /* Requested max number of outstanding WRs in the WQ */ uint32_t max_sge; /* Requested max number of scatter/gather (s/g) elements per WR in the WQ */ struct ibv_pd *pd; /* PD to be associated with the WQ */ struct ibv_cq *cq; /* CQ to be associated with the WQ */ uint32_t comp_mask; /* Identifies valid fields. Use ibv_wq_init_attr_mask */ uint32_t create_flags /* Creation flags for this WQ, use enum ibv_wq_flags */ .in -8 }; .sp .nf enum ibv_wq_flags { .in +8 IBV_WQ_FLAGS_CVLAN_STRIPPING = 1 << 0, /* CVLAN field will be stripped from incoming packets */ IBV_WQ_FLAGS_SCATTER_FCS = 1 << 1, /* FCS field will be scattered to host memory */ IBV_WQ_FLAGS_DELAY_DROP = 1 << 2, /* Packets won't be dropped immediately if no receive WQEs */ IBV_WQ_FLAGS_PCI_WRITE_END_PADDING = 1 << 3, /* Incoming packets will be padded to cacheline size */ IBV_WQ_FLAGS_RESERVED = 1 << 4, .in -8 }; .nf .fi .PP The function .B ibv_create_wq() will update the .I wq_init_attr\fB\fR->max_wr and .I wq_init_attr\fB\fR->max_sge fields with the actual \s-1WQ\s0 values of the WQ that was created; the values will be greater than or equal to the values requested. .PP .B ibv_destroy_wq() destroys the WQ .I wq\fR. .SH "RETURN VALUE" .B ibv_create_wq() returns a pointer to the created WQ, or NULL if the request fails. .PP .B ibv_destroy_wq() returns 0 on success, or the value of errno on failure (which indicates the failure reason). .SH "SEE ALSO" .BR ibv_modify_wq (3), .SH "AUTHORS" .TP Yishai Hadas