/kernel/linux/linux-6.6/drivers/vfio/platform/ |
H A D | vfio_platform_irq.c | 49 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_mask() 56 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_mask() 59 &vdev->irqs[index].mask, fd); in vfio_platform_set_irq_mask() 61 vfio_virqfd_disable(&vdev->irqs[index].mask); in vfio_platform_set_irq_mask() 66 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask() 72 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask() 109 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_unmask() 116 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_unmask() 119 &vdev->irqs[index].unmask, in vfio_platform_set_irq_unmask() 122 vfio_virqfd_disable(&vdev->irqs[inde in vfio_platform_set_irq_unmask() [all...] |
/kernel/linux/linux-5.10/kernel/irq/ |
H A D | timings.c | 382 static u64 __irq_timings_next_event(struct irqt_stat *irqs, int irq, u64 now) in __irq_timings_next_event() argument 386 if ((now - irqs->last_ts) >= NSEC_PER_SEC) { in __irq_timings_next_event() 387 irqs->count = irqs->last_ts = 0; in __irq_timings_next_event() 396 period_max = irqs->count > (3 * PREDICTION_PERIOD_MAX) ? in __irq_timings_next_event() 397 PREDICTION_PERIOD_MAX : irqs->count / 3; in __irq_timings_next_event() 409 count = irqs->count < IRQ_TIMINGS_SIZE ? in __irq_timings_next_event() 410 irqs->count : IRQ_TIMINGS_SIZE; in __irq_timings_next_event() 412 start = irqs->count < IRQ_TIMINGS_SIZE ? in __irq_timings_next_event() 413 0 : (irqs in __irq_timings_next_event() 446 __irq_timings_store(int irq, struct irqt_stat *irqs, u64 interval) __irq_timings_store() argument 473 irq_timings_store(int irq, struct irqt_stat *irqs, u64 ts) irq_timings_store() argument 539 struct irqt_stat *irqs; irq_timings_next_event() local 777 struct irqt_stat *irqs; irq_timings_test_irqs() local [all...] |
/kernel/linux/linux-6.6/kernel/irq/ |
H A D | timings.c | 382 static u64 __irq_timings_next_event(struct irqt_stat *irqs, int irq, u64 now) in __irq_timings_next_event() argument 386 if ((now - irqs->last_ts) >= NSEC_PER_SEC) { in __irq_timings_next_event() 387 irqs->count = irqs->last_ts = 0; in __irq_timings_next_event() 396 period_max = irqs->count > (3 * PREDICTION_PERIOD_MAX) ? in __irq_timings_next_event() 397 PREDICTION_PERIOD_MAX : irqs->count / 3; in __irq_timings_next_event() 409 count = irqs->count < IRQ_TIMINGS_SIZE ? in __irq_timings_next_event() 410 irqs->count : IRQ_TIMINGS_SIZE; in __irq_timings_next_event() 412 start = irqs->count < IRQ_TIMINGS_SIZE ? in __irq_timings_next_event() 413 0 : (irqs in __irq_timings_next_event() 446 __irq_timings_store(int irq, struct irqt_stat *irqs, u64 interval) __irq_timings_store() argument 473 irq_timings_store(int irq, struct irqt_stat *irqs, u64 ts) irq_timings_store() argument 539 struct irqt_stat *irqs; irq_timings_next_event() local 777 struct irqt_stat *irqs; irq_timings_test_irqs() local [all...] |
/kernel/linux/linux-5.10/drivers/vfio/platform/ |
H A D | vfio_platform_irq.c | 49 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_mask() 56 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_mask() 59 &vdev->irqs[index].mask, fd); in vfio_platform_set_irq_mask() 61 vfio_virqfd_disable(&vdev->irqs[index].mask); in vfio_platform_set_irq_mask() 66 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask() 72 vfio_platform_mask(&vdev->irqs[index]); in vfio_platform_set_irq_mask() 109 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE)) in vfio_platform_set_irq_unmask() 116 return vfio_virqfd_enable((void *) &vdev->irqs[index], in vfio_platform_set_irq_unmask() 119 &vdev->irqs[index].unmask, in vfio_platform_set_irq_unmask() 122 vfio_virqfd_disable(&vdev->irqs[inde in vfio_platform_set_irq_unmask() [all...] |
/kernel/linux/linux-5.10/arch/powerpc/platforms/powernv/ |
H A D | pci-cxl.c | 62 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_release_hwirq_ranges() argument 70 if (!irqs->range[i]) in pnv_cxl_release_hwirq_ranges() 73 i, irqs->offset[i], in pnv_cxl_release_hwirq_ranges() 74 irqs->range[i]); in pnv_cxl_release_hwirq_ranges() 75 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges() 77 irqs->range[i]); in pnv_cxl_release_hwirq_ranges() 82 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_alloc_hwirq_ranges() argument 89 memset(irqs, 0, sizeof(struct cxl_irq_ranges)); in pnv_cxl_alloc_hwirq_ranges() 103 irqs->offset[i] = phb->msi_base + hwirq; in pnv_cxl_alloc_hwirq_ranges() 104 irqs in pnv_cxl_alloc_hwirq_ranges() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/platforms/powernv/ |
H A D | pci-cxl.c | 63 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_release_hwirq_ranges() argument 71 if (!irqs->range[i]) in pnv_cxl_release_hwirq_ranges() 74 i, irqs->offset[i], in pnv_cxl_release_hwirq_ranges() 75 irqs->range[i]); in pnv_cxl_release_hwirq_ranges() 76 hwirq = irqs->offset[i] - phb->msi_base; in pnv_cxl_release_hwirq_ranges() 78 irqs->range[i]); in pnv_cxl_release_hwirq_ranges() 83 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, in pnv_cxl_alloc_hwirq_ranges() argument 90 memset(irqs, 0, sizeof(struct cxl_irq_ranges)); in pnv_cxl_alloc_hwirq_ranges() 104 irqs->offset[i] = phb->msi_base + hwirq; in pnv_cxl_alloc_hwirq_ranges() 105 irqs in pnv_cxl_alloc_hwirq_ranges() [all...] |
/kernel/linux/linux-6.6/drivers/crypto/intel/qat/qat_common/ |
H A D | adf_isr.c | 158 struct adf_irq *irqs = pci_dev_info->msix_entries.irqs; in adf_free_irqs() local 165 if (irqs[i].enabled) { in adf_free_irqs() 173 if (irqs[i].enabled) { in adf_free_irqs() 183 struct adf_irq *irqs = pci_dev_info->msix_entries.irqs; in adf_request_irqs() local 195 name = irqs[i].name; in adf_request_irqs() 218 irqs[i].enabled = true; in adf_request_irqs() 223 name = irqs[i].name; in adf_request_irqs() 240 irqs[ in adf_request_irqs() 251 struct adf_irq *irqs; adf_isr_alloc_msix_vectors_data() local [all...] |
/kernel/linux/linux-5.10/drivers/staging/media/atomisp/pci/ |
H A D | gp_timer_defs.h | 28 #define HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX(irqs, timers) + irq) 29 #define HIVE_GP_TIMER_IRQ_ENABLE_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irqs, timers, irqs) + irq)
|
/kernel/linux/linux-6.6/drivers/staging/media/atomisp/pci/ |
H A D | gp_timer_defs.h | 28 #define HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TRIGGER_VALUE_REG_IDX(irqs, timers) + irq) 29 #define HIVE_GP_TIMER_IRQ_ENABLE_REG_IDX(irq, timers, irqs) (HIVE_GP_TIMER_IRQ_TIMER_SELECT_REG_IDX(irqs, timers, irqs) + irq)
|
/kernel/linux/linux-5.10/drivers/pci/controller/ |
H A D | vmd.c | 100 struct vmd_irq_list *irqs; member 115 struct vmd_irq_list *irqs) in index_from_irqs() 117 return irqs - vmd->irqs; in index_from_irqs() 206 return &vmd->irqs[0]; in vmd_next_irq() 216 return &vmd->irqs[0]; in vmd_next_irq() 221 if (vmd->irqs[i].count < vmd->irqs[best].count) in vmd_next_irq() 223 vmd->irqs[best].count++; in vmd_next_irq() 226 return &vmd->irqs[bes in vmd_next_irq() 114 index_from_irqs(struct vmd_dev *vmd, struct vmd_irq_list *irqs) index_from_irqs() argument 532 struct vmd_irq_list *irqs = data; vmd_irq() local [all...] |
/kernel/linux/linux-5.10/drivers/bus/fsl-mc/ |
H A D | fsl-mc-allocator.c | 448 struct fsl_mc_device_irq **irqs = NULL; in fsl_mc_allocate_irqs() local 452 if (mc_dev->irqs) in fsl_mc_allocate_irqs() 470 "Not able to allocate %u irqs for device\n", irq_count); in fsl_mc_allocate_irqs() 474 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]), in fsl_mc_allocate_irqs() 476 if (!irqs) in fsl_mc_allocate_irqs() 487 irqs[i] = to_fsl_mc_irq(resource); in fsl_mc_allocate_irqs() 490 irqs[i]->mc_dev = mc_dev; in fsl_mc_allocate_irqs() 491 irqs[i]->dev_irq_index = i; in fsl_mc_allocate_irqs() 494 mc_dev->irqs in fsl_mc_allocate_irqs() 515 struct fsl_mc_device_irq **irqs = mc_dev->irqs; fsl_mc_free_irqs() local [all...] |
/kernel/linux/linux-6.6/drivers/bus/fsl-mc/ |
H A D | fsl-mc-allocator.c | 449 struct fsl_mc_device_irq **irqs = NULL; in fsl_mc_allocate_irqs() local 453 if (mc_dev->irqs) in fsl_mc_allocate_irqs() 471 "Not able to allocate %u irqs for device\n", irq_count); in fsl_mc_allocate_irqs() 475 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]), in fsl_mc_allocate_irqs() 477 if (!irqs) in fsl_mc_allocate_irqs() 488 irqs[i] = to_fsl_mc_irq(resource); in fsl_mc_allocate_irqs() 491 irqs[i]->mc_dev = mc_dev; in fsl_mc_allocate_irqs() 492 irqs[i]->dev_irq_index = i; in fsl_mc_allocate_irqs() 495 mc_dev->irqs in fsl_mc_allocate_irqs() 516 struct fsl_mc_device_irq **irqs = mc_dev->irqs; fsl_mc_free_irqs() local [all...] |
/kernel/linux/linux-6.6/drivers/pci/controller/ |
H A D | vmd.c | 132 struct vmd_irq_list *irqs; member 150 struct vmd_irq_list *irqs) in index_from_irqs() 152 return irqs - vmd->irqs; in index_from_irqs() 241 return &vmd->irqs[vmd->first_vec]; in vmd_next_irq() 251 return &vmd->irqs[vmd->first_vec]; in vmd_next_irq() 257 if (vmd->irqs[i].count < vmd->irqs[best].count) in vmd_next_irq() 259 vmd->irqs[best].count++; in vmd_next_irq() 262 return &vmd->irqs[bes in vmd_next_irq() 149 index_from_irqs(struct vmd_dev *vmd, struct vmd_irq_list *irqs) index_from_irqs() argument 678 struct vmd_irq_list *irqs = data; vmd_irq() local [all...] |
/kernel/linux/linux-5.10/drivers/irqchip/ |
H A D | irq-nvic.c | 33 * Each bank handles 32 irqs. Only the 16th (= last) bank handles only 34 * 16 irqs. 76 unsigned int irqs, i, ret, numbanks; in nvic_of_init() local 88 irqs = numbanks * 32; in nvic_of_init() 89 if (irqs > NVIC_MAX_IRQ) in nvic_of_init() 90 irqs = NVIC_MAX_IRQ; in nvic_of_init() 93 irq_domain_add_linear(node, irqs, &nvic_irq_domain_ops, NULL); in nvic_of_init() 130 for (i = 0; i < irqs; i += 4) in nvic_of_init()
|
/kernel/linux/linux-6.6/drivers/irqchip/ |
H A D | irq-nvic.c | 33 * Each bank handles 32 irqs. Only the 16th (= last) bank handles only 34 * 16 irqs. 76 unsigned int irqs, i, ret, numbanks; in nvic_of_init() local 88 irqs = numbanks * 32; in nvic_of_init() 89 if (irqs > NVIC_MAX_IRQ) in nvic_of_init() 90 irqs = NVIC_MAX_IRQ; in nvic_of_init() 93 irq_domain_add_linear(node, irqs, &nvic_irq_domain_ops, NULL); in nvic_of_init() 130 for (i = 0; i < irqs; i += 4) in nvic_of_init()
|
/kernel/linux/linux-6.6/arch/riscv/kvm/ |
H A D | aia_aplic.c | 37 struct aplic_irq *irqs; member 48 irqd = &aplic->irqs[irq]; in aplic_read_sourcecfg() 64 irqd = &aplic->irqs[irq]; in aplic_write_sourcecfg() 84 irqd = &aplic->irqs[irq]; in aplic_read_target() 100 irqd = &aplic->irqs[irq]; in aplic_write_target() 119 irqd = &aplic->irqs[irq]; in aplic_read_pending() 135 irqd = &aplic->irqs[irq]; in aplic_write_pending() 162 irqd = &aplic->irqs[irq]; in aplic_read_enabled() 178 irqd = &aplic->irqs[irq]; in aplic_write_enabled() 196 irqd = &aplic->irqs[ir in aplic_read_input() [all...] |
/kernel/linux/linux-5.10/drivers/pcmcia/ |
H A D | sa1111_generic.c | 142 int i, ret = 0, irqs[NUM_IRQS]; in sa1111_pcmcia_add() local 149 irqs[i] = sa1111_get_irq(dev, i); in sa1111_pcmcia_add() 150 if (irqs[i] <= 0) in sa1111_pcmcia_add() 151 return irqs[i] ? : -ENXIO; in sa1111_pcmcia_add() 167 s->soc.socket.pci_irq = irqs[IDX_IRQ_S1_READY_NINT]; in sa1111_pcmcia_add() 168 s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S1_CD_VALID]; in sa1111_pcmcia_add() 170 s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S1_BVD1_STSCHG]; in sa1111_pcmcia_add() 173 s->soc.socket.pci_irq = irqs[IDX_IRQ_S0_READY_NINT]; in sa1111_pcmcia_add() 174 s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S0_CD_VALID]; in sa1111_pcmcia_add() 176 s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S0_BVD1_STSCH in sa1111_pcmcia_add() [all...] |
/kernel/linux/linux-6.6/drivers/pcmcia/ |
H A D | sa1111_generic.c | 141 int i, ret = 0, irqs[NUM_IRQS]; in sa1111_pcmcia_add() local 148 irqs[i] = sa1111_get_irq(dev, i); in sa1111_pcmcia_add() 149 if (irqs[i] <= 0) in sa1111_pcmcia_add() 150 return irqs[i] ? : -ENXIO; in sa1111_pcmcia_add() 166 s->soc.socket.pci_irq = irqs[IDX_IRQ_S1_READY_NINT]; in sa1111_pcmcia_add() 167 s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S1_CD_VALID]; in sa1111_pcmcia_add() 169 s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S1_BVD1_STSCHG]; in sa1111_pcmcia_add() 172 s->soc.socket.pci_irq = irqs[IDX_IRQ_S0_READY_NINT]; in sa1111_pcmcia_add() 173 s->soc.stat[SOC_STAT_CD].irq = irqs[IDX_IRQ_S0_CD_VALID]; in sa1111_pcmcia_add() 175 s->soc.stat[SOC_STAT_BVD1].irq = irqs[IDX_IRQ_S0_BVD1_STSCH in sa1111_pcmcia_add() [all...] |
/kernel/linux/linux-5.10/arch/powerpc/platforms/ps3/ |
H A D | spu.c | 246 0, &spu->irqs[0]); in setup_interrupts() 252 1, &spu->irqs[1]); in setup_interrupts() 258 2, &spu->irqs[2]); in setup_interrupts() 266 ps3_spe_irq_destroy(spu->irqs[1]); in setup_interrupts() 268 ps3_spe_irq_destroy(spu->irqs[0]); in setup_interrupts() 270 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = 0; in setup_interrupts() 316 ps3_spe_irq_destroy(spu->irqs[2]); in ps3_destroy_spu() 317 ps3_spe_irq_destroy(spu->irqs[ in ps3_destroy_spu() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/platforms/ps3/ |
H A D | spu.c | 246 0, &spu->irqs[0]); in setup_interrupts() 252 1, &spu->irqs[1]); in setup_interrupts() 258 2, &spu->irqs[2]); in setup_interrupts() 266 ps3_spe_irq_destroy(spu->irqs[1]); in setup_interrupts() 268 ps3_spe_irq_destroy(spu->irqs[0]); in setup_interrupts() 270 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = 0; in setup_interrupts() 316 ps3_spe_irq_destroy(spu->irqs[2]); in ps3_destroy_spu() 317 ps3_spe_irq_destroy(spu->irqs[ in ps3_destroy_spu() [all...] |
/kernel/linux/linux-5.10/drivers/pci/pcie/ |
H A D | portdrv_core.c | 96 * @irqs: Array of interrupt vectors to populate 101 static int pcie_port_enable_irq_vec(struct pci_dev *dev, int *irqs, int mask) in pcie_port_enable_irq_vec() argument 143 irqs[PCIE_PORT_SERVICE_PME_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec() 144 irqs[PCIE_PORT_SERVICE_HP_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec() 145 irqs[PCIE_PORT_SERVICE_BWNOTIF_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec() 149 irqs[PCIE_PORT_SERVICE_AER_SHIFT] = pci_irq_vector(dev, aer); in pcie_port_enable_irq_vec() 152 irqs[PCIE_PORT_SERVICE_DPC_SHIFT] = pci_irq_vector(dev, dpc); in pcie_port_enable_irq_vec() 158 * pcie_init_service_irqs - initialize irqs for PCI Express port services 160 * @irqs: Array of irqs t 165 pcie_init_service_irqs(struct pci_dev *dev, int *irqs, int mask) pcie_init_service_irqs() argument 324 int irqs[PCIE_PORT_DEVICE_MAXSERVICES]; pcie_port_device_register() local [all...] |
/kernel/linux/linux-6.6/drivers/pci/pcie/ |
H A D | portdrv.c | 107 * @irqs: Array of interrupt vectors to populate 112 static int pcie_port_enable_irq_vec(struct pci_dev *dev, int *irqs, int mask) in pcie_port_enable_irq_vec() argument 154 irqs[PCIE_PORT_SERVICE_PME_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec() 155 irqs[PCIE_PORT_SERVICE_HP_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec() 156 irqs[PCIE_PORT_SERVICE_BWNOTIF_SHIFT] = pcie_irq; in pcie_port_enable_irq_vec() 160 irqs[PCIE_PORT_SERVICE_AER_SHIFT] = pci_irq_vector(dev, aer); in pcie_port_enable_irq_vec() 163 irqs[PCIE_PORT_SERVICE_DPC_SHIFT] = pci_irq_vector(dev, dpc); in pcie_port_enable_irq_vec() 169 * pcie_init_service_irqs - initialize irqs for PCI Express port services 171 * @irqs: Array of irqs t 176 pcie_init_service_irqs(struct pci_dev *dev, int *irqs, int mask) pcie_init_service_irqs() argument 329 int irqs[PCIE_PORT_DEVICE_MAXSERVICES]; pcie_port_device_register() local [all...] |
/kernel/linux/linux-5.10/drivers/gpio/ |
H A D | gpio-reg.c | 20 const int *irqs; member 102 int irq = r->irqs[offset]; in gpio_reg_to_irq() 120 * @irqs: array of %num ints describing the interrupt mapping for each 133 const char *const *names, struct irq_domain *irqdom, const int *irqs) in gpio_reg_init() 155 if (irqs) in gpio_reg_init() 163 r->irqs = irqs; in gpio_reg_init() 131 gpio_reg_init(struct device *dev, void __iomem *reg, int base, int num, const char *label, u32 direction, u32 def_out, const char *const *names, struct irq_domain *irqdom, const int *irqs) gpio_reg_init() argument
|
/kernel/linux/linux-5.10/arch/powerpc/platforms/cell/ |
H A D | spu_base.c | 394 if (spu->irqs[0]) { in spu_request_irqs() 397 ret = request_irq(spu->irqs[0], spu_irq_class_0, in spu_request_irqs() 402 if (spu->irqs[1]) { in spu_request_irqs() 405 ret = request_irq(spu->irqs[1], spu_irq_class_1, in spu_request_irqs() 410 if (spu->irqs[2]) { in spu_request_irqs() 413 ret = request_irq(spu->irqs[2], spu_irq_class_2, in spu_request_irqs() 421 if (spu->irqs[1]) in spu_request_irqs() 422 free_irq(spu->irqs[1], spu); in spu_request_irqs() 424 if (spu->irqs[0]) in spu_request_irqs() 425 free_irq(spu->irqs[ in spu_request_irqs() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/platforms/cell/ |
H A D | spu_base.c | 387 if (spu->irqs[0]) { in spu_request_irqs() 390 ret = request_irq(spu->irqs[0], spu_irq_class_0, in spu_request_irqs() 395 if (spu->irqs[1]) { in spu_request_irqs() 398 ret = request_irq(spu->irqs[1], spu_irq_class_1, in spu_request_irqs() 403 if (spu->irqs[2]) { in spu_request_irqs() 406 ret = request_irq(spu->irqs[2], spu_irq_class_2, in spu_request_irqs() 414 if (spu->irqs[1]) in spu_request_irqs() 415 free_irq(spu->irqs[1], spu); in spu_request_irqs() 417 if (spu->irqs[0]) in spu_request_irqs() 418 free_irq(spu->irqs[ in spu_request_irqs() [all...] |