Home
last modified time | relevance | path

Searched refs:mdev (Results 1 – 25 of 180) sorted by relevance

12345678

/drivers/infiniband/hw/mthca/
Dmthca_main.c137 static int mthca_tune_pci(struct mthca_dev *mdev) in mthca_tune_pci() argument
143 if (pci_find_capability(mdev->pdev, PCI_CAP_ID_PCIX)) { in mthca_tune_pci()
144 if (pcix_set_mmrbc(mdev->pdev, pcix_get_max_mmrbc(mdev->pdev))) { in mthca_tune_pci()
145 mthca_err(mdev, "Couldn't set PCI-X max read count, " in mthca_tune_pci()
149 } else if (!(mdev->mthca_flags & MTHCA_FLAG_PCIE)) in mthca_tune_pci()
150 mthca_info(mdev, "No PCI-X capability, not setting RBC.\n"); in mthca_tune_pci()
152 if (pci_is_pcie(mdev->pdev)) { in mthca_tune_pci()
153 if (pcie_set_readrq(mdev->pdev, 4096)) { in mthca_tune_pci()
154 mthca_err(mdev, "Couldn't write PCI Express read request, " in mthca_tune_pci()
158 } else if (mdev->mthca_flags & MTHCA_FLAG_PCIE) in mthca_tune_pci()
[all …]
Dmthca_reset.c41 int mthca_reset(struct mthca_dev *mdev) in mthca_reset() argument
69 if (!(mdev->mthca_flags & MTHCA_FLAG_PCIE)) { in mthca_reset()
72 while ((bridge = pci_get_device(mdev->pdev->vendor, in mthca_reset()
73 mdev->pdev->device + 2, in mthca_reset()
76 bridge->subordinate == mdev->pdev->bus) { in mthca_reset()
77 mthca_dbg(mdev, "Found bridge: %s\n", in mthca_reset()
89 mthca_warn(mdev, "No bridge found for %s\n", in mthca_reset()
90 pci_name(mdev->pdev)); in mthca_reset()
99 mthca_err(mdev, "Couldn't allocate memory to save HCA " in mthca_reset()
107 if (pci_read_config_dword(mdev->pdev, i * 4, hca_header + i)) { in mthca_reset()
[all …]
/drivers/sh/maple/
Dmaple.c139 struct maple_device *mdev; in maple_release_device() local
142 mdev = to_maple_dev(dev); in maple_release_device()
143 mq = mdev->mq; in maple_release_device()
146 kfree(mdev); in maple_release_device()
157 int maple_add_packet(struct maple_device *mdev, u32 function, u32 command, in maple_add_packet() argument
172 mdev->mq->command = command; in maple_add_packet()
173 mdev->mq->length = length; in maple_add_packet()
176 mdev->mq->sendbuf = sendbuf; in maple_add_packet()
179 list_add_tail(&mdev->mq->list, &maple_waitq); in maple_add_packet()
186 static struct mapleq *maple_allocq(struct maple_device *mdev) in maple_allocq() argument
[all …]
/drivers/staging/most/aim-v4l2/
Dvideo.c58 struct most_video_dev *mdev; member
65 static inline bool data_ready(struct most_video_dev *mdev) in data_ready() argument
67 return !list_empty(&mdev->pending_mbos); in data_ready()
70 static inline struct mbo *get_top_mbo(struct most_video_dev *mdev) in get_top_mbo() argument
72 return list_first_entry(&mdev->pending_mbos, struct mbo, list); in get_top_mbo()
79 struct most_video_dev *mdev = video_drvdata(filp); in aim_vdev_open() local
82 v4l2_info(&mdev->v4l2_dev, "aim_vdev_open()\n"); in aim_vdev_open()
95 if (!atomic_inc_and_test(&mdev->access_ref)) { in aim_vdev_open()
96 v4l2_err(&mdev->v4l2_dev, "too many clients\n"); in aim_vdev_open()
101 fh->mdev = mdev; in aim_vdev_open()
[all …]
/drivers/misc/mic/host/
Dmic_main.c60 static int mic_dp_init(struct mic_device *mdev) in mic_dp_init() argument
62 mdev->dp = kzalloc(MIC_DP_SIZE, GFP_KERNEL); in mic_dp_init()
63 if (!mdev->dp) in mic_dp_init()
66 mdev->dp_dma_addr = mic_map_single(mdev, in mic_dp_init()
67 mdev->dp, MIC_DP_SIZE); in mic_dp_init()
68 if (mic_map_error(mdev->dp_dma_addr)) { in mic_dp_init()
69 kfree(mdev->dp); in mic_dp_init()
70 dev_err(&mdev->pdev->dev, "%s %d err %d\n", in mic_dp_init()
74 mdev->ops->write_spad(mdev, MIC_DPLO_SPAD, mdev->dp_dma_addr); in mic_dp_init()
75 mdev->ops->write_spad(mdev, MIC_DPHI_SPAD, mdev->dp_dma_addr >> 32); in mic_dp_init()
[all …]
Dmic_intr.c29 struct mic_device *mdev = dev; in mic_thread_fn() local
30 struct mic_intr_info *intr_info = mdev->intr_info; in mic_thread_fn()
31 struct mic_irq_info *irq_info = &mdev->irq_info; in mic_thread_fn()
33 struct pci_dev *pdev = mdev->pdev; in mic_thread_fn()
55 struct mic_device *mdev = dev; in mic_interrupt() local
56 struct mic_intr_info *intr_info = mdev->intr_info; in mic_interrupt()
57 struct mic_irq_info *irq_info = &mdev->irq_info; in mic_interrupt()
59 struct pci_dev *pdev = mdev->pdev; in mic_interrupt()
63 mask = mdev->ops->ack_interrupt(mdev); in mic_interrupt()
83 static u16 mic_map_src_to_offset(struct mic_device *mdev, in mic_map_src_to_offset() argument
[all …]
Dmic_boot.c44 struct mic_device *mdev = vpdev_to_mdev(dev); in _mic_dma_map_page() local
46 return mic_map_single(mdev, va, size); in _mic_dma_map_page()
53 struct mic_device *mdev = vpdev_to_mdev(dev); in _mic_dma_unmap_page() local
55 mic_unmap_single(mdev, dma_addr, size); in _mic_dma_unmap_page()
68 struct mic_device *mdev = vpdev_to_mdev(&vpdev->dev); in __mic_request_irq() local
70 return mic_request_threaded_irq(mdev, func, NULL, name, data, in __mic_request_irq()
77 struct mic_device *mdev = vpdev_to_mdev(&vpdev->dev); in __mic_free_irq() local
79 mic_free_irq(mdev, cookie, data); in __mic_free_irq()
84 struct mic_device *mdev = vpdev_to_mdev(&vpdev->dev); in __mic_ack_interrupt() local
86 mdev->ops->intr_workarounds(mdev); in __mic_ack_interrupt()
[all …]
Dmic_x100.c44 mic_x100_write_spad(struct mic_device *mdev, unsigned int idx, u32 val) in mic_x100_write_spad() argument
46 dev_dbg(&mdev->pdev->dev, "Writing 0x%x to scratch pad index %d\n", in mic_x100_write_spad()
48 mic_mmio_write(&mdev->mmio, val, in mic_x100_write_spad()
63 mic_x100_read_spad(struct mic_device *mdev, unsigned int idx) in mic_x100_read_spad() argument
65 u32 val = mic_mmio_read(&mdev->mmio, in mic_x100_read_spad()
69 dev_dbg(&mdev->pdev->dev, in mic_x100_read_spad()
78 static void mic_x100_enable_interrupts(struct mic_device *mdev) in mic_x100_enable_interrupts() argument
81 struct mic_mw *mw = &mdev->mmio; in mic_x100_enable_interrupts()
93 if (mdev->irq_info.num_vectors > 1) { in mic_x100_enable_interrupts()
105 static void mic_x100_disable_interrupts(struct mic_device *mdev) in mic_x100_disable_interrupts() argument
[all …]
Dmic_smpt.c27 static inline u64 mic_system_page_mask(struct mic_device *mdev) in mic_system_page_mask() argument
29 return (1ULL << mdev->smpt->info.page_shift) - 1ULL; in mic_system_page_mask()
32 static inline u8 mic_sys_addr_to_smpt(struct mic_device *mdev, dma_addr_t pa) in mic_sys_addr_to_smpt() argument
34 return (pa - mdev->smpt->info.base) >> mdev->smpt->info.page_shift; in mic_sys_addr_to_smpt()
37 static inline u64 mic_smpt_to_pa(struct mic_device *mdev, u8 index) in mic_smpt_to_pa() argument
39 return mdev->smpt->info.base + (index * mdev->smpt->info.page_size); in mic_smpt_to_pa()
42 static inline u64 mic_smpt_offset(struct mic_device *mdev, dma_addr_t pa) in mic_smpt_offset() argument
44 return pa & mic_system_page_mask(mdev); in mic_smpt_offset()
47 static inline u64 mic_smpt_align_low(struct mic_device *mdev, dma_addr_t pa) in mic_smpt_align_low() argument
49 return ALIGN(pa - mic_system_page_mask(mdev), in mic_smpt_align_low()
[all …]
Dmic_debugfs.c36 struct mic_device *mdev = s->private; in mic_smpt_show() local
40 mdev->id, "SMPT entry", "SW DMA addr", "RefCount"); in mic_smpt_show()
43 if (mdev->smpt) { in mic_smpt_show()
44 struct mic_smpt_info *smpt_info = mdev->smpt; in mic_smpt_show()
77 struct mic_device *mdev = s->private; in mic_post_code_show() local
78 u32 reg = mdev->ops->get_postcode(mdev); in mic_post_code_show()
104 struct mic_device *mdev = s->private; in mic_msi_irq_info_show() local
109 struct pci_dev *pdev = mdev->pdev; in mic_msi_irq_info_show()
112 for (i = 0; i < mdev->irq_info.num_vectors; i++) { in mic_msi_irq_info_show()
114 entry = mdev->irq_info.msix_entries[i].entry; in mic_msi_irq_info_show()
[all …]
/drivers/net/ethernet/mellanox/mlx4/
Den_main.c96 level, DRV_NAME, dev_name(&priv->mdev->pdev->dev), in en_print()
117 if (mlx4_is_mfunc(priv->mdev->dev) && in mlx4_en_update_loopback_state()
124 if (mlx4_is_mfunc(priv->mdev->dev) || priv->validate_loopback) in mlx4_en_update_loopback_state()
127 mutex_lock(&priv->mdev->state_lock); in mlx4_en_update_loopback_state()
128 if (priv->mdev->dev->caps.flags2 & in mlx4_en_update_loopback_state()
145 mlx4_warn(priv->mdev, "failed to change mcast loopback\n"); in mlx4_en_update_loopback_state()
147 mutex_unlock(&priv->mdev->state_lock); in mlx4_en_update_loopback_state()
150 static int mlx4_en_get_profile(struct mlx4_en_dev *mdev) in mlx4_en_get_profile() argument
152 struct mlx4_en_profile *params = &mdev->profile; in mlx4_en_get_profile()
160 if (params->udp_rss && !(mdev->dev->caps.flags in mlx4_en_get_profile()
[all …]
Den_clock.c43 struct mlx4_en_dev *mdev = in mlx4_en_read_clock() local
45 struct mlx4_dev *dev = mdev->dev; in mlx4_en_read_clock()
61 void mlx4_en_fill_hwtstamps(struct mlx4_en_dev *mdev, in mlx4_en_fill_hwtstamps() argument
68 read_lock_irqsave(&mdev->clock_lock, flags); in mlx4_en_fill_hwtstamps()
69 nsec = timecounter_cyc2time(&mdev->clock, timestamp); in mlx4_en_fill_hwtstamps()
70 read_unlock_irqrestore(&mdev->clock_lock, flags); in mlx4_en_fill_hwtstamps()
82 void mlx4_en_remove_timestamp(struct mlx4_en_dev *mdev) in mlx4_en_remove_timestamp() argument
84 if (mdev->ptp_clock) { in mlx4_en_remove_timestamp()
85 ptp_clock_unregister(mdev->ptp_clock); in mlx4_en_remove_timestamp()
86 mdev->ptp_clock = NULL; in mlx4_en_remove_timestamp()
[all …]
Den_netdev.c72 if (!mlx4_is_slave(priv->mdev->dev)) { in mlx4_en_setup_tc()
194 rc = mlx4_flow_detach(priv->mdev->dev, filter->reg_id); in mlx4_en_filter_work()
199 rc = mlx4_flow_attach(priv->mdev->dev, &rule, &filter->reg_id); in mlx4_en_filter_work()
265 rc = mlx4_flow_detach(priv->mdev->dev, filter->reg_id); in mlx4_en_filter_free()
347 queue_work(priv->mdev->workqueue, &filter->work); in mlx4_en_filter_rfs()
413 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_vlan_rx_add_vid() local
422 mutex_lock(&mdev->state_lock); in mlx4_en_vlan_rx_add_vid()
423 if (mdev->device_up && priv->port_up) { in mlx4_en_vlan_rx_add_vid()
424 err = mlx4_SET_VLAN_FLTR(mdev->dev, priv); in mlx4_en_vlan_rx_add_vid()
430 err = mlx4_register_vlan(mdev->dev, priv->port, vid, &idx); in mlx4_en_vlan_rx_add_vid()
[all …]
/drivers/mtd/maps/
Dvmu-flash.c26 struct maple_device *mdev; member
62 struct maple_device *mdev; in ofs_to_block() local
68 mdev = mpart->mdev; in ofs_to_block()
69 card = maple_get_drvdata(mdev); in ofs_to_block()
93 struct maple_device *mdev; in vmu_blockread() local
96 mdev = mq->dev; in vmu_blockread()
97 card = maple_get_drvdata(mdev); in vmu_blockread()
116 struct maple_device *mdev; in maple_vmu_read_block() local
123 mdev = mpart->mdev; in maple_vmu_read_block()
125 card = maple_get_drvdata(mdev); in maple_vmu_read_block()
[all …]
/drivers/staging/most/hdm-usb/
Dhdm_usb.c85 struct most_dev *mdev; member
195 static void free_anchored_buffers(struct most_dev *mdev, unsigned int channel, in free_anchored_buffers() argument
201 while ((urb = usb_get_from_anchor(&mdev->busy_urbs[channel]))) { in free_anchored_buffers()
260 struct most_dev *mdev = to_mdev(iface); in hdm_poison_channel() local
265 dev_warn(&mdev->usb_device->dev, "Poison: Bad interface.\n"); in hdm_poison_channel()
269 dev_warn(&mdev->usb_device->dev, "Channel ID out of range.\n"); in hdm_poison_channel()
273 lock = mdev->channel_lock + channel; in hdm_poison_channel()
275 mdev->is_channel_healthy[channel] = false; in hdm_poison_channel()
278 cancel_work_sync(&mdev->clear_work[channel].ws); in hdm_poison_channel()
280 mutex_lock(&mdev->io_mutex); in hdm_poison_channel()
[all …]
/drivers/media/
Dmedia-device.c84 static struct media_entity *find_entity(struct media_device *mdev, u32 id) in find_entity() argument
91 media_device_for_each_entity(entity, mdev) { in find_entity()
101 static long media_device_enum_entities(struct media_device *mdev, void *arg) in media_device_enum_entities() argument
106 ent = find_entity(mdev, entd->id); in media_device_enum_entities()
154 static long media_device_enum_links(struct media_device *mdev, void *arg) in media_device_enum_links() argument
159 entity = find_entity(mdev, links->entity); in media_device_enum_links()
202 static long media_device_setup_link(struct media_device *mdev, void *arg) in media_device_setup_link() argument
211 source = find_entity(mdev, linkd->source.entity); in media_device_setup_link()
212 sink = find_entity(mdev, linkd->sink.entity); in media_device_setup_link()
230 static long media_device_get_topology(struct media_device *mdev, void *arg) in media_device_get_topology() argument
[all …]
Dmedia-entity.c127 dev_dbg(gobj->mdev->dev, in dev_dbg_obj()
136 dev_dbg(gobj->mdev->dev, in dev_dbg_obj()
149 dev_dbg(gobj->mdev->dev, in dev_dbg_obj()
162 dev_dbg(gobj->mdev->dev, in dev_dbg_obj()
173 void media_gobj_create(struct media_device *mdev, in media_gobj_create() argument
177 BUG_ON(!mdev); in media_gobj_create()
179 gobj->mdev = mdev; in media_gobj_create()
182 gobj->id = media_gobj_gen_id(type, ++mdev->id); in media_gobj_create()
186 list_add_tail(&gobj->list, &mdev->entities); in media_gobj_create()
189 list_add_tail(&gobj->list, &mdev->pads); in media_gobj_create()
[all …]
/drivers/gpu/drm/mgag200/
Dmgag200_main.c79 static int mga_probe_vram(struct mga_device *mdev, void __iomem *mem) in mga_probe_vram() argument
91 vram_size = mdev->mc.vram_window; in mga_probe_vram()
93 if ((mdev->type == G200_EW3) && (vram_size >= 0x1000000)) { in mga_probe_vram()
124 static int mga_vram_init(struct mga_device *mdev) in mga_vram_init() argument
132 mdev->mc.vram_base = pci_resource_start(mdev->dev->pdev, 0); in mga_vram_init()
133 mdev->mc.vram_window = pci_resource_len(mdev->dev->pdev, 0); in mga_vram_init()
135 aper->ranges[0].base = mdev->mc.vram_base; in mga_vram_init()
136 aper->ranges[0].size = mdev->mc.vram_window; in mga_vram_init()
141 if (!devm_request_mem_region(mdev->dev->dev, mdev->mc.vram_base, mdev->mc.vram_window, in mga_vram_init()
147 mem = pci_iomap(mdev->dev->pdev, 0, 0); in mga_vram_init()
[all …]
/drivers/mailbox/
Dmailbox-sti.c40 #define MBOX_BASE(mdev, inst) ((mdev)->base + ((inst) * 4)) argument
85 struct sti_mbox_device *mdev; member
93 struct sti_mbox_device *mdev = chan_info->mdev; in sti_mbox_channel_is_enabled() local
97 return mdev->enabled[instance] & BIT(channel); in sti_mbox_channel_is_enabled()
126 struct sti_mbox_device *mdev = chan_info->mdev; in sti_mbox_enable_channel() local
130 void __iomem *base = MBOX_BASE(mdev, instance); in sti_mbox_enable_channel()
132 spin_lock_irqsave(&mdev->lock, flags); in sti_mbox_enable_channel()
133 mdev->enabled[instance] |= BIT(channel); in sti_mbox_enable_channel()
135 spin_unlock_irqrestore(&mdev->lock, flags); in sti_mbox_enable_channel()
141 struct sti_mbox_device *mdev = chan_info->mdev; in sti_mbox_disable_channel() local
[all …]
Domap-mailbox.c136 unsigned int mbox_read_reg(struct omap_mbox_device *mdev, size_t ofs) in mbox_read_reg() argument
138 return __raw_readl(mdev->mbox_base + ofs); in mbox_read_reg()
142 void mbox_write_reg(struct omap_mbox_device *mdev, u32 val, size_t ofs) in mbox_write_reg() argument
144 __raw_writel(val, mdev->mbox_base + ofs); in mbox_write_reg()
397 static struct omap_mbox *omap_mbox_device_find(struct omap_mbox_device *mdev, in omap_mbox_device_find() argument
401 struct omap_mbox **mboxes = mdev->mboxes; in omap_mbox_device_find()
421 struct omap_mbox_device *mdev; in omap_mbox_request_channel() local
436 list_for_each_entry(mdev, &omap_mbox_devices, elem) { in omap_mbox_request_channel()
437 mbox = omap_mbox_device_find(mdev, chan_name); in omap_mbox_request_channel()
468 static int omap_mbox_register(struct omap_mbox_device *mdev) in omap_mbox_register() argument
[all …]
/drivers/dma/qcom/
Dhidma_mgmt_sys.c22 struct hidma_mgmt_dev *mdev; member
30 int (*get)(struct hidma_mgmt_dev *mdev);
31 int (*set)(struct hidma_mgmt_dev *mdev, u64 val);
35 static int get_##name(struct hidma_mgmt_dev *mdev) \
37 return mdev->name; \
39 static int set_##name(struct hidma_mgmt_dev *mdev, u64 val) \
44 tmp = mdev->name; \
45 mdev->name = val; \
46 rc = hidma_mgmt_setup(mdev); \
48 mdev->name = tmp; \
[all …]
/drivers/net/ethernet/mellanox/mlx5/core/
Den_common.c39 int mlx5e_create_tir(struct mlx5_core_dev *mdev, in mlx5e_create_tir() argument
44 err = mlx5_core_create_tir(mdev, in, inlen, &tir->tirn); in mlx5e_create_tir()
48 list_add(&tir->list, &mdev->mlx5e_res.td.tirs_list); in mlx5e_create_tir()
53 void mlx5e_destroy_tir(struct mlx5_core_dev *mdev, in mlx5e_destroy_tir() argument
56 mlx5_core_destroy_tir(mdev, tir->tirn); in mlx5e_destroy_tir()
60 static int mlx5e_create_mkey(struct mlx5_core_dev *mdev, u32 pdn, in mlx5e_create_mkey() argument
81 err = mlx5_core_create_mkey(mdev, mkey, in, inlen); in mlx5e_create_mkey()
87 int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev) in mlx5e_create_mdev_resources() argument
89 struct mlx5e_resources *res = &mdev->mlx5e_res; in mlx5e_create_mdev_resources()
92 err = mlx5_alloc_map_uar(mdev, &res->cq_uar, false); in mlx5e_create_mdev_resources()
[all …]
Dwq.c67 int mlx5_wq_cyc_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param, in mlx5_wq_cyc_create() argument
76 err = mlx5_db_alloc_node(mdev, &wq_ctrl->db, param->db_numa_node); in mlx5_wq_cyc_create()
78 mlx5_core_warn(mdev, "mlx5_db_alloc_node() failed, %d\n", err); in mlx5_wq_cyc_create()
82 err = mlx5_buf_alloc_node(mdev, mlx5_wq_cyc_get_byte_size(wq), in mlx5_wq_cyc_create()
85 mlx5_core_warn(mdev, "mlx5_buf_alloc_node() failed, %d\n", err); in mlx5_wq_cyc_create()
92 wq_ctrl->mdev = mdev; in mlx5_wq_cyc_create()
97 mlx5_db_free(mdev, &wq_ctrl->db); in mlx5_wq_cyc_create()
102 int mlx5_cqwq_create(struct mlx5_core_dev *mdev, struct mlx5_wq_param *param, in mlx5_cqwq_create() argument
112 err = mlx5_db_alloc_node(mdev, &wq_ctrl->db, param->db_numa_node); in mlx5_cqwq_create()
114 mlx5_core_warn(mdev, "mlx5_db_alloc_node() failed, %d\n", err); in mlx5_cqwq_create()
[all …]
/drivers/w1/masters/
Dmxc_w1.c101 struct mxc_w1_device *mdev; in mxc_w1_probe() local
107 mdev = devm_kzalloc(&pdev->dev, sizeof(struct mxc_w1_device), in mxc_w1_probe()
109 if (!mdev) in mxc_w1_probe()
112 mdev->clk = devm_clk_get(&pdev->dev, NULL); in mxc_w1_probe()
113 if (IS_ERR(mdev->clk)) in mxc_w1_probe()
114 return PTR_ERR(mdev->clk); in mxc_w1_probe()
116 clkrate = clk_get_rate(mdev->clk); in mxc_w1_probe()
128 mdev->regs = devm_ioremap_resource(&pdev->dev, res); in mxc_w1_probe()
129 if (IS_ERR(mdev->regs)) in mxc_w1_probe()
130 return PTR_ERR(mdev->regs); in mxc_w1_probe()
[all …]
/drivers/remoteproc/
Dste_modem_rproc.c21 dev_dbg(&sproc->mdev->pdev.dev, fmt, ##__VA_ARGS__)
23 dev_err(&sproc->mdev->pdev.dev, fmt, ##__VA_ARGS__)
28 struct ste_modem_device *mdev; member
183 sproc->mdev->ops.kick(sproc->mdev, vqid + SPROC_MAX_NOTIFY_ID); in sproc_kick()
187 static void sproc_kick_callback(struct ste_modem_device *mdev, int vqid) in sproc_kick_callback() argument
189 struct sproc *sproc = mdev->drv_data; in sproc_kick_callback()
216 err = sproc->mdev->ops.kick_subscribe(sproc->mdev, i); in sproc_start()
225 return sproc->mdev->ops.power(sproc->mdev, true); in sproc_start()
235 return sproc->mdev->ops.power(sproc->mdev, false); in sproc_stop()
247 struct ste_modem_device *mdev = in sproc_drv_remove() local
[all …]

12345678