Searched refs:ring (Results 101 - 125 of 804) sorted by relevance

1234567891011>>

/linux-master/tools/virtio/ringtest/
H A Dring.c6 * Simple descriptor-based ring. virtio 0.9 compatible event index is used for
56 struct desc *ring; variable in typeref:struct:desc
76 /* implemented by ring */
82 ret = posix_memalign((void **)&ring, 0x1000, ring_size * sizeof *ring);
84 perror("Unable to allocate ring buffer.\n");
101 ring[i] = desc;
125 ring[head].addr = (unsigned long)(void*)buf;
126 ring[head].len = len;
133 index = ring[hea
[all...]
H A DMakefile4 all: ring virtio_ring_0_9 virtio_ring_poll virtio_ring_inorder ptr_ring noring
11 ring.o: ring.c main.h
16 ring: ring.o main.o
24 -rm ring.o ring
/linux-master/drivers/gpu/drm/radeon/
H A Dni.h32 int ring, u32 cp_int_cntl);
H A Dradeon_sync.c70 other = sync->sync_to[fence->ring];
71 sync->sync_to[fence->ring] = radeon_fence_later(fence, other);
112 * radeon_sync_rings - sync ring to all registered fences
116 * @ring: ring that needs sync
119 * the ring continue. The caller must hold the ring lock.
123 int ring)
133 if (!radeon_fence_need_sync(fence, ring))
137 if (!rdev->ring[
121 radeon_sync_rings(struct radeon_device *rdev, struct radeon_sync *sync, int ring) argument
[all...]
/linux-master/drivers/net/ethernet/aquantia/atlantic/hw_atl/
H A Dhw_atl_b0.h40 int hw_atl_b0_hw_ring_tx_start(struct aq_hw_s *self, struct aq_ring_s *ring);
41 int hw_atl_b0_hw_ring_rx_start(struct aq_hw_s *self, struct aq_ring_s *ring);
45 int hw_atl_b0_hw_ring_rx_fill(struct aq_hw_s *self, struct aq_ring_s *ring,
47 int hw_atl_b0_hw_ring_rx_receive(struct aq_hw_s *self, struct aq_ring_s *ring);
51 int hw_atl_b0_hw_ring_tx_xmit(struct aq_hw_s *self, struct aq_ring_s *ring,
54 struct aq_ring_s *ring);
56 int hw_atl_b0_hw_ring_tx_stop(struct aq_hw_s *self, struct aq_ring_s *ring);
57 int hw_atl_b0_hw_ring_rx_stop(struct aq_hw_s *self, struct aq_ring_s *ring);
/linux-master/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_hdp.h32 void (*flush_hdp)(struct amdgpu_device *adev, struct amdgpu_ring *ring);
34 struct amdgpu_ring *ring);
H A Dvce_v4_0.c58 * @ring: amdgpu_ring pointer
62 static uint64_t vce_v4_0_ring_get_rptr(struct amdgpu_ring *ring) argument
64 struct amdgpu_device *adev = ring->adev;
66 if (ring->me == 0)
68 else if (ring->me == 1)
77 * @ring: amdgpu_ring pointer
81 static uint64_t vce_v4_0_ring_get_wptr(struct amdgpu_ring *ring) argument
83 struct amdgpu_device *adev = ring->adev;
85 if (ring->use_doorbell)
86 return *ring
103 vce_v4_0_ring_set_wptr(struct amdgpu_ring *ring) argument
207 struct amdgpu_ring *ring; local
338 struct amdgpu_ring *ring; local
428 struct amdgpu_ring *ring; local
979 vce_v4_0_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, struct amdgpu_ib *ib, uint32_t flags) argument
991 vce_v4_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, unsigned flags) argument
1003 vce_v4_0_ring_insert_end(struct amdgpu_ring *ring) argument
1008 vce_v4_0_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, uint32_t val, uint32_t mask) argument
1017 vce_v4_0_emit_vm_flush(struct amdgpu_ring *ring, unsigned int vmid, uint64_t pd_addr) argument
1030 vce_v4_0_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val) argument
[all...]
H A Dsdma_v3_0.c186 * and each one supports 1 ring buffer used for gfx
190 * (ring buffer, IBs, etc.), but sDMA has it's own
340 * @ring: amdgpu ring pointer
344 static uint64_t sdma_v3_0_ring_get_rptr(struct amdgpu_ring *ring) argument
347 return *ring->rptr_cpu_addr >> 2;
353 * @ring: amdgpu ring pointer
357 static uint64_t sdma_v3_0_ring_get_wptr(struct amdgpu_ring *ring) argument
359 struct amdgpu_device *adev = ring
379 sdma_v3_0_ring_set_wptr(struct amdgpu_ring *ring) argument
397 sdma_v3_0_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count) argument
420 sdma_v3_0_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, struct amdgpu_ib *ib, uint32_t flags) argument
448 sdma_v3_0_ring_emit_hdp_flush(struct amdgpu_ring *ring) argument
480 sdma_v3_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, unsigned flags) argument
637 struct amdgpu_ring *ring; local
802 sdma_v3_0_ring_test_ring(struct amdgpu_ring *ring) argument
855 sdma_v3_0_ring_test_ib(struct amdgpu_ring *ring, long timeout) argument
1004 sdma_v3_0_ring_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib) argument
1028 sdma_v3_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring) argument
1056 sdma_v3_0_ring_emit_vm_flush(struct amdgpu_ring *ring, unsigned vmid, uint64_t pd_addr) argument
1073 sdma_v3_0_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val) argument
1110 struct amdgpu_ring *ring; local
[all...]
H A Dsdma_v4_4_2.c154 * @ring: amdgpu ring pointer
158 static uint64_t sdma_v4_4_2_ring_get_rptr(struct amdgpu_ring *ring) argument
163 rptr = READ_ONCE(*((u64 *)&ring->adev->wb.wb[ring->rptr_offs]));
172 * @ring: amdgpu ring pointer
176 static uint64_t sdma_v4_4_2_ring_get_wptr(struct amdgpu_ring *ring) argument
178 struct amdgpu_device *adev = ring->adev;
181 if (ring
203 sdma_v4_4_2_ring_set_wptr(struct amdgpu_ring *ring) argument
245 sdma_v4_4_2_page_ring_get_wptr(struct amdgpu_ring *ring) argument
269 sdma_v4_4_2_page_ring_set_wptr(struct amdgpu_ring *ring) argument
289 sdma_v4_4_2_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count) argument
312 sdma_v4_4_2_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, struct amdgpu_ib *ib, uint32_t flags) argument
333 sdma_v4_4_2_wait_reg_mem(struct amdgpu_ring *ring, int mem_space, int hdp, uint32_t addr0, uint32_t addr1, uint32_t ref, uint32_t mask, uint32_t inv) argument
365 sdma_v4_4_2_ring_emit_hdp_flush(struct amdgpu_ring *ring) argument
392 sdma_v4_4_2_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, unsigned flags) argument
596 sdma_v4_4_2_rb_cntl(struct amdgpu_ring *ring, uint32_t rb_cntl) argument
622 struct amdgpu_ring *ring = &adev->sdma.instance[i].ring; local
710 struct amdgpu_ring *ring = &adev->sdma.instance[i].page; local
867 struct amdgpu_ring *ring; local
954 sdma_v4_4_2_ring_test_ring(struct amdgpu_ring *ring) argument
1007 sdma_v4_4_2_ring_test_ib(struct amdgpu_ring *ring, long timeout) argument
1159 sdma_v4_4_2_ring_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib) argument
1184 sdma_v4_4_2_ring_emit_pipeline_sync(struct amdgpu_ring *ring) argument
1207 sdma_v4_4_2_ring_emit_vm_flush(struct amdgpu_ring *ring, unsigned vmid, uint64_t pd_addr) argument
1213 sdma_v4_4_2_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val) argument
1222 sdma_v4_4_2_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, uint32_t val, uint32_t mask) argument
1282 struct amdgpu_ring *ring; local
[all...]
H A Dmes_v11_0.c63 static void mes_v11_0_ring_set_wptr(struct amdgpu_ring *ring) argument
65 struct amdgpu_device *adev = ring->adev;
67 if (ring->use_doorbell) {
68 atomic64_set((atomic64_t *)ring->wptr_cpu_addr,
69 ring->wptr);
70 WDOORBELL64(ring->doorbell_index, ring->wptr);
76 static u64 mes_v11_0_ring_get_rptr(struct amdgpu_ring *ring) argument
78 return *ring->rptr_cpu_addr;
81 static u64 mes_v11_0_ring_get_wptr(struct amdgpu_ring *ring) argument
112 struct amdgpu_ring *ring = &mes->ring; local
673 mes_v11_0_mqd_init(struct amdgpu_ring *ring) argument
777 mes_v11_0_queue_init_register(struct amdgpu_ring *ring) argument
862 struct amdgpu_ring *ring; local
908 struct amdgpu_ring *ring; local
931 struct amdgpu_ring *ring; local
958 struct amdgpu_ring *ring; local
1069 mes_v11_0_kiq_dequeue(struct amdgpu_ring *ring) argument
1104 mes_v11_0_kiq_setting(struct amdgpu_ring *ring) argument
[all...]
H A Damdgpu_jpeg.c127 void amdgpu_jpeg_ring_begin_use(struct amdgpu_ring *ring) argument
129 struct amdgpu_device *adev = ring->adev;
140 void amdgpu_jpeg_ring_end_use(struct amdgpu_ring *ring) argument
142 atomic_dec(&ring->adev->jpeg.total_submission_cnt);
143 schedule_delayed_work(&ring->adev->jpeg.idle_work, JPEG_IDLE_TIMEOUT);
146 int amdgpu_jpeg_dec_ring_test_ring(struct amdgpu_ring *ring) argument
148 struct amdgpu_device *adev = ring->adev;
157 r = amdgpu_ring_alloc(ring, 3);
161 WREG32(adev->jpeg.inst[ring->me].external.jpeg_pitch[ring
182 amdgpu_jpeg_dec_set_reg(struct amdgpu_ring *ring, uint32_t handle, struct dma_fence **fence) argument
222 amdgpu_jpeg_dec_ring_test_ib(struct amdgpu_ring *ring, long timeout) argument
[all...]
H A Damdgpu_ih.c33 * @ih: ih ring to initialize
34 * @ring_size: ring size to allocate
38 * for the IH ring buffer.
47 /* Align ring size */
58 if (ih->ring)
62 * add them to the end of the ring allocation.
64 ih->ring = dma_alloc_coherent(adev->dev, ih->ring_size + 8,
66 if (ih->ring == NULL)
71 ih->wptr_cpu = &ih->ring[ih->ring_size / 4];
73 ih->rptr_cpu = &ih->ring[(i
[all...]
H A Dsi_dma.c41 static uint64_t si_dma_ring_get_rptr(struct amdgpu_ring *ring) argument
43 return *ring->rptr_cpu_addr;
46 static uint64_t si_dma_ring_get_wptr(struct amdgpu_ring *ring) argument
48 struct amdgpu_device *adev = ring->adev;
49 u32 me = (ring == &adev->sdma.instance[0].ring) ? 0 : 1;
54 static void si_dma_ring_set_wptr(struct amdgpu_ring *ring) argument
56 struct amdgpu_device *adev = ring->adev;
57 u32 me = (ring == &adev->sdma.instance[0].ring)
62 si_dma_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, struct amdgpu_ib *ib, uint32_t flags) argument
91 si_dma_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, unsigned flags) argument
128 struct amdgpu_ring *ring; local
192 si_dma_ring_test_ring(struct amdgpu_ring *ring) argument
243 si_dma_ring_test_ib(struct amdgpu_ring *ring, long timeout) argument
400 si_dma_ring_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib) argument
413 si_dma_ring_emit_pipeline_sync(struct amdgpu_ring *ring) argument
438 si_dma_ring_emit_vm_flush(struct amdgpu_ring *ring, unsigned vmid, uint64_t pd_addr) argument
452 si_dma_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val) argument
476 struct amdgpu_ring *ring; local
[all...]
/linux-master/drivers/comedi/drivers/
H A Dmite.h41 struct mite_ring *ring; member in struct:mite_channel
68 struct mite_ring *ring,
72 struct mite_ring *ring);
75 int mite_init_ring_descriptors(struct mite_ring *ring,
77 int mite_buf_change(struct mite_ring *ring, struct comedi_subdevice *s);
80 void mite_free_ring(struct mite_ring *ring);
/linux-master/drivers/net/wireless/ath/ath12k/
H A Ddbring.h59 struct ath12k_dbring *ring,
65 struct ath12k_dbring *ring,
68 struct ath12k_dbring *ring,
70 int ath12k_dbring_srng_setup(struct ath12k *ar, struct ath12k_dbring *ring,
78 void ath12k_dbring_srng_cleanup(struct ath12k *ar, struct ath12k_dbring *ring);
79 void ath12k_dbring_buf_cleanup(struct ath12k *ar, struct ath12k_dbring *ring);
/linux-master/drivers/net/ethernet/intel/ixgbe/
H A Dixgbe_txrx_common.h16 int ixgbe_xmit_xdp_ring(struct ixgbe_ring *ring,
26 void ixgbe_xdp_ring_update_tail(struct ixgbe_ring *ring);
27 void ixgbe_xdp_ring_update_tail_locked(struct ixgbe_ring *ring);
30 void ixgbe_txrx_ring_disable(struct ixgbe_adapter *adapter, int ring);
31 void ixgbe_txrx_ring_enable(struct ixgbe_adapter *adapter, int ring);
34 struct ixgbe_ring *ring);
/linux-master/tools/testing/selftests/bpf/prog_tests/
H A Dringbuf_multi.c18 int ring = (unsigned long)ctx; local
23 CHECK(ring != 1, "sample1_ring", "exp %d, got %d\n", 1, ring);
28 CHECK(ring != 2, "sample2_ring", "exp %d, got %d\n", 2, ring);
45 struct ring *ring_old;
46 struct ring *ring; local
90 ring = ring_buffer__ring(ringbuf, 0);
91 if (!ASSERT_OK_PTR(ring, "ring_buffer__ring_idx_
[all...]
/linux-master/drivers/net/ethernet/hisilicon/hns/
H A Dhns_enet.c35 static void fill_v2_desc_hw(struct hnae_ring *ring, void *priv, int size, argument
39 struct hnae_desc *desc = &ring->desc[ring->next_to_use];
40 struct hnae_desc_cb *desc_cb = &ring->desc_cb[ring->next_to_use];
67 HNSV2_TXD_PORTID_S, ring->q->handle->dport_id);
125 ring_ptr_move_fw(ring, next_to_use);
128 static void fill_v2_desc(struct hnae_ring *ring, void *priv, argument
132 fill_v2_desc_hw(ring, priv, size, size, dma, frag_end,
143 static void fill_desc(struct hnae_ring *ring, voi argument
205 unfill_desc(struct hnae_ring *ring) argument
210 hns_nic_maybe_stop_tx( struct sk_buff **out_skb, int *bnum, struct hnae_ring *ring) argument
239 hns_nic_maybe_stop_tso( struct sk_buff **out_skb, int *bnum, struct hnae_ring *ring) argument
279 hns_nic_maybe_stop_tx_v2(struct sk_buff **out_skb, int *bnum, struct hnae_ring *ring) argument
288 fill_tso_desc(struct hnae_ring *ring, void *priv, int size, dma_addr_t dma, int frag_end, int buf_num, enum hns_desc_type type, int mtu) argument
313 fill_desc_v2(struct hnae_ring *ring, void *priv, int size, dma_addr_t dma, int frag_end, int buf_num, enum hns_desc_type type, int mtu, bool is_gso) argument
331 struct hnae_ring *ring = ring_data->ring; local
432 hns_nic_reuse_page(struct sk_buff *skb, int i, struct hnae_ring *ring, int pull_len, struct hnae_desc_cb *desc_cb) argument
565 struct hnae_ring *ring = ring_data->ring; local
690 struct hnae_ring *ring = ring_data->ring; local
726 hns_desc_unused(struct hnae_ring *ring) argument
739 hns_coal_rx_bdnum(struct hnae_ring *ring) argument
750 hns_update_rx_rate(struct hnae_ring *ring) argument
801 struct hnae_ring *ring = ring_data->ring; local
846 struct hnae_ring *ring = ring_data->ring; local
897 struct hnae_ring *ring = ring_data->ring; local
924 struct hnae_ring *ring = ring_data->ring; local
940 hns_nic_reclaim_one_desc(struct hnae_ring *ring, int *bytes, int *pkts) argument
953 is_valid_clean_head(struct hnae_ring *ring, int h) argument
974 struct hnae_ring *ring = ring_data->ring; local
1028 struct hnae_ring *ring = ring_data->ring; local
1047 struct hnae_ring *ring = ring_data->ring; local
1058 struct hnae_ring *ring = ring_data->ring; local
1079 struct hnae_ring *ring = ring_data->ring; local
1256 hns_nic_init_affinity_mask(int q_num, int ring_idx, struct hnae_ring *ring, cpumask_t *mask) argument
1629 struct hnae_ring *ring; local
[all...]
/linux-master/drivers/net/ethernet/intel/fm10k/
H A Dfm10k_debugfs.c15 struct fm10k_ring *ring = s->private; local
17 return (*pos < ring->count) ? pos : NULL;
24 struct fm10k_ring *ring = s->private; local
26 return (++(*pos) < ring->count) ? pos : NULL;
45 struct fm10k_ring *ring = s->private; local
57 if (!ring->desc) {
58 seq_printf(s, "%03X Descriptor ring not allocated.\n", i);
60 struct fm10k_tx_desc *txd = FM10K_TX_DESC(ring, i);
72 struct fm10k_ring *ring = s->private; local
84 if (!ring
115 struct fm10k_ring *ring = inode->i_private; local
166 struct fm10k_ring *ring = &q_vector->tx.ring[i]; local
177 struct fm10k_ring *ring = &q_vector->rx.ring[i]; local
[all...]
/linux-master/net/xdp/
H A Dxsk_queue.h2 /* XDP user-space ring structure
45 struct xdp_ring *ring; member in struct:xsk_queue
59 * completion ring, the kernel is the producer and user space is the
95 * now and again after circling through the ring.
102 * RESERVE entries PEEK in the ring for entries
103 * WRITE data into the ring READ data from the ring
106 * The producer reserves one or more entries in the ring. It can then
110 * The consumer peeks into the ring to see if the producer has written
122 struct xdp_umem_ring *ring local
213 struct xdp_rxtx_ring *ring = (struct xdp_rxtx_ring *)q->ring; local
248 struct xdp_rxtx_ring *ring = (struct xdp_rxtx_ring *)q->ring; local
388 struct xdp_umem_ring *ring = (struct xdp_umem_ring *)q->ring; local
401 struct xdp_umem_ring *ring = (struct xdp_umem_ring *)q->ring; local
414 struct xdp_rxtx_ring *ring = (struct xdp_rxtx_ring *)q->ring; local
[all...]
/linux-master/drivers/gpu/drm/qxl/
H A Dqxl_cmd.c26 /* QXL cmd/ring handling */
37 struct ring { struct
43 struct ring *ring; member in struct:qxl_ring
51 void qxl_ring_free(struct qxl_ring *ring) argument
53 kfree(ring);
63 struct qxl_ring *ring; local
65 ring = kmalloc(sizeof(*ring), GFP_KERNEL);
66 if (!ring)
78 qxl_check_header(struct qxl_ring *ring) argument
92 qxl_check_idle(struct qxl_ring *ring) argument
104 qxl_ring_push(struct qxl_ring *ring, const void *new_elt, bool interruptible) argument
151 qxl_ring_pop(struct qxl_ring *ring, void *element) argument
[all...]
/linux-master/drivers/net/ethernet/freescale/enetc/
H A Denetc_cbdr.c42 /* enable ring */
53 /* disable ring */
63 static void enetc_clean_cbdr(struct enetc_cbdr *ring) argument
68 i = ring->next_to_clean;
70 while (enetc_rd_reg(ring->cir) != i) {
71 dest_cbd = ENETC_CBD(*ring, i);
74 dev_warn(ring->dma_dev, "CMD err %04x for cmd %04x\n",
79 i = (i + 1) % ring->bd_count;
82 ring->next_to_clean = i;
93 struct enetc_cbdr *ring local
178 struct enetc_cbdr *ring = &si->cbd_ring; local
210 struct enetc_cbdr *ring = &si->cbd_ring; local
[all...]
/linux-master/drivers/net/ethernet/intel/ixgbevf/
H A Dixgbevf.h83 #define ring_is_xdp(ring) \
84 test_bit(__IXGBEVF_TX_XDP_RING, &(ring)->state)
85 #define set_ring_xdp(ring) \
86 set_bit(__IXGBEVF_TX_XDP_RING, &(ring)->state)
87 #define clear_ring_xdp(ring) \
88 clear_bit(__IXGBEVF_TX_XDP_RING, &(ring)->state)
96 void *desc; /* descriptor ring memory */
97 dma_addr_t dma; /* phys. address of descriptor ring */
121 * associated with this ring, which is different for DCB and RSS modes
172 #define ring_uses_large_buffer(ring) \
186 ixgbevf_rx_bufsz(struct ixgbevf_ring *ring) argument
198 ixgbevf_rx_pg_order(struct ixgbevf_ring *ring) argument
217 struct ixgbevf_ring *ring; /* pointer to linked list of rings */ member in struct:ixgbevf_ring_container
286 ixgbevf_desc_unused(struct ixgbevf_ring *ring) argument
294 ixgbevf_write_tail(struct ixgbevf_ring *ring, u32 value) argument
[all...]
/linux-master/drivers/net/netdevsim/
H A Dethtool.c68 struct ethtool_ringparam *ring,
74 memcpy(ring, &ns->ethtool.ring, sizeof(ns->ethtool.ring));
78 struct ethtool_ringparam *ring,
84 ns->ethtool.ring.rx_pending = ring->rx_pending;
85 ns->ethtool.ring.rx_jumbo_pending = ring->rx_jumbo_pending;
86 ns->ethtool.ring
67 nsim_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring, struct kernel_ethtool_ringparam *kernel_ring, struct netlink_ext_ack *extack) argument
77 nsim_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ring, struct kernel_ethtool_ringparam *kernel_ring, struct netlink_ext_ack *extack) argument
[all...]
/linux-master/drivers/net/wireless/broadcom/brcm80211/brcmfmac/
H A Dflowring.c106 struct brcmf_flowring_ring *ring; local
148 ring = kzalloc(sizeof(*ring), GFP_ATOMIC);
149 if (!ring)
157 ring->hash_id = hash_idx;
158 ring->status = RING_CLOSED;
159 skb_queue_head_init(&ring->skblist);
160 flow->rings[i] = ring;
170 struct brcmf_flowring_ring *ring; local
172 ring
181 struct brcmf_flowring_ring *ring; local
230 struct brcmf_flowring_ring *ring; local
262 struct brcmf_flowring_ring *ring; local
287 struct brcmf_flowring_ring *ring; local
309 struct brcmf_flowring_ring *ring; local
319 struct brcmf_flowring_ring *ring; local
334 struct brcmf_flowring_ring *ring; local
348 struct brcmf_flowring_ring *ring; local
[all...]

Completed in 262 milliseconds

1234567891011>>