Home
last modified time | relevance | path

Searched refs:pf (Results 1 – 25 of 553) sorted by relevance

12345678910>>...23

/openbmc/linux/drivers/net/ethernet/netronome/nfp/
H A Dnfp_net_main.c303 pf->app = nfp_app_alloc(pf, nfp_net_pf_get_app_id(pf)); in nfp_net_pf_app_init()
350 nfp_net_pf_free_vnic(pf, pf->ctrl_vnic); in nfp_net_pf_app_clean()
368 err = nfp_net_pf_init_vnic(pf, pf->ctrl_vnic, 0); in nfp_net_pf_app_start_ctrl()
379 nfp_net_pf_clean_vnic(pf, pf->ctrl_vnic); in nfp_net_pf_app_start_ctrl()
388 nfp_net_pf_clean_vnic(pf, pf->ctrl_vnic); in nfp_net_pf_app_stop_ctrl()
399 err = nfp_app_start(pf->app, pf->ctrl_vnic); in nfp_net_pf_app_start()
404 err = nfp_app_sriov_enable(pf->app, pf->num_vfs); in nfp_net_pf_app_start()
492 pf->dev_info->qc_area_sz, &pf->qc_area); in nfp_net_pci_map_mem()
658 struct nfp_pf *pf = port->app->pf; in nfp_net_refresh_port_table() local
662 queue_work(pf->wq, &pf->port_refresh_work); in nfp_net_refresh_port_table()
[all …]
H A Dnfp_main.c167 n = nfp_rtsym_read(pf->cpp, pf->mbox, NFP_MBOX_DATA, in nfp_mbox_cmd()
215 pf->hwinfo = nfp_hwinfo_read(pf->cpp); in nfp_pf_board_state_wait()
593 pf->eth_tbl = __nfp_eth_read_ports(pf->cpp, nsp); in nfp_nsp_init_ports()
609 pf->eth_tbl = __nfp_eth_read_ports(pf->cpp, nsp); in nfp_nsp_init_ports()
816 pf->hwinfo = nfp_hwinfo_read(pf->cpp); in nfp_pci_probe()
833 pf->mip = nfp_mip_open(pf->cpp); in nfp_pci_probe()
834 pf->rtbl = __nfp_rtsym_table_read(pf->cpp, pf->mip); in nfp_pci_probe()
841 pf->dumpspec = nfp_net_dump_load_dumpspec(pf->cpp, pf->rtbl); in nfp_pci_probe()
848 if (pf->num_vfs > pf->limit_vfs) { in nfp_pci_probe()
851 pf->num_vfs, pf->limit_vfs); in nfp_pci_probe()
[all …]
H A Dnfp_shared_buf.c18 for (i = 0; i < pf->num_shared_bufs; i++) in nfp_shared_buf_pool_unit()
19 if (pf->shared_bufs[i].id == sb_id) in nfp_shared_buf_pool_unit()
37 unit_size = nfp_shared_buf_pool_unit(pf, sb); in nfp_shared_buf_pool_get()
69 unit_size = nfp_shared_buf_pool_unit(pf, sb); in nfp_shared_buf_pool_set()
86 if (!pf->mbox) in nfp_shared_buf_register()
102 pf->shared_bufs = kmalloc_array(num_entries, sizeof(pf->shared_bufs[0]), in nfp_shared_buf_register()
104 if (!pf->shared_bufs) { in nfp_shared_buf_register()
125 pf->num_shared_bufs = num_entries; in nfp_shared_buf_register()
135 kfree(pf->shared_bufs); in nfp_shared_buf_register()
146 for (i = 0; i < pf->num_shared_bufs; i++) in nfp_shared_buf_unregister()
[all …]
/openbmc/qemu/ui/
H A Dqemu-pixman.c28 pf.ashift = pf.bbits + pf.gbits + pf.rbits; in qemu_pixelformat_from_pixman()
29 pf.rshift = pf.bbits + pf.gbits; in qemu_pixelformat_from_pixman()
34 pf.ashift = pf.rbits + pf.gbits + pf.bbits; in qemu_pixelformat_from_pixman()
35 pf.bshift = pf.rbits + pf.gbits; in qemu_pixelformat_from_pixman()
41 pf.gshift = bpp - (pf.bbits + pf.gbits); in qemu_pixelformat_from_pixman()
42 pf.rshift = bpp - (pf.bbits + pf.gbits + pf.rbits); in qemu_pixelformat_from_pixman()
48 pf.bshift = bpp - (pf.rbits + pf.gbits + pf.bbits); in qemu_pixelformat_from_pixman()
60 pf.amask = pf.amax << pf.ashift; in qemu_pixelformat_from_pixman()
61 pf.rmask = pf.rmax << pf.rshift; in qemu_pixelformat_from_pixman()
62 pf.gmask = pf.gmax << pf.gshift; in qemu_pixelformat_from_pixman()
[all …]
/openbmc/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_pf.c110 devm_kfree(pf->dev, pf->flr_wrk); in otx2_flr_wq_destroy()
116 struct otx2_nic *pf = flrwork->pf; in otx2_flr_handler() local
288 pf->flr_wrk[vf].pf = pf; in otx2_pf_flr_init()
1486 pf->rbsize = otx2_get_rbuf_size(pf, pf->netdev->mtu); in otx2_init_hw_resources()
1773 pf->hw.non_qos_queues = pf->hw.tx_queues + pf->hw.xdp_queues; in otx2_open()
1774 pf->hw.cint_cnt = max3(pf->hw.rx_queues, pf->hw.tx_queues, in otx2_open()
1777 pf->qset.cq_cnt = pf->hw.rx_queues + otx2_get_total_tx_queues(pf); in otx2_open()
2824 pf->vf_configs = devm_kcalloc(pf->dev, pf->total_vfs, in otx2_sriov_vfcfg_init()
2831 pf->vf_configs[i].pf = pf; in otx2_sriov_vfcfg_init()
3095 qmem_free(pf->dev, pf->dync_lmt); in otx2_probe()
[all …]
H A Dotx2_dmac_flt.c17 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_do_add()
21 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_do_add()
34 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_do_add()
44 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_add_pfmac()
48 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_add_pfmac()
70 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_add_pfmac()
115 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_remove_pfmac()
125 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_remove_pfmac()
150 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_get_max_cnt()
173 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_get_max_cnt()
[all …]
/openbmc/linux/drivers/net/ethernet/intel/ice/
H A Dice_irq.c100 if (!ice_is_rdma_ena(pf)) { in ice_reduce_msix_usage()
112 pf->num_rdma_msix = 0; in ice_reduce_msix_usage()
125 pf->num_lan_msix = v_remain - pf->num_rdma_msix; in ice_reduce_msix_usage()
163 if (ice_is_rdma_ena(pf)) { in ice_ena_msix_range()
186 v_wanted = pf->num_lan_msix + pf->num_rdma_msix + v_other; in ice_ena_msix_range()
189 pf->num_lan_msix); in ice_ena_msix_range()
190 if (ice_is_rdma_ena(pf)) in ice_ena_msix_range()
192 pf->num_rdma_msix); in ice_ena_msix_range()
222 pf->num_lan_msix); in ice_ena_msix_range()
233 pf->num_rdma_msix = 0; in ice_ena_msix_range()
[all …]
H A Dice_idc.c22 adev = pf->adev; in ice_get_auxiliary_drv()
43 if (!pf->adev) in ice_send_event_to_aux()
73 dev = ice_pf_to_dev(pf); in ice_add_rdma_qset()
148 if (WARN_ON(!pf)) in ice_rdma_request_reset()
181 if (WARN_ON(!pf)) in ice_rdma_update_vsi_filter()
240 pf->msix_entries = kcalloc(pf->num_rdma_msix, in ice_alloc_rdma_qvectors()
320 iadev->pf = pf; in ice_plug_aux_dev()
340 pf->adev = adev; in ice_plug_aux_dev()
354 adev = pf->adev; in ice_unplug_aux_dev()
355 pf->adev = NULL; in ice_unplug_aux_dev()
[all …]
H A Dice_eswitch.c27 struct ice_hw *hw = &pf->hw; in ice_eswitch_add_vf_sp_rule()
484 dev_err(ice_pf_to_dev(pf), in ice_eswitch_enable_switchdev()
489 pf->eswitch.control_vsi = ice_eswitch_vsi_setup(pf, pf->hw.port_info); in ice_eswitch_enable_switchdev()
559 if (ice_has_vfs(pf)) { in ice_eswitch_mode_set()
568 pf->hw.pf_id); in ice_eswitch_mode_set()
580 pf->hw.pf_id); in ice_eswitch_mode_set()
589 pf->eswitch_mode = mode; in ice_eswitch_mode_set()
602 *mode = pf->eswitch_mode; in ice_eswitch_mode_get()
640 pf->eswitch.is_running) in ice_eswitch_configure()
701 ice_eswitch_napi_del(pf); in ice_eswitch_rebuild()
[all …]
H A Dice_main.c719 if (pf->lag && pf->lag->bonded) { in ice_reset_subtask()
1173 pf->serv_tmr_prev + pf->serv_tmr_period)) in ice_watchdog_subtask()
1183 if (pf->vsi[i] && pf->vsi[i]->netdev) in ice_watchdog_subtask()
3276 ice_free_irq(pf, pf->oicr_irq); in ice_free_irq_msix_misc()
3344 pf->int_name, pf); in ice_req_irq_msix_misc()
3348 ice_free_irq(pf, pf->oicr_irq); in ice_req_irq_msix_misc()
4260 pf->vsi[pf->ctrl_vsi_idx] = NULL; in ice_init_fdir()
4276 pf->vsi[pf->ctrl_vsi_idx] = NULL; in ice_deinit_fdir()
4797 pf->first_sw->pf = pf; in ice_init_pf_sw()
4846 pf->vsi = devm_kcalloc(dev, pf->num_alloc_vsi, sizeof(*pf->vsi), in ice_alloc_vsis()
[all …]
H A Dice_dcb_nl.c35 struct ice_pf *pf; in ice_dcbnl_getets() local
73 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setets()
178 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setdcbx()
274 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setpfc()
341 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_set_pfc_cfg()
402 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setstate()
479 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_set_pg_tc_cfg_tx()
538 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_set_pg_bwg_cfg_tx()
763 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setapp()
879 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_delapp()
[all …]
H A Dice_sriov.c49 struct ice_pf *pf = vf->pf; in ice_free_vf_res() local
89 struct ice_pf *pf = vf->pf; in ice_dis_vf_mappings() local
225 struct ice_pf *pf = vf->pf; in ice_vf_vsi_setup() local
276 struct ice_pf *pf = vf->pf; in ice_ena_vf_msix_mappings() local
396 pf = vf->pf; in ice_calc_vf_reg_idx()
538 struct ice_pf *pf = vf->pf; in ice_init_vf_vsi_res() local
640 struct ice_pf *pf = vf->pf; in ice_sriov_clear_mbx_register() local
655 struct ice_pf *pf = vf->pf; in ice_sriov_trigger_reset_register() local
702 struct ice_pf *pf = vf->pf; in ice_sriov_poll_reset_status() local
807 vf->pf = pf; in ice_create_vf_entries()
[all …]
H A Dice_ptp.c354 if (pf->ptp.clock) in ice_get_ptp_clock_index()
399 if (!pf->ptp.clock) in ice_set_ptp_clock_index()
670 struct ice_pf *pf; in ice_ptp_process_tx_tstamp() local
682 hw = &pf->hw; in ice_ptp_process_tx_tstamp()
1080 kthread_queue_delayed_work(pf->ptp.kworker, &pf->ptp.work, in ice_ptp_reset_cached_phctime()
1177 struct ice_pf *pf; in ice_ptp_check_tx_fifo() local
1183 hw = &pf->hw; in ice_ptp_check_tx_fifo()
1254 hw = &pf->hw; in ice_ptp_wait_for_offsets()
1702 ice_ptp_cfg_clkout(pf, i, &pf->ptp.perout_channels[i], in ice_ptp_enable_all_clkout()
2573 ice_ptp_release_tx_tracker(pf, &pf->ptp.port.tx); in ice_ptp_prepare_for_reset()
[all …]
H A Dice_gnss.c91 struct ice_pf *pf; in ice_gnss_read() local
98 pf = gnss->back; in ice_gnss_read()
99 if (!pf || !test_bit(ICE_FLAG_GNSS, pf->flags)) in ice_gnss_read()
102 hw = &pf->hw; in ice_gnss_read()
181 gnss->back = pf; in ice_gnss_struct_init()
211 if (!pf) in ice_gnss_open()
237 if (!pf) in ice_gnss_close()
268 if (!pf) in ice_gnss_write()
333 if (pf->gnss_dev) { in ice_gnss_deregister()
348 pf->gnss_serial = ice_gnss_struct_init(pf); in ice_gnss_init()
[all …]
H A Dice_devlink.c46 struct ice_hw *hw = &pf->hw; in ice_info_pba()
455 if (ice_has_vfs(pf)) { in ice_devlink_reload_down()
460 ice_unload(pf); in ice_devlink_reload_down()
1243 return ice_load(pf); in ice_devlink_reload_up()
1549 if (pf->hw.pf_id == 0) in ice_devlink_create_pf_port()
1561 pf->hw.pf_id, err); in ice_devlink_create_pf_port()
1594 struct ice_pf *pf; in ice_devlink_create_vf_port() local
1597 pf = vf->pf; in ice_devlink_create_vf_port()
1606 attrs.pci_vf.pf = pf->hw.bus.func; in ice_devlink_create_vf_port()
1909 if (pf->nvm_region) in ice_devlink_destroy_regions()
[all …]
H A Dice_dcb_lib.c38 vsi = ice_get_main_vsi(pf); in ice_is_pfc_causing_hung_q()
72 ice_update_dcb_stats(pf); in ice_is_pfc_causing_hung_q()
286 ice_for_each_vsi(pf, i) { in ice_dcb_ena_dis_vsi()
546 mutex_lock(&pf->tc_mutex); in ice_dcb_rebuild()
611 pi = pf->hw.port_info; in ice_dcb_init_cfg()
642 hw = &pf->hw; in ice_dcb_sw_dflt_cfg()
748 ice_for_each_vsi(pf, v) { in ice_pf_dcb_recfg()
884 prev_ps = &pf->stats_prev; in ice_update_dcb_stats()
885 cur_ps = &pf->stats; in ice_update_dcb_stats()
892 pf->stat_prev_loaded, in ice_update_dcb_stats()
[all …]
H A Dice_dcb_lib.h17 void ice_dcb_rebuild(struct ice_pf *pf);
26 void ice_pf_dcb_recfg(struct ice_pf *pf, bool locked);
28 int ice_init_pf_dcb(struct ice_pf *pf, bool locked);
29 void ice_update_dcb_stats(struct ice_pf *pf);
34 ice_dcb_process_lldp_set_mib_change(struct ice_pf *pf,
55 static inline bool ice_is_dcb_active(struct ice_pf *pf) in ice_is_dcb_active() argument
58 test_bit(ICE_FLAG_DCB_ENA, pf->flags)); in ice_is_dcb_active()
61 static inline u8 ice_get_pfc_mode(struct ice_pf *pf) in ice_get_pfc_mode() argument
95 dev_dbg(ice_pf_to_dev(pf), "DCB not supported\n"); in ice_init_pf_dcb()
100 ice_pf_dcb_cfg(struct ice_pf __always_unused *pf, in ice_pf_dcb_cfg() argument
[all …]
/openbmc/linux/drivers/net/ethernet/intel/i40e/
H A Di40e_dcb_nl.c135 ret = i40e_hw_dcb_config(pf, &pf->tmp_cfg); in i40e_dcbnl_ieee_setets()
140 i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status)); in i40e_dcbnl_ieee_setets()
174 ret = i40e_hw_dcb_config(pf, &pf->tmp_cfg); in i40e_dcbnl_ieee_setpfc()
179 i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status)); in i40e_dcbnl_ieee_setpfc()
223 pf->tmp_cfg.app[pf->tmp_cfg.numapps++] = new_app; in i40e_dcbnl_ieee_setapp()
225 ret = i40e_hw_dcb_config(pf, &pf->tmp_cfg); in i40e_dcbnl_ieee_setapp()
230 i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status)); in i40e_dcbnl_ieee_setapp()
290 ret = i40e_hw_dcb_config(pf, &pf->tmp_cfg); in i40e_dcbnl_ieee_delapp()
295 i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status)); in i40e_dcbnl_ieee_delapp()
639 err = i40e_hw_dcb_config(pf, &pf->tmp_cfg); in i40e_dcbnl_cee_set_all()
[all …]
H A Di40e_ptp.c683 if (!(pf->flags & I40E_FLAG_PTP) || !pf->ptp_rx) in i40e_ptp_rx_hang()
736 if (!(pf->flags & I40E_FLAG_PTP) || !pf->ptp_tx) in i40e_ptp_tx_hang()
774 if (!(pf->flags & I40E_FLAG_PTP) || !pf->ptp_tx) in i40e_ptp_tx_hwtstamp()
821 if (!(pf->flags & I40E_FLAG_PTP) || !pf->ptp_rx) in i40e_ptp_rx_hwtstamp()
824 hw = &pf->hw; in i40e_ptp_rx_hwtstamp()
1344 pf->ptp_caps.pin_config = kcalloc(pf->ptp_caps.n_pins, in i40e_init_pin_config()
1399 pf->ptp_clock = ptp_clock_register(&pf->ptp_caps, &pf->pdev->dev); in i40e_ptp_create_clock()
1457 i40e_ptp_settime(&pf->ptp_caps, &pf->ptp_prev_hw_time); in i40e_ptp_restore_hw_time()
1475 struct net_device *netdev = pf->vsi[pf->lan_vsi]->netdev; in i40e_ptp_init()
1521 i40e_ptp_set_timestamp_mode(pf, &pf->tstamp_config); in i40e_ptp_init()
[all …]
H A Di40e_debugfs.c33 if (pf->vsi[i] && (pf->vsi[i]->seid == seid)) in i40e_dbg_find_vsi()
49 if (pf->veb[i] && pf->veb[i]->seid == seid) in i40e_dbg_find_veb()
90 pf->vsi[pf->lan_vsi]->netdev->name, in i40e_dbg_command_read()
150 if (vsi == pf->vsi[pf->lan_vsi]) in i40e_dbg_dump_vsi_seid()
814 vsi_seid = pf->vsi[pf->lan_vsi]->seid; in i40e_dbg_command_write()
879 if (pf->veb[i] && pf->veb[i]->seid == uplink_seid) in i40e_dbg_command_write()
912 if (pf->veb[i] && pf->veb[i]->seid == veb_seid) in i40e_dbg_command_write()
1053 vsi = pf->vsi[pf->lan_vsi]; in i40e_dbg_command_write()
1416 pf->vsi[pf->lan_vsi]->seid, in i40e_dbg_command_write()
1434 pf->vsi[pf->lan_vsi]->seid, in i40e_dbg_command_write()
[all …]
H A Di40e_main.c4643 pf->int_name, pf); in i40e_vsi_request_irq()
4646 pf->int_name, pf); in i40e_vsi_request_irq()
9925 pf = veb->pf; in i40e_veb_link_event()
12205 pf->int_name, pf); in i40e_setup_misc_vector_for_recovery_mode()
14427 pf->vsi[pf->lan_vsi]->seid = pf->main_vsi_seid; in i40e_vsi_reinit_setup()
14730 veb->pf = pf; in i40e_veb_mem_alloc()
14817 pf = veb->pf; in i40e_veb_release()
15037 pf->veb[pf->lan_veb]->uplink_seid = pf->mac_seid; in i40e_setup_pf_switch_element()
15038 pf->veb[pf->lan_veb]->pf = pf; in i40e_setup_pf_switch_element()
15208 pf->vsi[pf->lan_vsi]->seid = pf->main_vsi_seid; in i40e_setup_pf_switch()
[all …]
H A Di40e_client.c146 struct i40e_pf *pf = ldev->pf; in i40e_client_release_qvlist() local
346 cdev->lan_info.pf = (void *)pf; in i40e_client_add_instance()
466 if (ldev->pf == pf) { in i40e_lan_add_device()
476 ldev->pf = pf; in i40e_lan_add_device()
513 if (ldev->pf == pf) { in i40e_lan_del_device()
541 struct i40e_pf *pf = ldev->pf; in i40e_client_virtchnl_send() local
566 struct i40e_pf *pf = ldev->pf; in i40e_client_setup_qvlist() local
637 struct i40e_pf *pf = ldev->pf; in i40e_client_request_reset() local
672 struct i40e_pf *pf = ldev->pf; in i40e_client_update_vsi_ctxt() local
727 struct i40e_pf *pf = ldev->pf; in i40e_client_device_register() local
[all …]
H A Di40e_virtchnl_pf.c113 struct i40e_pf *pf = vf->pf; in i40e_vc_notify_vf_link_state() local
221 struct i40e_pf *pf = vf->pf; in i40e_vc_reset_vf() local
262 struct i40e_pf *pf = vf->pf; in i40e_vc_isvalid_vsi_id() local
279 struct i40e_pf *pf = vf->pf; in i40e_vc_isvalid_queue_id() local
294 struct i40e_pf *pf = vf->pf; in i40e_vc_isvalid_vector_id() local
312 struct i40e_pf *pf = vf->pf; in i40e_vc_get_pf_queue_id() local
374 struct i40e_pf *pf = vf->pf; in i40e_config_irq_link_list() local
478 struct i40e_pf *pf = vf->pf; in i40e_release_rdma_qvlist() local
532 struct i40e_pf *pf = vf->pf; in i40e_config_rdma_qvlist() local
1850 vfs[i].pf = pf; in i40e_alloc_vfs()
[all …]
/openbmc/linux/net/lapb/
H A Dlapb_in.c47 lapb->dev, frame->pf); in lapb_state0_machine()
52 lapb->dev, frame->pf); in lapb_state0_machine()
72 lapb->dev, frame->pf); in lapb_state0_machine()
87 lapb->dev, frame->pf); in lapb_state0_machine()
152 if (frame->pf) { in lapb_state1_machine()
168 if (frame->pf) { in lapb_state1_machine()
206 if (frame->pf) { in lapb_state2_machine()
217 if (frame->pf) { in lapb_state2_machine()
233 if (frame->pf) in lapb_state2_machine()
417 if (frame->pf) in lapb_state3_machine()
[all …]
/openbmc/linux/tools/perf/util/
H A Dprobe-finder.c574 &pf->sp_die, pf->machine, pf->tvar); in convert_variable()
584 pf->pvar->field, &pf->tvar->ref, in convert_variable()
607 pf->tvar->name = strdup(pf->pvar->name); in find_variable()
706 if (!die_find_realfunc(&pf->cu_die, pf->addr, &pf->sp_die)) { in call_probe_finder()
707 if (die_find_tailfunc(&pf->cu_die, pf->addr, &pf->sp_die)) { in call_probe_finder()
740 ret = pf->callback(sc_die, pf); in call_probe_finder()
816 cu_walk_functions_at(&pf->cu_die, pf->addr, in find_best_scope()
1248 if (pf->cfi_eh || pf->cfi_dbg) in debuginfo__find_probes()
1290 struct probe_finder *pf = vf->pf; in copy_variables_cb() local
1297 vf->pf->fb_ops, &pf->sp_die, in copy_variables_cb()
[all …]

12345678910>>...23