Home
last modified time | relevance | path

Searched refs:wr (Results 1 – 25 of 277) sorted by relevance

12345678910>>...12

/freebsd/contrib/ofed/librdmacm/
H A Drdma_verbs.h102 struct ibv_recv_wr wr, *bad; in rdma_post_recvv() local
104 wr.wr_id = (uintptr_t) context; in rdma_post_recvv()
105 wr.next = NULL; in rdma_post_recvv()
106 wr.sg_list = sgl; in rdma_post_recvv()
107 wr.num_sge = nsge; in rdma_post_recvv()
110 return rdma_seterrno(ibv_post_srq_recv(id->srq, &wr, &bad)); in rdma_post_recvv()
112 return rdma_seterrno(ibv_post_recv(id->qp, &wr, &bad)); in rdma_post_recvv()
119 struct ibv_send_wr wr, *bad; in rdma_post_sendv() local
121 wr.wr_id = (uintptr_t) context; in rdma_post_sendv()
122 wr.next = NULL; in rdma_post_sendv()
[all …]
/freebsd/contrib/ofed/libmlx5/
H A Dqp.c210 struct ibv_send_wr *wr) in set_datagram_seg() argument
212 memcpy(&dseg->av, &to_mah(wr->wr.ud.ah)->av, sizeof dseg->av); in set_datagram_seg()
213 dseg->av.dqp_dct = htobe32(wr->wr.ud.remote_qpn | MLX5_EXTENDED_UD_AV); in set_datagram_seg()
214 dseg->av.key.qkey.qkey = htobe32(wr->wr.ud.remote_qkey); in set_datagram_seg()
256 static uint32_t send_ieth(struct ibv_send_wr *wr) in send_ieth() argument
258 switch (wr->opcode) { in send_ieth()
261 return wr->imm_data; in send_ieth()
263 return htobe32(wr->imm_data); in send_ieth()
269 static int set_data_inl_seg(struct mlx5_qp *qp, struct ibv_send_wr *wr, in set_data_inl_seg() argument
284 for (i = sg_copy_ptr->index; i < wr->num_sge; ++i) { in set_data_inl_seg()
[all …]
H A Dsrq.c87 struct ibv_recv_wr *wr, in mlx5_post_srq_recv() argument
99 for (nreq = 0; wr; ++nreq, wr = wr->next) { in mlx5_post_srq_recv()
100 if (wr->num_sge > srq->max_gs) { in mlx5_post_srq_recv()
102 *bad_wr = wr; in mlx5_post_srq_recv()
109 *bad_wr = wr; in mlx5_post_srq_recv()
113 srq->wrid[srq->head] = wr->wr_id; in mlx5_post_srq_recv()
119 for (i = 0; i < wr->num_sge; ++i) { in mlx5_post_srq_recv()
120 scat[i].byte_count = htobe32(wr->sg_list[i].length); in mlx5_post_srq_recv()
121 scat[i].lkey = htobe32(wr->sg_list[i].lkey); in mlx5_post_srq_recv()
122 scat[i].addr = htobe64(wr->sg_list[i].addr); in mlx5_post_srq_recv()
/freebsd/contrib/flex/src/
H A Dtables.c55 int yytbl_write32 (struct yytbl_writer *wr, flex_uint32_t v);
56 int yytbl_write16 (struct yytbl_writer *wr, flex_uint16_t v);
57 int yytbl_write8 (struct yytbl_writer *wr, flex_uint8_t v);
58 int yytbl_writen (struct yytbl_writer *wr, void *v, int len);
71 int yytbl_writer_init (struct yytbl_writer *wr, FILE * out) in yytbl_writer_init() argument
73 wr->out = out; in yytbl_writer_init()
74 wr->total_written = 0; in yytbl_writer_init()
125 static int yytbl_write_pad64 (struct yytbl_writer *wr) in yytbl_write_pad64() argument
129 pad = yypad64 (wr->total_written); in yytbl_write_pad64()
131 if (yytbl_write8 (wr, 0) < 0) in yytbl_write_pad64()
[all …]
/freebsd/contrib/ofed/libcxgb4/
H A Dqp.c104 struct ibv_send_wr *wr, int max, u32 *plenp) in build_immd() argument
112 for (i = 0; i < wr->num_sge; i++) { in build_immd()
113 if ((plen + wr->sg_list[i].length) > max) in build_immd()
115 srcp = (u8 *)(unsigned long)wr->sg_list[i].addr; in build_immd()
116 plen += wr->sg_list[i].length; in build_immd()
117 len = wr->sg_list[i].length; in build_immd()
159 struct ibv_send_wr *wr, u8 *len16) in build_rdma_send() argument
165 if (wr->num_sge > T4_MAX_SEND_SGE) in build_rdma_send()
167 if (wr->send_flags & IBV_SEND_SOLICITED) in build_rdma_send()
178 if (wr->num_sge) { in build_rdma_send()
[all …]
/freebsd/contrib/ofed/libmlx4/
H A Dqp.c121 static void set_bind_seg(struct mlx4_wqe_bind_seg *bseg, struct ibv_send_wr *wr) in set_bind_seg() argument
123 int acc = wr->bind_mw.bind_info.mw_access_flags; in set_bind_seg()
133 if (((struct ibv_mw *)(wr->bind_mw.mw))->type == IBV_MW_TYPE_2) in set_bind_seg()
138 bseg->new_rkey = htobe32(wr->bind_mw.rkey); in set_bind_seg()
139 bseg->lkey = htobe32(wr->bind_mw.bind_info.mr->lkey); in set_bind_seg()
140 bseg->addr = htobe64((uint64_t) wr->bind_mw.bind_info.addr); in set_bind_seg()
141 bseg->length = htobe64(wr->bind_mw.bind_info.length); in set_bind_seg()
163 static void set_atomic_seg(struct mlx4_wqe_atomic_seg *aseg, struct ibv_send_wr *wr) in set_atomic_seg() argument
165 if (wr->opcode == IBV_WR_ATOMIC_CMP_AND_SWP) { in set_atomic_seg()
166 aseg->swap_add = htobe64(wr->wr.atomic.swap); in set_atomic_seg()
[all …]
H A Dsrq.c63 struct ibv_recv_wr *wr, in mlx4_post_srq_recv() argument
75 for (nreq = 0; wr; ++nreq, wr = wr->next) { in mlx4_post_srq_recv()
76 if (wr->num_sge > srq->max_gs) { in mlx4_post_srq_recv()
78 *bad_wr = wr; in mlx4_post_srq_recv()
85 *bad_wr = wr; in mlx4_post_srq_recv()
89 srq->wrid[srq->head] = wr->wr_id; in mlx4_post_srq_recv()
95 for (i = 0; i < wr->num_sge; ++i) { in mlx4_post_srq_recv()
96 scat[i].byte_count = htobe32(wr->sg_list[i].length); in mlx4_post_srq_recv()
97 scat[i].lkey = htobe32(wr->sg_list[i].lkey); in mlx4_post_srq_recv()
98 scat[i].addr = htobe64(wr->sg_list[i].addr); in mlx4_post_srq_recv()
/freebsd/crypto/openssl/crypto/ripemd/asm/
H A Drmd-586.pl48 @wr=( 5,14, 7, 0, 9, 2,11, 4,13, 6,15, 8, 1,10, 3,12,
456 &RIP5($A,$B,$C,$D,$E,$wr[ 0],$sr[ 0],$KR0,-2);
457 &RIP5($E,$A,$B,$C,$D,$wr[ 1],$sr[ 1],$KR0,0);
458 &RIP5($D,$E,$A,$B,$C,$wr[ 2],$sr[ 2],$KR0,0);
459 &RIP5($C,$D,$E,$A,$B,$wr[ 3],$sr[ 3],$KR0,0);
460 &RIP5($B,$C,$D,$E,$A,$wr[ 4],$sr[ 4],$KR0,0);
461 &RIP5($A,$B,$C,$D,$E,$wr[ 5],$sr[ 5],$KR0,0);
462 &RIP5($E,$A,$B,$C,$D,$wr[ 6],$sr[ 6],$KR0,0);
463 &RIP5($D,$E,$A,$B,$C,$wr[ 7],$sr[ 7],$KR0,0);
464 &RIP5($C,$D,$E,$A,$B,$wr[ 8],$sr[ 8],$KR0,0);
[all …]
/freebsd/sys/dev/mlx5/mlx5_ib/
H A Dmlx5_ib_gsi.c72 struct mlx5_ib_gsi_wr *wr; in generate_completions() local
77 wr = &gsi->outstanding_wrs[index % gsi->cap.max_send_wr]; in generate_completions()
79 if (!wr->completed) in generate_completions()
83 wr->send_flags & IB_SEND_SIGNALED) in generate_completions()
84 WARN_ON_ONCE(mlx5_ib_generate_wc(gsi_cq, &wr->wc)); in generate_completions()
86 wr->completed = false; in generate_completions()
95 struct mlx5_ib_gsi_wr *wr = in handle_single_completion() local
101 wr->completed = true; in handle_single_completion()
102 wr_id = wr->wc.wr_id; in handle_single_completion()
103 wr->wc = *wc; in handle_single_completion()
[all …]
H A Dmlx5_ib_qp.c3060 const struct ib_send_wr *wr, void *qend, in set_eth_seg() argument
3067 if (wr->send_flags & IB_SEND_IP_CSUM) in set_eth_seg()
3074 if (wr->opcode == IB_WR_LSO) { in set_eth_seg()
3075 struct ib_ud_wr *ud_wr = container_of(wr, struct ib_ud_wr, wr); in set_eth_seg()
3113 const struct ib_send_wr *wr) in set_datagram_seg() argument
3115 memcpy(&dseg->av, &to_mah(ud_wr(wr)->ah)->av, sizeof(struct mlx5_av)); in set_datagram_seg()
3116 dseg->av.dqp_dct = cpu_to_be32(ud_wr(wr)->remote_qpn | MLX5_EXTENDED_UD_AV); in set_datagram_seg()
3117 dseg->av.key.qkey.qkey = cpu_to_be32(ud_wr(wr)->remote_qkey); in set_datagram_seg()
3272 const struct ib_send_wr *wr) in set_reg_umr_segment() argument
3274 const struct mlx5_umr_wr *umrwr = umr_wr(wr); in set_reg_umr_segment()
[all …]
/freebsd/sys/dev/mthca/
H A Dmthca_qp.c1485 int ind, const struct ib_ud_wr *wr, in build_mlx_header() argument
1494 mthca_ah_grh_present(to_mah(wr->ah)), 0, 0, 0, in build_mlx_header()
1497 err = mthca_read_ah(dev, to_mah(wr->ah), &sqp->ud_header); in build_mlx_header()
1508 switch (wr->wr.opcode) { in build_mlx_header()
1516 sqp->ud_header.immediate_data = wr->wr.ex.imm_data; in build_mlx_header()
1525 sqp->ud_header.bth.solicited_event = !!(wr->wr.send_flags & IB_SEND_SOLICITED); in build_mlx_header()
1531 wr->pkey_index, &pkey); in build_mlx_header()
1533 sqp->ud_header.bth.destination_qpn = cpu_to_be32(wr->remote_qpn); in build_mlx_header()
1535 sqp->ud_header.deth.qkey = cpu_to_be32(wr->remote_qkey & 0x80000000 ? in build_mlx_header()
1536 sqp->qkey : wr->remote_qkey); in build_mlx_header()
[all …]
H A Dmthca_srq.c477 int mthca_tavor_post_srq_recv(struct ib_srq *ibsrq, const struct ib_recv_wr *wr, in mthca_tavor_post_srq_recv() argument
496 for (nreq = 0; wr; wr = wr->next) { in mthca_tavor_post_srq_recv()
504 *bad_wr = wr; in mthca_tavor_post_srq_recv()
516 if (unlikely(wr->num_sge > srq->max_gs)) { in mthca_tavor_post_srq_recv()
518 *bad_wr = wr; in mthca_tavor_post_srq_recv()
523 for (i = 0; i < wr->num_sge; ++i) { in mthca_tavor_post_srq_recv()
524 mthca_set_data_seg(wqe, wr->sg_list + i); in mthca_tavor_post_srq_recv()
534 srq->wrid[ind] = wr->wr_id; in mthca_tavor_post_srq_recv()
577 int mthca_arbel_post_srq_recv(struct ib_srq *ibsrq, const struct ib_recv_wr *wr, in mthca_arbel_post_srq_recv() argument
592 for (nreq = 0; wr; ++nreq, wr = wr->next) { in mthca_arbel_post_srq_recv()
[all …]
/freebsd/sys/dev/cxgbe/iw_cxgbe/
H A Dqp.c138 struct wrqe *wr; in create_qp() local
240 wr = alloc_wrqe(wr_len, &sc->sge.ctrlq[0]); in create_qp()
241 if (wr == NULL) { in create_qp()
245 res_wr = wrtod(wr); in create_qp()
304 t4_wrq_tx(sc, wr); in create_qp()
339 const struct ib_send_wr *wr, int max, u32 *plenp) in build_immd() argument
347 for (i = 0; i < wr->num_sge; i++) { in build_immd()
348 if ((plen + wr->sg_list[i].length) > max) in build_immd()
350 srcp = (u8 *)(unsigned long)wr->sg_list[i].addr; in build_immd()
351 plen += wr->sg_list[i].length; in build_immd()
[all …]
/freebsd/contrib/ofed/librdmacm/examples/
H A Drdma_xclient.c53 struct ibv_send_wr wr, *bad; in post_send() local
60 wr.wr_id = (uintptr_t) NULL; in post_send()
61 wr.next = NULL; in post_send()
62 wr.sg_list = &sge; in post_send()
63 wr.num_sge = 1; in post_send()
64 wr.opcode = IBV_WR_SEND; in post_send()
65 wr.send_flags = IBV_SEND_INLINE; in post_send()
67 wr.qp_type.xrc.remote_srqn = srqn; in post_send()
69 ret = ibv_post_send(id->qp, &wr, &bad); in post_send()
/freebsd/sys/geom/eli/
H A Dg_eli.c244 struct g_eli_worker *wr; in g_eli_crypto_rerun() local
250 LIST_FOREACH(wr, &sc->sc_workers, w_next) { in g_eli_crypto_rerun()
251 if (wr->w_number == G_ELI_WORKER(bp->bio_pflags)) in g_eli_crypto_rerun()
254 KASSERT(wr != NULL, ("Invalid worker (%u).", in g_eli_crypto_rerun()
257 bp->bio_cmd == BIO_READ ? "READ" : "WRITE", wr->w_sid, in g_eli_crypto_rerun()
259 wr->w_sid = crp->crp_session; in g_eli_crypto_rerun()
531 g_eli_newsession(struct g_eli_worker *wr) in g_eli_newsession() argument
539 sc = wr->w_softc; in g_eli_newsession()
565 error = crypto_newsession(&wr->w_sid, &csp, in g_eli_newsession()
569 error = crypto_newsession(&wr->w_sid, &csp, in g_eli_newsession()
[all …]
/freebsd/sys/dev/mlx4/mlx4_ib/
H A Dmlx4_ib_qp.c2298 const struct ib_ud_wr *wr, in build_sriov_qp0_header() argument
2305 struct mlx4_ib_ah *ah = to_mah(wr->ah); in build_sriov_qp0_header()
2313 if (wr->wr.opcode != IB_WR_SEND) in build_sriov_qp0_header()
2318 for (i = 0; i < wr->wr.num_sge; ++i) in build_sriov_qp0_header()
2319 send_size += wr->wr.sg_list[i].length; in build_sriov_qp0_header()
2344 sqp->ud_header.bth.solicited_event = !!(wr->wr.send_flags & IB_SEND_SOLICITED); in build_sriov_qp0_header()
2348 sqp->ud_header.bth.destination_qpn = cpu_to_be32(wr->remote_qpn); in build_sriov_qp0_header()
2427 static int build_mlx_header(struct mlx4_ib_sqp *sqp, const struct ib_ud_wr *wr, in build_mlx_header() argument
2434 struct mlx4_ib_ah *ah = to_mah(wr->ah); in build_mlx_header()
2450 for (i = 0; i < wr->wr.num_sge; ++i) in build_mlx_header()
[all …]
H A Dmlx4_ib_srq.c306 int mlx4_ib_post_srq_recv(struct ib_srq *ibsrq, const struct ib_recv_wr *wr, in mlx4_ib_post_srq_recv() argument
321 *bad_wr = wr; in mlx4_ib_post_srq_recv()
326 for (nreq = 0; wr; ++nreq, wr = wr->next) { in mlx4_ib_post_srq_recv()
327 if (unlikely(wr->num_sge > srq->msrq.max_gs)) { in mlx4_ib_post_srq_recv()
329 *bad_wr = wr; in mlx4_ib_post_srq_recv()
335 *bad_wr = wr; in mlx4_ib_post_srq_recv()
339 srq->wrid[srq->head] = wr->wr_id; in mlx4_ib_post_srq_recv()
345 for (i = 0; i < wr->num_sge; ++i) { in mlx4_ib_post_srq_recv()
346 scat[i].byte_count = cpu_to_be32(wr->sg_list[i].length); in mlx4_ib_post_srq_recv()
347 scat[i].lkey = cpu_to_be32(wr->sg_list[i].lkey); in mlx4_ib_post_srq_recv()
[all …]
/freebsd/sys/contrib/device-tree/src/arm/ti/omap/
H A Domap3430-sdp.dts65 gpmc,cs-wr-off-ns = <186>;
68 gpmc,adv-wr-off-ns = <48>;
74 gpmc,wr-cycle-ns = <186>;
79 gpmc,wr-data-mux-bus-ns = <90>;
80 gpmc,wr-access-ns = <186>;
115 gpmc,cs-wr-off-ns = <36>;
118 gpmc,adv-wr-off-ns = <36>;
124 gpmc,wr-cycle-ns = <72>;
126 gpmc,wr-access-ns = <30>;
161 gpmc,cs-wr-off-ns = <72>;
[all …]
/freebsd/sys/dev/iser/
H A Diser_memory.c162 struct ib_send_wr *wr = NULL; in iser_fast_reg_mr() local
171 wr = &inv_wr; in iser_fast_reg_mr()
181 fastreg_wr.wr.opcode = IB_WR_REG_MR; in iser_fast_reg_mr()
182 fastreg_wr.wr.wr_id = ISER_FASTREG_LI_WRID; in iser_fast_reg_mr()
183 fastreg_wr.wr.num_sge = 0; in iser_fast_reg_mr()
190 if (!wr) in iser_fast_reg_mr()
191 wr = &fastreg_wr.wr; in iser_fast_reg_mr()
193 wr->next = &fastreg_wr.wr; in iser_fast_reg_mr()
195 ret = ib_post_send(ib_conn->qp, wr, &bad_wr); in iser_fast_reg_mr()
/freebsd/contrib/ofed/libibverbs/
H A Dcompat-1_0.c107 } wr; member
204 struct ibv_send_wr_1_0 *wr,
207 struct ibv_recv_wr_1_0 *wr,
367 static int post_srq_recv_wrapper_1_0(struct ibv_srq_1_0 *srq, struct ibv_recv_wr_1_0 *wr, in post_srq_recv_wrapper_1_0() argument
374 for (w = wr; w; w = w->next) { in post_srq_recv_wrapper_1_0()
392 for (real_wr = head_wr, w = wr; in post_srq_recv_wrapper_1_0()
404 static int post_send_wrapper_1_0(struct ibv_qp_1_0 *qp, struct ibv_send_wr_1_0 *wr, in post_send_wrapper_1_0() argument
412 for (w = wr; w; w = w->next) { in post_send_wrapper_1_0()
428 TEST_SIZE_TO_END (wr)) { in post_send_wrapper_1_0()
436 memcpy(&real_wr->wr, &w->wr, sizeof real_wr->wr); in post_send_wrapper_1_0()
[all …]
/freebsd/sys/dev/cxgbe/tom/
H A Dt4_cpl_io.c83 struct wrqe *wr; in send_flowc_wr() local
107 wr = alloc_wrqe(roundup2(flowclen, 16), &toep->ofld_txq->wrq); in send_flowc_wr()
108 if (wr == NULL) { in send_flowc_wr()
112 flowc = wrtod(wr); in send_flowc_wr()
113 memset(flowc, 0, wr->wr_len); in send_flowc_wr()
161 t4_wrq_tx(sc, wr); in send_flowc_wr()
188 struct wrqe *wr; in update_tx_rate_limit() local
197 (wr = alloc_wrqe(roundup2(flowclen, 16), in update_tx_rate_limit()
204 flowc = wrtod(wr); in update_tx_rate_limit()
205 memset(flowc, 0, wr->wr_len); in update_tx_rate_limit()
[all …]
/freebsd/crypto/openssl/ssl/record/
H A Drec_layer_d1.c799 SSL3_RECORD wr; in do_dtls1_write() local
853 SSL3_RECORD_set_type(&wr, type); in do_dtls1_write()
895 SSL3_RECORD_set_data(&wr, p + eivlen); /* make room for IV in case of CBC */ in do_dtls1_write()
896 SSL3_RECORD_set_length(&wr, len); in do_dtls1_write()
897 SSL3_RECORD_set_input(&wr, (unsigned char *)buf); in do_dtls1_write()
905 if (!ssl3_do_compress(s, &wr)) { in do_dtls1_write()
910 memcpy(SSL3_RECORD_get_data(&wr), SSL3_RECORD_get_input(&wr), in do_dtls1_write()
911 SSL3_RECORD_get_length(&wr)); in do_dtls1_write()
912 SSL3_RECORD_reset_input(&wr); in do_dtls1_write()
922 if (!s->method->ssl3_enc->mac(s, &wr, in do_dtls1_write()
[all …]
/freebsd/contrib/bmake/
H A Djob.c781 ShellWriter_WriteFmt(ShellWriter *wr, const char *fmt, const char *arg) in ShellWriter_WriteFmt() argument
785 (void)fprintf(wr->f, fmt, arg); in ShellWriter_WriteFmt()
786 if (wr->f == stdout) in ShellWriter_WriteFmt()
787 (void)fflush(wr->f); in ShellWriter_WriteFmt()
791 ShellWriter_WriteLine(ShellWriter *wr, const char *line) in ShellWriter_WriteLine() argument
793 ShellWriter_WriteFmt(wr, "%s\n", line); in ShellWriter_WriteLine()
797 ShellWriter_EchoOff(ShellWriter *wr) in ShellWriter_EchoOff() argument
800 ShellWriter_WriteLine(wr, shell->echoOff); in ShellWriter_EchoOff()
804 ShellWriter_EchoCmd(ShellWriter *wr, const char *escCmd) in ShellWriter_EchoCmd() argument
806 ShellWriter_WriteFmt(wr, shell->echoTmpl, escCmd); in ShellWriter_EchoCmd()
[all …]
/freebsd/sys/dev/qlnx/qlnxr/
H A Dqlnxr_cm.c670 const struct ib_send_wr *wr, in qlnxr_gsi_post_send() argument
684 *bad_wr = wr; in qlnxr_gsi_post_send()
688 if (wr->num_sge > RDMA_MAX_SGE_PER_SQ_WQE) { in qlnxr_gsi_post_send()
695 if (wr->opcode != IB_WR_SEND) { in qlnxr_gsi_post_send()
703 rc = qlnxr_gsi_build_packet(dev, qp, wr, &pkt); in qlnxr_gsi_post_send()
713 qp->wqe_wr_id[qp->sq.prod].wr_id = wr->wr_id; in qlnxr_gsi_post_send()
715 !!(wr->send_flags & IB_SEND_SIGNALED); in qlnxr_gsi_post_send()
722 *bad_wr = wr; in qlnxr_gsi_post_send()
727 if (wr->next != NULL) { in qlnxr_gsi_post_send()
728 *bad_wr = wr->next; in qlnxr_gsi_post_send()
[all …]
/freebsd/sys/dev/bnxt/bnxt_re/
H A Dib_verbs.c1374 int bnxt_re_post_srq_recv(struct ib_srq *ib_srq, const struct ib_recv_wr *wr, in bnxt_re_post_srq_recv() argument
1384 while (wr) { in bnxt_re_post_srq_recv()
1386 wqe.num_sge = wr->num_sge; in bnxt_re_post_srq_recv()
1387 wqe.sg_list = (struct bnxt_qplib_sge *)wr->sg_list; in bnxt_re_post_srq_recv()
1388 wqe.wr_id = wr->wr_id; in bnxt_re_post_srq_recv()
1392 *bad_wr = wr; in bnxt_re_post_srq_recv()
1395 wr = wr->next; in bnxt_re_post_srq_recv()
2907 static void bnxt_re_build_raw_send(const struct ib_send_wr *wr, in bnxt_re_build_raw_send() argument
2910 switch (wr->send_flags) { in bnxt_re_build_raw_send()
2924 static int bnxt_re_build_qp1_send(struct bnxt_re_qp *qp, const struct ib_send_wr *wr, in bnxt_re_build_qp1_send() argument
[all …]

12345678910>>...12