Home
last modified time | relevance | path

Searched refs:iter (Results 1 – 25 of 683) sorted by relevance

12345678910>>...28

/linux/fs/iomap/
H A Diter.c9 static inline void iomap_iter_reset_iomap(struct iomap_iter *iter) in iomap_iter_reset_iomap() argument
11 if (iter->iomap.flags & IOMAP_F_FOLIO_BATCH) { in iomap_iter_reset_iomap()
12 folio_batch_release(iter->fbatch); in iomap_iter_reset_iomap()
13 folio_batch_reinit(iter->fbatch); in iomap_iter_reset_iomap()
14 iter->iomap.flags &= ~IOMAP_F_FOLIO_BATCH; in iomap_iter_reset_iomap()
17 iter->status = 0; in iomap_iter_reset_iomap()
18 memset(&iter->iomap, 0, sizeof(iter->iomap)); in iomap_iter_reset_iomap()
19 memset(&iter->srcmap, 0, sizeof(iter->srcmap)); in iomap_iter_reset_iomap()
23 int iomap_iter_advance(struct iomap_iter *iter, u64 count) in iomap_iter_advance() argument
25 if (WARN_ON_ONCE(count > iomap_length(iter))) in iomap_iter_advance()
[all …]
H A Dseek.c9 static int iomap_seek_hole_iter(struct iomap_iter *iter, in iomap_seek_hole_iter() argument
12 loff_t length = iomap_length(iter); in iomap_seek_hole_iter()
14 switch (iter->iomap.type) { in iomap_seek_hole_iter()
16 *hole_pos = mapping_seek_hole_data(iter->inode->i_mapping, in iomap_seek_hole_iter()
17 iter->pos, iter->pos + length, SEEK_HOLE); in iomap_seek_hole_iter()
18 if (*hole_pos == iter->pos + length) in iomap_seek_hole_iter()
19 return iomap_iter_advance(iter, length); in iomap_seek_hole_iter()
22 *hole_pos = iter->pos; in iomap_seek_hole_iter()
25 return iomap_iter_advance(iter, length); in iomap_seek_hole_iter()
33 struct iomap_iter iter = { in iomap_seek_hole() local
[all …]
H A Dbuffered-io.c351 static inline bool iomap_block_needs_zeroing(const struct iomap_iter *iter, in iomap_block_needs_zeroing() argument
354 const struct iomap *srcmap = iomap_iter_srcmap(iter); in iomap_block_needs_zeroing()
358 pos >= i_size_read(iter->inode); in iomap_block_needs_zeroing()
370 static int iomap_read_inline_data(const struct iomap_iter *iter, in iomap_read_inline_data() argument
373 const struct iomap *iomap = iomap_iter_srcmap(iter); in iomap_read_inline_data()
374 size_t size = i_size_read(iter->inode) - iomap->offset; in iomap_read_inline_data()
384 fserror_report_io(iter->inode, FSERR_BUFFERED_READ, in iomap_read_inline_data()
389 ifs_alloc(iter->inode, folio, iter->flags); in iomap_read_inline_data()
509 static int iomap_read_folio_iter(struct iomap_iter *iter, in iomap_read_folio_iter() argument
512 const struct iomap *iomap = &iter->iomap; in iomap_read_folio_iter()
[all …]
H A Ddirect-io.c43 struct iov_iter *iter; member
54 static struct bio *iomap_dio_alloc_bio(const struct iomap_iter *iter, in iomap_dio_alloc_bio() argument
58 return bio_alloc_bioset(iter->iomap.bdev, nr_vecs, opf, in iomap_dio_alloc_bio()
60 return bio_alloc(iter->iomap.bdev, nr_vecs, opf, GFP_KERNEL); in iomap_dio_alloc_bio()
63 static void iomap_dio_submit_bio(const struct iomap_iter *iter, in iomap_dio_submit_bio() argument
77 dio->dops->submit_io(iter, bio, pos); in iomap_dio_submit_bio()
79 WARN_ON_ONCE(iter->iomap.flags & IOMAP_F_ANON_WRITE); in iomap_dio_submit_bio()
298 static int iomap_dio_zero(const struct iomap_iter *iter, struct iomap_dio *dio, in iomap_dio_zero() argument
316 bio = iomap_dio_alloc_bio(iter, dio, nr_vecs, in iomap_dio_zero()
319 bio->bi_iter.bi_sector = iomap_sector(&iter->iomap, pos); in iomap_dio_zero()
[all …]
/linux/arch/arm64/kvm/vgic/
H A Dvgic-debug.c33 static void iter_next(struct kvm *kvm, struct vgic_state_iter *iter) in iter_next() argument
37 if (iter->dist_id == 0) { in iter_next()
38 iter->dist_id++; in iter_next()
46 if (iter->intid >= (iter->nr_spis + VGIC_NR_PRIVATE_IRQS - 1)) { in iter_next()
47 if (iter->intid == VGIC_LPI_MAX_INTID + 1) in iter_next()
51 if (!xa_find_after(&dist->lpi_xa, &iter->intid, in iter_next()
53 iter->intid = VGIC_LPI_MAX_INTID + 1; in iter_next()
58 iter->intid++; in iter_next()
59 if (iter->intid == VGIC_NR_PRIVATE_IRQS && in iter_next()
60 ++iter->vcpu_id < iter->nr_cpus) in iter_next()
[all …]
/linux/net/netlabel/
H A Dnetlabel_addrlist.c49 struct netlbl_af4list *iter; in netlbl_af4list_search() local
51 list_for_each_entry_rcu(iter, head, list) in netlbl_af4list_search()
52 if (iter->valid && (addr & iter->mask) == iter->addr) in netlbl_af4list_search()
53 return iter; in netlbl_af4list_search()
74 struct netlbl_af4list *iter; in netlbl_af4list_search_exact() local
76 list_for_each_entry_rcu(iter, head, list) in netlbl_af4list_search_exact()
77 if (iter->valid && iter->addr == addr && iter->mask == mask) in netlbl_af4list_search_exact()
78 return iter; in netlbl_af4list_search_exact()
99 struct netlbl_af6list *iter; in netlbl_af6list_search() local
101 list_for_each_entry_rcu(iter, head, list) in netlbl_af6list_search()
[all …]
H A Dnetlabel_addrlist.h82 #define netlbl_af4list_foreach(iter, head) \ argument
83 for (iter = __af4list_valid((head)->next, head); \
84 &iter->list != (head); \
85 iter = __af4list_valid(iter->list.next, head))
87 #define netlbl_af4list_foreach_rcu(iter, head) \ argument
88 for (iter = __af4list_valid_rcu((head)->next, head); \
89 &iter->list != (head); \
90 iter = __af4list_valid_rcu(iter->list.next, head))
92 #define netlbl_af4list_foreach_safe(iter, tmp, head) \ argument
93 for (iter = __af4list_valid((head)->next, head), \
[all …]
/linux/include/linux/
H A Diov_iter.h24 size_t iterate_ubuf(struct iov_iter *iter, size_t len, void *priv, void *priv2, in iterate_ubuf() argument
27 void __user *base = iter->ubuf; in iterate_ubuf()
30 remain = step(base + iter->iov_offset, 0, len, priv, priv2); in iterate_ubuf()
32 iter->iov_offset += progress; in iterate_ubuf()
33 iter->count -= progress; in iterate_ubuf()
41 size_t iterate_iovec(struct iov_iter *iter, size_t len, void *priv, void *priv2, in iterate_iovec() argument
44 const struct iovec *p = iter->__iov; in iterate_iovec()
45 size_t progress = 0, skip = iter->iov_offset; in iterate_iovec()
64 iter->nr_segs -= p - iter->__iov; in iterate_iovec()
65 iter->__iov = p; in iterate_iovec()
[all …]
H A Dradix-tree.h233 struct radix_tree_iter *iter, void __rcu **slot);
249 const struct radix_tree_iter *iter, unsigned int tag);
264 struct radix_tree_iter *iter, gfp_t gfp,
281 radix_tree_iter_init(struct radix_tree_iter *iter, unsigned long start) in radix_tree_iter_init() argument
291 iter->index = 0; in radix_tree_iter_init()
292 iter->next_index = start; in radix_tree_iter_init()
310 struct radix_tree_iter *iter, unsigned flags);
324 struct radix_tree_iter *iter, unsigned long index) in radix_tree_iter_lookup() argument
326 radix_tree_iter_init(iter, index); in radix_tree_iter_lookup()
327 return radix_tree_next_chunk(root, iter, RADIX_TREE_ITER_CONTIG); in radix_tree_iter_lookup()
[all …]
/linux/kernel/
H A Dkallsyms.c608 static int get_ksymbol_mod(struct kallsym_iter *iter) in get_ksymbol_mod() argument
610 int ret = module_get_kallsym(iter->pos - kallsyms_num_syms, in get_ksymbol_mod()
611 &iter->value, &iter->type, in get_ksymbol_mod()
612 iter->name, iter->module_name, in get_ksymbol_mod()
613 &iter->exported); in get_ksymbol_mod()
615 iter->pos_mod_end = iter->pos; in get_ksymbol_mod()
627 static int get_ksymbol_ftrace_mod(struct kallsym_iter *iter) in get_ksymbol_ftrace_mod() argument
629 int ret = ftrace_mod_get_kallsym(iter->pos - iter->pos_mod_end, in get_ksymbol_ftrace_mod()
630 &iter->value, &iter->type, in get_ksymbol_ftrace_mod()
631 iter->name, iter->module_name, in get_ksymbol_ftrace_mod()
[all …]
H A Ducount.c217 struct ucounts *ucounts, *iter, *bad; in inc_ucount() local
220 for (iter = ucounts; iter; iter = tns->ucounts) { in inc_ucount()
222 tns = iter->ns; in inc_ucount()
224 if (!atomic_long_inc_below(&iter->ucount[type], max)) in inc_ucount()
229 bad = iter; in inc_ucount()
230 for (iter = ucounts; iter != bad; iter = iter->ns->ucounts) in inc_ucount()
231 atomic_long_dec(&iter->ucount[type]); in inc_ucount()
239 struct ucounts *iter; in dec_ucount() local
240 for (iter = ucounts; iter; iter = iter->ns->ucounts) { in dec_ucount()
241 long dec = atomic_long_dec_if_positive(&iter->ucount[type]); in dec_ucount()
[all …]
/linux/drivers/gpu/drm/etnaviv/
H A Detnaviv_dump.c67 static void etnaviv_core_dump_header(struct core_dump_iterator *iter, in etnaviv_core_dump_header() argument
70 struct etnaviv_dump_object_header *hdr = iter->hdr; in etnaviv_core_dump_header()
74 hdr->file_offset = cpu_to_le32(iter->data - iter->start); in etnaviv_core_dump_header()
75 hdr->file_size = cpu_to_le32(data_end - iter->data); in etnaviv_core_dump_header()
77 iter->hdr++; in etnaviv_core_dump_header()
78 iter->data += le32_to_cpu(hdr->file_size); in etnaviv_core_dump_header()
81 static void etnaviv_core_dump_registers(struct core_dump_iterator *iter, in etnaviv_core_dump_registers() argument
84 struct etnaviv_dump_registers *reg = iter->data; in etnaviv_core_dump_registers()
97 etnaviv_core_dump_header(iter, ETDUMP_BUF_REG, reg); in etnaviv_core_dump_registers()
100 static void etnaviv_core_dump_mmu(struct core_dump_iterator *iter, in etnaviv_core_dump_mmu() argument
[all …]
/linux/drivers/gpu/drm/
H A Ddrm_vma_manager.c146 struct rb_node *iter; in drm_vma_offset_lookup_locked() local
149 iter = mgr->vm_addr_space_mm.interval_tree.rb_root.rb_node; in drm_vma_offset_lookup_locked()
152 while (likely(iter)) { in drm_vma_offset_lookup_locked()
153 node = rb_entry(iter, struct drm_mm_node, rb); in drm_vma_offset_lookup_locked()
156 iter = iter->rb_right; in drm_vma_offset_lookup_locked()
161 iter = iter->rb_left; in drm_vma_offset_lookup_locked()
247 struct rb_node **iter; in vma_node_allow() local
260 iter = &node->vm_files.rb_node; in vma_node_allow()
262 while (likely(*iter)) { in vma_node_allow()
263 parent = *iter; in vma_node_allow()
[all …]
H A Ddrm_damage_helper.c225 drm_atomic_helper_damage_iter_init(struct drm_atomic_helper_damage_iter *iter, in drm_atomic_helper_damage_iter_init() argument
230 memset(iter, 0, sizeof(*iter)); in drm_atomic_helper_damage_iter_init()
235 iter->clips = (struct drm_rect *)drm_plane_get_damage_clips(state); in drm_atomic_helper_damage_iter_init()
236 iter->num_clips = drm_plane_get_damage_clips_count(state); in drm_atomic_helper_damage_iter_init()
241 iter->plane_src.x1 = src.x1 >> 16; in drm_atomic_helper_damage_iter_init()
242 iter->plane_src.y1 = src.y1 >> 16; in drm_atomic_helper_damage_iter_init()
243 iter->plane_src.x2 = (src.x2 >> 16) + !!(src.x2 & 0xFFFF); in drm_atomic_helper_damage_iter_init()
244 iter->plane_src.y2 = (src.y2 >> 16) + !!(src.y2 & 0xFFFF); in drm_atomic_helper_damage_iter_init()
246 if (!iter->clips || state->ignore_damage_clips || in drm_atomic_helper_damage_iter_init()
248 iter->clips = NULL; in drm_atomic_helper_damage_iter_init()
[all …]
/linux/tools/testing/selftests/bpf/progs/
H A Diters_state_safety.c36 struct bpf_iter_num iter; in create_and_destroy() local
40 "r1 = %[iter];" in create_and_destroy()
45 "r1 = %[iter];" in create_and_destroy()
48 : __imm_ptr(iter), ITER_HELPERS in create_and_destroy()
59 struct bpf_iter_num iter; in create_and_forget_to_destroy_fail() local
63 "r1 = %[iter];" in create_and_forget_to_destroy_fail()
68 : __imm_ptr(iter), ITER_HELPERS in create_and_forget_to_destroy_fail()
80 struct bpf_iter_num iter; in destroy_without_creating_fail() local
83 "r1 = %[iter];" in destroy_without_creating_fail()
86 : __imm_ptr(iter), ITER_HELPER in destroy_without_creating_fail()
97 struct bpf_iter_num iter; compromise_iter_w_direct_write_fail() local
124 struct bpf_iter_num iter; compromise_iter_w_direct_write_and_skip_destroy_fail() local
149 struct bpf_iter_num iter; compromise_iter_w_helper_write_fail() local
178 struct bpf_iter_num iter; subprog_with_iter() local
202 struct bpf_iter_num iter; valid_stack_reuse() local
236 struct bpf_iter_num iter; double_create_fail() local
264 struct bpf_iter_num iter; double_destroy_fail() local
290 struct bpf_iter_num iter; next_without_new_fail() local
311 struct bpf_iter_num iter; next_after_destroy_fail() local
375 struct bpf_iter_num iter; __flag() local
[all...]
/linux/drivers/net/ethernet/mellanox/mlx4/
H A Dicm.h97 struct mlx4_icm_iter *iter) in mlx4_icm_first() argument
99 iter->icm = icm; in mlx4_icm_first()
100 iter->chunk = list_empty(&icm->chunk_list) ? in mlx4_icm_first()
103 iter->page_idx = 0; in mlx4_icm_first()
106 static inline int mlx4_icm_last(struct mlx4_icm_iter *iter) in mlx4_icm_last() argument
108 return !iter->chunk; in mlx4_icm_last()
111 static inline void mlx4_icm_next(struct mlx4_icm_iter *iter) in mlx4_icm_next() argument
113 if (++iter->page_idx >= iter->chunk->nsg) { in mlx4_icm_next()
114 if (iter->chunk->list.next == &iter->icm->chunk_list) { in mlx4_icm_next()
115 iter->chunk = NULL; in mlx4_icm_next()
[all …]
/linux/drivers/net/can/spi/mcp251xfd/
H A Dmcp251xfd-dump.c44 static void mcp251xfd_dump_header(struct mcp251xfd_dump_iter *iter, in mcp251xfd_dump_header() argument
48 struct mcp251xfd_dump_object_header *hdr = iter->hdr; in mcp251xfd_dump_header()
51 len = data_end - iter->data; in mcp251xfd_dump_header()
57 hdr->offset = cpu_to_le32(iter->data - iter->start); in mcp251xfd_dump_header()
60 iter->hdr++; in mcp251xfd_dump_header()
61 iter->data += len; in mcp251xfd_dump_header()
65 struct mcp251xfd_dump_iter *iter) in mcp251xfd_dump_registers() argument
68 struct mcp251xfd_dump_object_reg *reg = iter->data; in mcp251xfd_dump_registers()
98 mcp251xfd_dump_header(iter, MCP251XFD_DUMP_OBJECT_TYPE_REG, reg); in mcp251xfd_dump_registers()
101 static void mcp251xfd_dump_ring(struct mcp251xfd_dump_iter *iter, in mcp251xfd_dump_ring() argument
[all …]
/linux/tools/testing/radix-tree/
H A Dregression3.c34 struct radix_tree_iter iter; in regression3_test() local
44 radix_tree_for_each_tagged(slot, &root, &iter, 0, 0) { in regression3_test()
45 printv(2, "tagged %ld %p\n", iter.index, *slot); in regression3_test()
52 printv(2, "retry at %ld\n", iter.index); in regression3_test()
53 slot = radix_tree_iter_retry(&iter); in regression3_test()
60 radix_tree_for_each_slot(slot, &root, &iter, 0) { in regression3_test()
61 printv(2, "slot %ld %p\n", iter.index, *slot); in regression3_test()
67 printv(2, "retry at %ld\n", iter.index); in regression3_test()
68 slot = radix_tree_iter_retry(&iter); in regression3_test()
73 radix_tree_for_each_slot(slot, &root, &iter, 0) { in regression3_test()
[all …]
/linux/net/rds/
H A Dinfo.c104 void rds_info_iter_unmap(struct rds_info_iterator *iter) in rds_info_iter_unmap() argument
106 if (iter->addr) { in rds_info_iter_unmap()
107 kunmap_atomic(iter->addr); in rds_info_iter_unmap()
108 iter->addr = NULL; in rds_info_iter_unmap()
115 void rds_info_copy(struct rds_info_iterator *iter, void *data, in rds_info_copy() argument
121 if (!iter->addr) in rds_info_copy()
122 iter->addr = kmap_atomic(*iter->pages); in rds_info_copy()
124 this = min(bytes, PAGE_SIZE - iter->offset); in rds_info_copy()
127 "bytes %lu\n", *iter->pages, iter->addr, in rds_info_copy()
128 iter->offset, this, data, bytes); in rds_info_copy()
[all …]
/linux/lib/
H A Dgeneric-radix-tree.c86 void *__genradix_iter_peek(struct genradix_iter *iter, in __genradix_iter_peek() argument
94 if (iter->offset == SIZE_MAX) in __genradix_iter_peek()
105 if (ilog2(iter->offset) >= genradix_depth_shift(level)) in __genradix_iter_peek()
111 i = (iter->offset >> genradix_depth_shift(level)) & in __genradix_iter_peek()
117 if (iter->offset + objs_per_ptr < iter->offset) { in __genradix_iter_peek()
118 iter->offset = SIZE_MAX; in __genradix_iter_peek()
119 iter->pos = SIZE_MAX; in __genradix_iter_peek()
124 iter->offset = round_down(iter->offset + objs_per_ptr, in __genradix_iter_peek()
126 iter->pos = (iter->offset >> GENRADIX_NODE_SHIFT) * in __genradix_iter_peek()
135 return &n->data[iter->offset & (GENRADIX_NODE_SIZE - 1)]; in __genradix_iter_peek()
[all …]
/linux/drivers/infiniband/ulp/ipoib/
H A Dipoib_fs.c60 struct ipoib_mcast_iter *iter; in ipoib_mcg_seq_start() local
63 iter = ipoib_mcast_iter_init(file->private); in ipoib_mcg_seq_start()
64 if (!iter) in ipoib_mcg_seq_start()
68 if (ipoib_mcast_iter_next(iter)) { in ipoib_mcg_seq_start()
69 kfree(iter); in ipoib_mcg_seq_start()
74 return iter; in ipoib_mcg_seq_start()
80 struct ipoib_mcast_iter *iter = iter_ptr; in ipoib_mcg_seq_next() local
84 if (ipoib_mcast_iter_next(iter)) { in ipoib_mcg_seq_next()
85 kfree(iter); in ipoib_mcg_seq_next()
89 return iter; in ipoib_mcg_seq_next()
[all …]
/linux/kernel/trace/
H A Dtrace_kdb.c20 static struct trace_iterator iter; variable
29 tr = iter.tr; in ftrace_dump_buf()
40 trace_iterator_reset(&iter); in ftrace_dump_buf()
41 iter.iter_flags |= TRACE_FILE_LAT_FMT; in ftrace_dump_buf()
45 iter.buffer_iter[cpu] = in ftrace_dump_buf()
46 ring_buffer_read_start(iter.array_buffer->buffer, in ftrace_dump_buf()
48 tracing_iter_reset(&iter, cpu); in ftrace_dump_buf()
51 iter.cpu_file = cpu_file; in ftrace_dump_buf()
52 iter.buffer_iter[cpu_file] = in ftrace_dump_buf()
53 ring_buffer_read_start(iter.array_buffer->buffer, in ftrace_dump_buf()
[all …]
/linux/fs/netfs/
H A Diterator.c109 static size_t netfs_limit_bvec(const struct iov_iter *iter, size_t start_offset, in netfs_limit_bvec() argument
112 const struct bio_vec *bvecs = iter->bvec; in netfs_limit_bvec()
113 unsigned int nbv = iter->nr_segs, ix = 0, nsegs = 0; in netfs_limit_bvec()
114 size_t len, span = 0, n = iter->count; in netfs_limit_bvec()
115 size_t skip = iter->iov_offset + start_offset; in netfs_limit_bvec()
117 if (WARN_ON(!iov_iter_is_bvec(iter)) || in netfs_limit_bvec()
150 static size_t netfs_limit_kvec(const struct iov_iter *iter, size_t start_offset, in netfs_limit_kvec() argument
153 const struct kvec *kvecs = iter->kvec; in netfs_limit_kvec()
154 unsigned int nkv = iter->nr_segs, ix = 0, nsegs = 0; in netfs_limit_kvec()
155 size_t len, span = 0, n = iter->count; in netfs_limit_kvec()
[all …]
/linux/drivers/gpu/drm/tests/
H A Ddrm_damage_helper_test.c122 struct drm_atomic_helper_damage_iter iter; in drm_test_damage_iter_no_damage() local
129 drm_atomic_helper_damage_iter_init(&iter, &mock->old_state, &mock->state); in drm_test_damage_iter_no_damage()
130 drm_atomic_for_each_plane_damage(&iter, &clip) in drm_test_damage_iter_no_damage()
140 struct drm_atomic_helper_damage_iter iter; in drm_test_damage_iter_no_damage_fractional_src() local
149 drm_atomic_helper_damage_iter_init(&iter, &mock->old_state, &mock->state); in drm_test_damage_iter_no_damage_fractional_src()
150 drm_atomic_for_each_plane_damage(&iter, &clip) in drm_test_damage_iter_no_damage_fractional_src()
161 struct drm_atomic_helper_damage_iter iter; in drm_test_damage_iter_no_damage_src_moved() local
169 drm_atomic_helper_damage_iter_init(&iter, &mock->old_state, &mock->state); in drm_test_damage_iter_no_damage_src_moved()
170 drm_atomic_for_each_plane_damage(&iter, &clip) in drm_test_damage_iter_no_damage_src_moved()
180 struct drm_atomic_helper_damage_iter iter; in drm_test_damage_iter_no_damage_fractional_src_moved() local
[all …]
/linux/drivers/dma/ppc4xx/
H A Dadma.c174 struct ppc440spe_adma_desc_slot *iter) in print_cb_list() argument
176 for (; iter; iter = iter->hw_next) in print_cb_list()
177 print_cb(chan, iter->hw_desc); in print_cb_list()
322 struct ppc440spe_adma_desc_slot *iter; in ppc440spe_desc_init_dma01pq() local
336 list_for_each_entry(iter, &desc->group_list, chain_node) { in ppc440spe_desc_init_dma01pq()
337 hw_desc = iter->hw_desc; in ppc440spe_desc_init_dma01pq()
338 memset(iter->hw_desc, 0, sizeof(struct dma_cdb)); in ppc440spe_desc_init_dma01pq()
340 if (likely(!list_is_last(&iter->chain_node, in ppc440spe_desc_init_dma01pq()
343 iter->hw_next = list_entry(iter->chain_node.next, in ppc440spe_desc_init_dma01pq()
345 clear_bit(PPC440SPE_DESC_INT, &iter->flags); in ppc440spe_desc_init_dma01pq()
[all …]

12345678910>>...28