/freebsd/contrib/bmake/ |
H A D | FILES | 73 unit-tests/Makefile 74 unit-tests/Makefile.config.in 75 unit-tests/archive-suffix.exp 76 unit-tests/archive-suffix.mk 77 unit-tests/archive.exp 78 unit-tests/archive.mk 79 unit-tests/cmd-errors-jobs.exp 80 unit-tests/cmd-errors-jobs.mk 81 unit-tests/cmd-errors-lint.exp 82 unit-tests/cmd-errors-lint.mk [all …]
|
/freebsd/sys/x86/iommu/ |
H A D | intel_qi.c | 62 dmar_enable_qi(struct dmar_unit *unit) in dmar_enable_qi() argument 66 DMAR_ASSERT_LOCKED(unit); in dmar_enable_qi() 67 unit->hw_gcmd |= DMAR_GCMD_QIE; in dmar_enable_qi() 68 dmar_write4(unit, DMAR_GCMD_REG, unit->hw_gcmd); in dmar_enable_qi() 69 DMAR_WAIT_UNTIL(((dmar_read4(unit, DMAR_GSTS_REG) & DMAR_GSTS_QIES) in dmar_enable_qi() 75 dmar_disable_qi(struct dmar_unit *unit) in dmar_disable_qi() argument 79 DMAR_ASSERT_LOCKED(unit); in dmar_disable_qi() 80 unit->hw_gcmd &= ~DMAR_GCMD_QIE; in dmar_disable_qi() 81 dmar_write4(unit, DMAR_GCMD_REG, unit->hw_gcmd); in dmar_disable_qi() 82 DMAR_WAIT_UNTIL(((dmar_read4(unit, DMAR_GSTS_REG) & DMAR_GSTS_QIES) in dmar_disable_qi() [all …]
|
H A D | amd_event.c | 73 amdiommu_event_rearm_intr(struct amdiommu_unit *unit) in amdiommu_event_rearm_intr() argument 75 amdiommu_write8(unit, AMDIOMMU_CMDEV_STATUS, in amdiommu_event_rearm_intr() 80 amdiommu_event_log_inc_head(struct amdiommu_unit *unit) in amdiommu_event_log_inc_head() argument 82 unit->event_log_head++; in amdiommu_event_log_inc_head() 83 if (unit->event_log_head >= unit->event_log_size) in amdiommu_event_log_inc_head() 84 unit->event_log_head = 0; in amdiommu_event_log_inc_head() 88 amdiommu_event_log_print(struct amdiommu_unit *unit, in amdiommu_event_log_print() argument 92 unit->iommu.unit, evp->code, evp->w0, evp->ww1, evp->w2, evp->w3); in amdiommu_event_log_print() 96 AMDIOMMU_ASSERT_LOCKED(unit); in amdiommu_event_log_print() 105 dte = &unit->dev_tbl[ev_dte_p->devid]; in amdiommu_event_log_print() [all …]
|
H A D | intel_fault.c | 64 * unit->fault_log, and schedules a task. 72 * For the same reason, each translation unit task is executed in its 80 dmar_fault_next(struct dmar_unit *unit, int faultp) in dmar_fault_next() argument 84 if (faultp == unit->fault_log_size) in dmar_fault_next() 90 dmar_fault_intr_clear(struct dmar_unit *unit, uint32_t fsts) in dmar_fault_intr_clear() argument 96 printf("DMAR%d: Invalidation timed out\n", unit->iommu.unit); in dmar_fault_intr_clear() 101 unit->iommu.unit); in dmar_fault_intr_clear() 106 unit->iommu.unit); in dmar_fault_intr_clear() 110 printf("DMAR%d: Advanced pending fault\n", unit->iommu.unit); in dmar_fault_intr_clear() 114 printf("DMAR%d: Advanced fault overflow\n", unit->iommu.unit); in dmar_fault_intr_clear() [all …]
|
H A D | amd_cmd.c | 62 amdiommu_enable_cmdbuf(struct amdiommu_unit *unit) in amdiommu_enable_cmdbuf() argument 64 AMDIOMMU_ASSERT_LOCKED(unit); in amdiommu_enable_cmdbuf() 66 unit->hw_ctrl |= AMDIOMMU_CTRL_CMDBUF_EN; in amdiommu_enable_cmdbuf() 67 amdiommu_write8(unit, AMDIOMMU_CTRL, unit->hw_ctrl); in amdiommu_enable_cmdbuf() 71 amdiommu_disable_cmdbuf(struct amdiommu_unit *unit) in amdiommu_disable_cmdbuf() argument 73 AMDIOMMU_ASSERT_LOCKED(unit); in amdiommu_disable_cmdbuf() 75 unit->hw_ctrl &= ~AMDIOMMU_CTRL_CMDBUF_EN; in amdiommu_disable_cmdbuf() 76 amdiommu_write8(unit, AMDIOMMU_CTRL, unit->hw_ctrl); in amdiommu_disable_cmdbuf() 83 struct amdiommu_unit *unit; in amdiommu_enable_qi_intr() local 85 unit = IOMMU2AMD(iommu); in amdiommu_enable_qi_intr() [all …]
|
H A D | intel_intrmap.c | 64 static void dmar_ir_program_irte(struct dmar_unit *unit, u_int idx, 66 static int dmar_ir_free_irte(struct dmar_unit *unit, u_int cookie); 71 struct dmar_unit *unit; in dmar_alloc_msi_intr() local 76 unit = dmar_ir_find(src, NULL, NULL); in dmar_alloc_msi_intr() 77 if (unit == NULL || !unit->ir_enabled) { in dmar_alloc_msi_intr() 83 error = vmem_alloc(unit->irtids, count, M_FIRSTFIT | M_NOWAIT, in dmar_alloc_msi_intr() 100 struct dmar_unit *unit; in dmar_map_msi_intr() local 105 unit = dmar_ir_find(src, &rid, &is_dmar); in dmar_map_msi_intr() 107 KASSERT(unit == NULL, ("DMAR cannot translate itself")); in dmar_map_msi_intr() 121 if (unit == NULL || !unit->ir_enabled || cookie == -1) in dmar_map_msi_intr() [all …]
|
H A D | intel_drv.c | 265 dmar_release_resources(device_t dev, struct dmar_unit *unit) in dmar_release_resources() argument 269 iommu_fini_busdma(&unit->iommu); in dmar_release_resources() 270 dmar_fini_irt(unit); in dmar_release_resources() 271 dmar_fini_qi(unit); in dmar_release_resources() 272 dmar_fini_fault_log(unit); in dmar_release_resources() 274 iommu_release_intr(DMAR2IOMMU(unit), i); in dmar_release_resources() 275 if (unit->regs != NULL) { in dmar_release_resources() 276 bus_deactivate_resource(dev, SYS_RES_MEMORY, unit->reg_rid, in dmar_release_resources() 277 unit->regs); in dmar_release_resources() 278 bus_release_resource(dev, SYS_RES_MEMORY, unit->reg_rid, in dmar_release_resources() [all …]
|
H A D | intel_utils.c | 111 dmar_pglvl_supported(struct dmar_unit *unit, int pglvl) in dmar_pglvl_supported() argument 118 if ((DMAR_CAP_SAGAW(unit->hw_cap) & sagaw_bits[i].cap) != 0) in dmar_pglvl_supported() 153 dmar_maxaddr2mgaw(struct dmar_unit *unit, iommu_gaddr_t maxaddr, bool allow_less) in dmar_maxaddr2mgaw() argument 159 (DMAR_CAP_SAGAW(unit->hw_cap) & sagaw_bits[i].cap) != 0) in dmar_maxaddr2mgaw() 165 } while ((DMAR_CAP_SAGAW(unit->hw_cap) & sagaw_bits[i].cap) in dmar_maxaddr2mgaw() 203 calc_am(struct dmar_unit *unit, iommu_gaddr_t base, iommu_gaddr_t size, in calc_am() argument 209 for (am = DMAR_CAP_MAMV(unit->hw_cap);; am--) { in calc_am() 224 dmar_flush_transl_to_ram(struct dmar_unit *unit, void *dst, size_t sz) in dmar_flush_transl_to_ram() argument 227 if (DMAR_IS_COHERENT(unit)) in dmar_flush_transl_to_ram() 237 dmar_flush_pte_to_ram(struct dmar_unit *unit, iommu_pte_t *dst) in dmar_flush_pte_to_ram() argument [all …]
|
H A D | amd_intrmap.c | 114 struct amdiommu_unit *unit; in amdiommu_map_msi_intr() local 134 unit = CTX2AMD(ctx); in amdiommu_map_msi_intr() 135 if (!unit->irte_enabled || cookie == -1) in amdiommu_map_msi_intr() 137 if (cookie >= unit->irte_nentries) { in amdiommu_map_msi_intr() 139 unit->iommu.unit, cookie, unit->irte_nentries); in amdiommu_map_msi_intr() 143 if (unit->irte_x2apic) { in amdiommu_map_msi_intr() 179 if (unit->irte_x2apic) in amdiommu_map_msi_intr() 184 AMDIOMMU_LOCK(unit); in amdiommu_map_msi_intr() 185 amdiommu_qi_invalidate_ir_locked(unit, rid); in amdiommu_map_msi_intr() 186 AMDIOMMU_UNLOCK(unit); in amdiommu_map_msi_intr() [all …]
|
H A D | amd_iommu.h | 43 struct amdiommu_unit *unit; /* (c) */ member 65 u_int unit_id; /* Hypertransport Unit ID, deprecated */ 104 #define AMD2IOMMU(unit) (&((unit)->iommu)) argument 105 #define IOMMU2AMD(unit) \ argument 106 __containerof((unit), struct amdiommu_unit, iommu) 108 #define AMDIOMMU_LOCK(unit) mtx_lock(&AMD2IOMMU(unit)->lock) argument 109 #define AMDIOMMU_UNLOCK(unit) mtx_unlock(&AMD2IOMMU(unit)->lock) argument 110 #define AMDIOMMU_ASSERT_LOCKED(unit) mtx_assert(&AMD2IOMMU(unit)->lock, \ argument 113 #define AMDIOMMU_EVENT_LOCK(unit) mtx_lock_spin(&(unit)->event_lock) argument 114 #define AMDIOMMU_EVENT_UNLOCK(unit) mtx_unlock_spin(&(unit)->event_lock) argument [all …]
|
H A D | amd_ctx.c | 74 static void amdiommu_unref_domain_locked(struct amdiommu_unit *unit, 88 struct amdiommu_unit *unit; in amdiommu_domain_unload_entry() local 91 unit = DOM2AMD(domain); in amdiommu_domain_unload_entry() 99 AMDIOMMU_LOCK(unit); in amdiommu_domain_unload_entry() 101 AMDIOMMU_UNLOCK(unit); in amdiommu_domain_unload_entry() 121 struct amdiommu_unit *unit; in amdiommu_domain_unload() local 126 unit = DOM2AMD(domain); in amdiommu_domain_unload() 138 AMDIOMMU_LOCK(unit); in amdiommu_domain_unload() 144 AMDIOMMU_UNLOCK(unit); in amdiommu_domain_unload() 151 struct amdiommu_unit *unit; in amdiommu_domain_destroy() local [all …]
|
/freebsd/sys/netgraph/bluetooth/hci/ |
H A D | ng_hci_main.c | 120 * Create new instance of HCI node (new unit) 126 ng_hci_unit_p unit = NULL; in ng_hci_constructor() local 128 unit = malloc(sizeof(*unit), M_NETGRAPH_HCI, M_WAITOK | M_ZERO); in ng_hci_constructor() 130 unit->node = node; in ng_hci_constructor() 131 unit->debug = NG_HCI_WARN_LEVEL; in ng_hci_constructor() 133 unit->link_policy_mask = 0xffff; /* Enable all supported modes */ in ng_hci_constructor() 134 unit->packet_mask = 0xffff; /* Enable all packet types */ in ng_hci_constructor() 135 unit->role_switch = 1; /* Enable role switch (if device supports it) */ in ng_hci_constructor() 145 NG_HCI_BUFF_CMD_SET(unit->buffer, 1); in ng_hci_constructor() 146 NG_HCI_BUFF_ACL_SET(unit->buffer, 1, 17, 1); in ng_hci_constructor() [all …]
|
H A D | ng_hci_ulpi.c | 67 ng_hci_lp_con_req(ng_hci_unit_p unit, item_p item, hook_p hook) in ng_hci_lp_con_req() argument 71 if ((unit->state & NG_HCI_UNIT_READY) != NG_HCI_UNIT_READY) { in ng_hci_lp_con_req() 73 "%s: %s - unit is not ready, state=%#x\n", in ng_hci_lp_con_req() 74 __func__, NG_NODE_NAME(unit->node), unit->state); in ng_hci_lp_con_req() 84 __func__, NG_NODE_NAME(unit->node), in ng_hci_lp_con_req() 94 return (ng_hci_lp_acl_con_req(unit, item, hook)); in ng_hci_lp_con_req() 96 if (hook != unit->sco ) { in ng_hci_lp_con_req() 99 __func__, NG_NODE_NAME(unit->node), hook); in ng_hci_lp_con_req() 106 return (ng_hci_lp_sco_con_req(unit, item, hook)); in ng_hci_lp_con_req() 109 return (ng_hci_lp_le_con_req(unit, item, hook, link_type)); in ng_hci_lp_con_req() [all …]
|
H A D | ng_hci_misc.c | 63 ng_hci_mtap(ng_hci_unit_p unit, struct mbuf *m0) in ng_hci_mtap() argument 68 if (unit->raw != NULL && NG_HOOK_IS_VALID(unit->raw)) { in ng_hci_mtap() 71 NG_SEND_DATA_ONLY(error, unit->raw, m); in ng_hci_mtap() 76 __func__, NG_NODE_NAME(unit->node), error); in ng_hci_mtap() 87 ng_hci_unit_p unit = NULL; in ng_hci_node_is_up() local 96 unit = (ng_hci_unit_p) NG_NODE_PRIVATE(node); in ng_hci_node_is_up() 97 if ((unit->state & NG_HCI_UNIT_READY) != NG_HCI_UNIT_READY) in ng_hci_node_is_up() 100 if (hook != unit->acl && hook != unit->sco) in ng_hci_node_is_up() 107 if (hook == unit->acl) { in ng_hci_node_is_up() 108 NG_HCI_BUFF_ACL_SIZE(unit->buffer, ep->pkt_size); in ng_hci_node_is_up() [all …]
|
H A D | ng_hci_cmds.c | 90 ng_hci_send_command(ng_hci_unit_p unit) in ng_hci_send_command() argument 96 if (unit->state & NG_HCI_UNIT_COMMAND_PENDING) in ng_hci_send_command() 99 /* Check if unit can accept our command */ in ng_hci_send_command() 100 NG_HCI_BUFF_CMD_GET(unit->buffer, free); in ng_hci_send_command() 105 if (unit->drv == NULL || NG_HOOK_NOT_VALID(unit->drv)) { in ng_hci_send_command() 108 __func__, NG_NODE_NAME(unit->node), NG_HCI_HOOK_DRV); in ng_hci_send_command() 110 NG_BT_MBUFQ_DRAIN(&unit->cmdq); in ng_hci_send_command() 120 m0 = NG_BT_MBUFQ_FIRST(&unit->cmdq); in ng_hci_send_command() 124 ng_hci_mtap(unit, m in ng_hci_send_command() 163 ng_hci_process_command_complete(ng_hci_unit_p unit,struct mbuf * e) ng_hci_process_command_complete() argument 268 ng_hci_process_command_status(ng_hci_unit_p unit,struct mbuf * e) ng_hci_process_command_status() argument 334 complete_command(ng_hci_unit_p unit,int opcode,struct mbuf ** cp) complete_command() argument 394 ng_hci_unit_p unit = NULL; ng_hci_process_command_timeout() local 437 process_link_control_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_link_control_params() argument 492 process_link_policy_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_link_policy_params() argument 561 process_hc_baseband_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_hc_baseband_params() argument 674 process_info_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_info_params() argument 752 process_status_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_status_params() argument 781 process_testing_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_testing_params() argument 815 process_le_params(ng_hci_unit_p unit,u_int16_t ocf,struct mbuf * mcp,struct mbuf * mrp) process_le_params() argument 875 process_le_status(ng_hci_unit_p unit,ng_hci_command_status_ep * ep,struct mbuf * mcp) process_le_status() argument 937 process_link_control_status(ng_hci_unit_p unit,ng_hci_command_status_ep * ep,struct mbuf * mcp) process_link_control_status() argument 996 process_link_policy_status(ng_hci_unit_p unit,ng_hci_command_status_ep * ep,struct mbuf * mcp) process_link_policy_status() argument [all...] |
H A D | ng_hci_evnt.c | 87 ng_hci_process_event(ng_hci_unit_p unit, struct mbuf *event) in ng_hci_process_event() argument 101 __func__, NG_NODE_NAME(unit->node), hdr->event, hdr->length); in ng_hci_process_event() 129 error = le_event(unit, event); in ng_hci_process_event() 133 error = inquiry_result(unit, event); in ng_hci_process_event() 137 error = con_compl(unit, event); in ng_hci_process_event() 141 error = con_req(unit, event); in ng_hci_process_event() 145 error = discon_compl(unit, event); in ng_hci_process_event() 149 error = encryption_change(unit, event); in ng_hci_process_event() 153 error = read_remote_features_compl(unit, event); in ng_hci_process_event() 157 error = qos_setup_compl(unit, even in ng_hci_process_event() 216 ng_hci_send_data(ng_hci_unit_p unit) ng_hci_send_data() argument 252 send_data_packets(ng_hci_unit_p unit,int link_type,int limit) send_data_packets() argument 350 sync_con_queue(ng_hci_unit_p unit,ng_hci_unit_con_p con,int completed) sync_con_queue() argument 377 le_advertizing_report(ng_hci_unit_p unit,struct mbuf * event) le_advertizing_report() argument 469 le_connection_complete(ng_hci_unit_p unit,struct mbuf * event) le_connection_complete() argument 569 le_connection_update(ng_hci_unit_p unit,struct mbuf * event) le_connection_update() argument 579 le_event(ng_hci_unit_p unit,struct mbuf * event) le_event() argument 614 inquiry_result(ng_hci_unit_p unit,struct mbuf * event) inquiry_result() argument 675 con_compl(ng_hci_unit_p unit,struct mbuf * event) con_compl() argument 801 con_req(ng_hci_unit_p unit,struct mbuf * event) con_req() argument 886 discon_compl(ng_hci_unit_p unit,struct mbuf * event) discon_compl() argument 932 encryption_change(ng_hci_unit_p unit,struct mbuf * event) encryption_change() argument 979 read_remote_features_compl(ng_hci_unit_p unit,struct mbuf * event) read_remote_features_compl() argument 1032 qos_setup_compl(ng_hci_unit_p unit,struct mbuf * event) qos_setup_compl() argument 1074 hardware_error(ng_hci_unit_p unit,struct mbuf * event) hardware_error() argument 1087 role_change(ng_hci_unit_p unit,struct mbuf * event) role_change() argument 1124 num_compl_pkts(ng_hci_unit_p unit,struct mbuf * event) num_compl_pkts() argument 1182 mode_change(ng_hci_unit_p unit,struct mbuf * event) mode_change() argument 1223 data_buffer_overflow(ng_hci_unit_p unit,struct mbuf * event) data_buffer_overflow() argument 1237 read_clock_offset_compl(ng_hci_unit_p unit,struct mbuf * event) read_clock_offset_compl() argument 1289 qos_violation(ng_hci_unit_p unit,struct mbuf * event) qos_violation() argument 1330 page_scan_mode_change(ng_hci_unit_p unit,struct mbuf * event) page_scan_mode_change() argument 1365 page_scan_rep_mode_change(ng_hci_unit_p unit,struct mbuf * event) page_scan_rep_mode_change() argument [all...] |
/freebsd/lib/libpmc/pmu-events/arch/x86/sapphirerapids/ |
H A D | uncore-other.json | 10 "Unit": "UPI LL" string 21 "Unit": "UPI LL" string 30 "Unit": "UBOX" string 40 "Unit": "IRP" string 50 "Unit": "M2PCIe" string 61 "Unit": "IIO" string 74 "Unit": "IIO" string 87 "Unit": "IIO" string 100 "Unit": "IIO" string 113 "Unit": "IIO" string [all …]
|
H A D | uncore-memory.json | 11 "Unit": "iMC" string 20 "Unit": "iMC" string 31 "Unit": "iMC" string 42 "Unit": "iMC" string 53 "Unit": "iMC" string 64 "Unit": "iMC" string 75 "Unit": "iMC" string 86 "Unit": "iMC" string 97 "Unit": "iMC" string 108 "Unit": "iMC" string [all …]
|
/freebsd/lib/libpmc/pmu-events/arch/x86/cascadelakex/ |
H A D | uncore-other.json | 7 "Unit": "CHA" string 17 "Unit": "CHA" string 27 "Unit": "CHA" string 37 "Unit": "CHA" string 47 "Unit": "CHA" string 57 "Unit": "CHA" string 67 "Unit": "CHA" string 78 "Unit": "CHA" string 89 "Unit": "CHA" string 100 "Unit": "CHA" string [all …]
|
/freebsd/lib/libpmc/pmu-events/arch/x86/skylakex/ |
H A D | uncore-other.json | 7 "Unit": "CHA" string 17 "Unit": "CHA" string 27 "Unit": "CHA" string 37 "Unit": "CHA" string 47 "Unit": "CHA" string 57 "Unit": "CHA" string 67 "Unit": "CHA" string 78 "Unit": "CHA" string 89 "Unit": "CHA" string 100 "Unit": "CHA" string [all …]
|
/freebsd/lib/libpmc/pmu-events/arch/x86/icelakex/ |
H A D | uncore-other.json | 10 "Unit": "CHA" string 20 "Unit": "CHA" string 30 "Unit": "CHA" string 40 "Unit": "CHA" string 50 "Unit": "CHA" string 60 "Unit": "CHA" string 68 "Unit": "CHA" string 78 "Unit": "CHA" string 88 "Unit": "CHA" string 98 "Unit": "CHA" string [all …]
|
H A D | uncore-memory.json | 10 "Unit": "iMC" string 20 "Unit": "iMC" string 30 "Unit": "iMC" string 40 "Unit": "iMC" string 50 "Unit": "iMC" string 60 "Unit": "iMC" string 70 "Unit": "iMC" string 80 "Unit": "iMC" string 90 "Unit": "iMC" string 100 "Unit": "iMC" string [all …]
|
/freebsd/lib/libpmc/pmu-events/arch/x86/alderlake/ |
H A D | adl-metrics.json | 7 "Unit": "cpu_core" string 14 "Unit": "cpu_core" string 21 "Unit": "cpu_core" string 28 "Unit": "cpu_core" string 35 "Unit": "cpu_core" string 42 "Unit": "cpu_core" string 50 "Unit": "cpu_core" string 57 "Unit": "cpu_core" string 64 "Unit": "cpu_core" string 72 "Unit": "cpu_core" string [all …]
|
/freebsd/lib/libpmc/pmu-events/arch/arm64/hisilicon/hip08/ |
H A D | uncore-hha.json | 7 "Unit": "hisi_sccl,hha" string 14 "Unit": "hisi_sccl,hha" string 21 "Unit": "hisi_sccl,hha" string 28 "Unit": "hisi_sccl,hha" string 33 "Unit": "hisi_sccl,hha" string 38 "Unit": "hisi_sccl,hha" string 43 "Unit": "hisi_sccl,hha" string 50 "Unit": "hisi_sccl,hha" string 57 "Unit": "hisi_sccl,hha" string 64 "Unit": "hisi_sccl,hha" string [all …]
|
/freebsd/lib/libpmc/pmu-events/arch/arm64/freescale/imx8mp/sys/ |
H A D | metrics.json | 7 "Unit": "imx8_ddr", string 15 "Unit": "imx8_ddr", string 23 "Unit": "imx8_ddr", string 31 "Unit": "imx8_ddr", string 39 "Unit": "imx8_ddr", string 47 "Unit": "imx8_ddr", string 55 "Unit": "imx8_ddr", string 63 "Unit": "imx8_ddr", string 71 "Unit": "imx8_ddr", string 79 "Unit": "imx8_ddr", string [all …]
|