Lines Matching refs:qp

123 ccp_queue_write_tail(struct ccp_queue *qp)  in ccp_queue_write_tail()  argument
125 ccp_write_queue_4(qp->cq_softc, qp->cq_qindex, CMD_Q_TAIL_LO_BASE, in ccp_queue_write_tail()
126 ((uint32_t)qp->desc_ring_bus_addr) + (Q_DESC_SIZE * qp->cq_tail)); in ccp_queue_write_tail()
134 ccp_queue_lsb_entry(struct ccp_queue *qp, unsigned lsb_entry) in ccp_queue_lsb_entry() argument
136 return ((qp->private_lsb * LSB_REGION_LENGTH + lsb_entry)); in ccp_queue_lsb_entry()
144 ccp_queue_lsb_address(struct ccp_queue *qp, unsigned lsb_entry) in ccp_queue_lsb_address() argument
146 return (ccp_queue_lsb_entry(qp, lsb_entry) * LSB_ENTRY_SIZE); in ccp_queue_lsb_address()
213 struct ccp_queue *qp; in ccp_hw_attach_queue() local
220 qp = &sc->queues[queue]; in ccp_hw_attach_queue()
232 if (qp->lsb_mask == 0) { in ccp_hw_attach_queue()
255 ringsz, 0, NULL, NULL, &qp->ring_desc_tag); in ccp_hw_attach_queue()
259 error = bus_dmamem_alloc(qp->ring_desc_tag, &desc, in ccp_hw_attach_queue()
260 BUS_DMA_ZERO | BUS_DMA_WAITOK, &qp->ring_desc_map); in ccp_hw_attach_queue()
264 error = bus_dmamap_load(qp->ring_desc_tag, qp->ring_desc_map, desc, in ccp_hw_attach_queue()
265 ringsz, ccp_dmamap_cb, &qp->desc_ring_bus_addr, BUS_DMA_WAITOK); in ccp_hw_attach_queue()
269 qp->desc_ring = desc; in ccp_hw_attach_queue()
270 qp->completions_ring = malloc(num_descriptors * in ccp_hw_attach_queue()
271 sizeof(*qp->completions_ring), M_CCP, M_ZERO | M_WAITOK); in ccp_hw_attach_queue()
274 qp->qcontrol = 0; in ccp_hw_attach_queue()
275 ccp_write_queue_4(sc, queue, CMD_Q_CONTROL_BASE, qp->qcontrol); in ccp_hw_attach_queue()
282 qp->qcontrol |= (sc->ring_size_order - 1) << CMD_Q_SIZE_SHIFT; in ccp_hw_attach_queue()
285 (uint32_t)qp->desc_ring_bus_addr); in ccp_hw_attach_queue()
287 (uint32_t)qp->desc_ring_bus_addr); in ccp_hw_attach_queue()
297 qp->qcontrol |= (qp->desc_ring_bus_addr >> 32) << CMD_Q_PTR_HI_SHIFT; in ccp_hw_attach_queue()
298 qp->qcontrol |= CMD_Q_RUN; in ccp_hw_attach_queue()
299 ccp_write_queue_4(sc, queue, CMD_Q_CONTROL_BASE, qp->qcontrol); in ccp_hw_attach_queue()
303 if (qp->desc_ring != NULL) in ccp_hw_attach_queue()
304 bus_dmamap_unload(qp->ring_desc_tag, in ccp_hw_attach_queue()
305 qp->ring_desc_map); in ccp_hw_attach_queue()
307 bus_dmamem_free(qp->ring_desc_tag, desc, in ccp_hw_attach_queue()
308 qp->ring_desc_map); in ccp_hw_attach_queue()
309 if (qp->ring_desc_tag != NULL) in ccp_hw_attach_queue()
310 bus_dma_tag_destroy(qp->ring_desc_tag); in ccp_hw_attach_queue()
319 struct ccp_queue *qp; in ccp_hw_detach_queue() local
322 qp = &sc->queues[queue]; in ccp_hw_detach_queue()
331 free(qp->completions_ring, M_CCP); in ccp_hw_detach_queue()
332 bus_dmamap_unload(qp->ring_desc_tag, qp->ring_desc_map); in ccp_hw_detach_queue()
333 bus_dmamem_free(qp->ring_desc_tag, qp->desc_ring, qp->ring_desc_map); in ccp_hw_detach_queue()
334 bus_dma_tag_destroy(qp->ring_desc_tag); in ccp_hw_detach_queue()
455 ccp_intr_handle_error(struct ccp_queue *qp, const struct ccp_desc *desc) in ccp_intr_handle_error() argument
464 sc = qp->cq_softc; in ccp_intr_handle_error()
465 q = qp->cq_qindex; in ccp_intr_handle_error()
490 idx = desc - qp->desc_ring; in ccp_intr_handle_error()
501 memset(&qp->desc_ring[idx], 0, sizeof(qp->desc_ring[idx])); in ccp_intr_handle_error()
503 cctx = &qp->completions_ring[idx]; in ccp_intr_handle_error()
521 cctx->callback_fn(qp, cctx->session, cctx->callback_arg, errno); in ccp_intr_handle_error()
527 qp->cq_head = idx; in ccp_intr_handle_error()
528 qp->cq_waiting = false; in ccp_intr_handle_error()
529 wakeup(&qp->cq_tail); in ccp_intr_handle_error()
530 DPRINTF(sc->dev, "%s: wrote sw head:%u\n", __func__, qp->cq_head); in ccp_intr_handle_error()
532 (uint32_t)qp->desc_ring_bus_addr + (idx * Q_DESC_SIZE)); in ccp_intr_handle_error()
533 ccp_write_queue_4(sc, q, CMD_Q_CONTROL_BASE, qp->qcontrol); in ccp_intr_handle_error()
538 ccp_intr_run_completions(struct ccp_queue *qp, uint32_t ints) in ccp_intr_run_completions() argument
546 sc = qp->cq_softc; in ccp_intr_run_completions()
547 q = qp->cq_qindex; in ccp_intr_run_completions()
549 mtx_lock(&qp->cq_lock); in ccp_intr_run_completions()
557 idx = (headlo - (uint32_t)qp->desc_ring_bus_addr) / Q_DESC_SIZE; in ccp_intr_run_completions()
560 qp->cq_head); in ccp_intr_run_completions()
562 while (qp->cq_head != idx) { in ccp_intr_run_completions()
563 DPRINTF(sc->dev, "%s: completing:%u\n", __func__, qp->cq_head); in ccp_intr_run_completions()
565 cctx = &qp->completions_ring[qp->cq_head]; in ccp_intr_run_completions()
567 cctx->callback_fn(qp, cctx->session, in ccp_intr_run_completions()
573 memset(&qp->desc_ring[qp->cq_head], 0, in ccp_intr_run_completions()
574 sizeof(qp->desc_ring[qp->cq_head])); in ccp_intr_run_completions()
576 qp->cq_head = (qp->cq_head + 1) % (1 << sc->ring_size_order); in ccp_intr_run_completions()
580 qp->cq_waiting = false; in ccp_intr_run_completions()
581 wakeup(&qp->cq_tail); in ccp_intr_run_completions()
584 DPRINTF(sc->dev, "%s: wrote sw head:%u\n", __func__, qp->cq_head); in ccp_intr_run_completions()
591 desc = &qp->desc_ring[idx]; in ccp_intr_run_completions()
593 ccp_intr_handle_error(qp, desc); in ccp_intr_run_completions()
595 mtx_unlock(&qp->cq_lock); in ccp_intr_run_completions()
845 ccp_passthrough(struct ccp_queue *qp, bus_addr_t dst, in ccp_passthrough() argument
853 if (ccp_queue_get_ring_space(qp) == 0) in ccp_passthrough()
856 desc = &qp->desc_ring[qp->cq_tail]; in ccp_passthrough()
875 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_KEY); in ccp_passthrough()
878 memcpy(&qp->completions_ring[qp->cq_tail], cctx, sizeof(*cctx)); in ccp_passthrough()
880 qp->cq_tail = (qp->cq_tail + 1) % (1 << qp->cq_softc->ring_size_order); in ccp_passthrough()
885 ccp_passthrough_sgl(struct ccp_queue *qp, bus_addr_t lsb_addr, bool tolsb, in ccp_passthrough_sgl() argument
900 error = ccp_passthrough(qp, lsb_addr, CCP_MEMTYPE_SB, in ccp_passthrough_sgl()
906 error = ccp_passthrough(qp, seg->ss_paddr, in ccp_passthrough_sgl()
1038 ccp_sha_single_desc(struct ccp_queue *qp, const struct SHA_Defn *defn, in ccp_sha_single_desc() argument
1043 if (ccp_queue_get_ring_space(qp) == 0) in ccp_sha_single_desc()
1046 desc = &qp->desc_ring[qp->cq_tail]; in ccp_sha_single_desc()
1065 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_SHA); in ccp_sha_single_desc()
1067 qp->cq_tail = (qp->cq_tail + 1) % (1 << qp->cq_softc->ring_size_order); in ccp_sha_single_desc()
1072 ccp_sha(struct ccp_queue *qp, enum sha_version version, struct sglist *sgl_src, in ccp_sha() argument
1092 error = ccp_passthrough(qp, ccp_queue_lsb_address(qp, LSB_ENTRY_SHA), in ccp_sha()
1105 error = ccp_sha_single_desc(qp, defn, seg->ss_paddr, in ccp_sha()
1114 lsbaddr = ccp_queue_lsb_address(qp, LSB_ENTRY_SHA); in ccp_sha()
1120 error = ccp_passthrough(qp, seg->ss_paddr, CCP_MEMTYPE_SYSTEM, in ccp_sha()
1202 ccp_do_hmac_done(struct ccp_queue *qp, struct ccp_session *s, in ccp_do_hmac_done() argument
1247 ccp_hmac_done(struct ccp_queue *qp, struct ccp_session *s, void *vcrp, in ccp_hmac_done() argument
1253 ccp_do_hmac_done(qp, s, crp, error); in ccp_hmac_done()
1257 ccp_do_hmac(struct ccp_queue *qp, struct ccp_session *s, struct cryptop *crp, in ccp_do_hmac() argument
1264 dev = qp->cq_softc->dev; in ccp_do_hmac()
1272 sglist_reset(qp->cq_sg_ulptx); in ccp_do_hmac()
1273 error = sglist_append(qp->cq_sg_ulptx, s->hmac.ipad, axf->blocksize); in ccp_do_hmac()
1277 error = sglist_append_sglist(qp->cq_sg_ulptx, qp->cq_sg_crp, in ccp_do_hmac()
1282 error = sglist_append_sglist(qp->cq_sg_ulptx, qp->cq_sg_crp, in ccp_do_hmac()
1289 sglist_reset(qp->cq_sg_dst); in ccp_do_hmac()
1290 error = sglist_append(qp->cq_sg_dst, s->hmac.res, in ccp_do_hmac()
1295 error = ccp_sha(qp, s->hmac.auth_mode, qp->cq_sg_ulptx, qp->cq_sg_dst, in ccp_do_hmac()
1305 ccp_hmac(struct ccp_queue *qp, struct ccp_session *s, struct cryptop *crp) in ccp_hmac() argument
1313 return (ccp_do_hmac(qp, s, crp, &ctx)); in ccp_hmac()
1331 ccp_blkcipher_done(struct ccp_queue *qp, struct ccp_session *s, void *vcrp, in ccp_blkcipher_done() argument
1345 DPRINTF(qp->cq_softc->dev, "%s: qp=%p crp=%p\n", __func__, qp, crp); in ccp_blkcipher_done()
1379 ccp_do_pst_to_lsb(struct ccp_queue *qp, uint32_t lsbaddr, const void *src, in ccp_do_pst_to_lsb() argument
1384 sglist_reset(qp->cq_sg_ulptx); in ccp_do_pst_to_lsb()
1385 error = sglist_append(qp->cq_sg_ulptx, __DECONST(void *, src), len); in ccp_do_pst_to_lsb()
1389 error = ccp_passthrough_sgl(qp, lsbaddr, true, qp->cq_sg_ulptx, len, in ccp_do_pst_to_lsb()
1395 ccp_do_xts(struct ccp_queue *qp, struct ccp_session *s, struct cryptop *crp, in ccp_do_xts() argument
1405 dev = qp->cq_softc->dev; in ccp_do_xts()
1416 for (i = 0; i < qp->cq_sg_ulptx->sg_nseg; i++) { in ccp_do_xts()
1419 seg = &qp->cq_sg_ulptx->sg_segs[i]; in ccp_do_xts()
1421 desc = &qp->desc_ring[qp->cq_tail]; in ccp_do_xts()
1424 desc->eom = (i == qp->cq_sg_ulptx->sg_nseg - 1); in ccp_do_xts()
1427 __func__, qp->cq_tail, (int)desc->som, (int)desc->eom, in ccp_do_xts()
1431 memcpy(&qp->completions_ring[qp->cq_tail], cctx, in ccp_do_xts()
1439 qp->cq_tail, (unsigned)desc->aes_xts.type, in ccp_do_xts()
1452 desc->key_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_KEY); in ccp_do_xts()
1456 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_IV); in ccp_do_xts()
1458 qp->cq_tail = (qp->cq_tail + 1) % in ccp_do_xts()
1459 (1 << qp->cq_softc->ring_size_order); in ccp_do_xts()
1465 ccp_do_blkcipher(struct ccp_queue *qp, struct ccp_session *s, in ccp_do_blkcipher() argument
1477 dev = qp->cq_softc->dev; in ccp_do_blkcipher()
1494 for (i = 0; i < qp->cq_sg_crp->sg_nseg; i++) in ccp_do_blkcipher()
1495 if ((qp->cq_sg_crp->sg_segs[i].ss_len % AES_BLOCK_LEN) != 0) { in ccp_do_blkcipher()
1497 qp->cq_sg_crp->sg_segs[i].ss_len); in ccp_do_blkcipher()
1514 error = ccp_do_pst_to_lsb(qp, ccp_queue_lsb_address(qp, LSB_ENTRY_IV), in ccp_do_blkcipher()
1564 error = ccp_do_pst_to_lsb(qp, in ccp_do_blkcipher()
1565 ccp_queue_lsb_address(qp, LSB_ENTRY_KEY + 1), keydata, in ccp_do_blkcipher()
1569 error = ccp_do_pst_to_lsb(qp, in ccp_do_blkcipher()
1570 ccp_queue_lsb_address(qp, LSB_ENTRY_KEY), in ccp_do_blkcipher()
1577 error = ccp_do_pst_to_lsb(qp, in ccp_do_blkcipher()
1578 ccp_queue_lsb_address(qp, LSB_ENTRY_KEY) + in ccp_do_blkcipher()
1582 error = ccp_do_pst_to_lsb(qp, in ccp_do_blkcipher()
1583 ccp_queue_lsb_address(qp, LSB_ENTRY_KEY + 1) + in ccp_do_blkcipher()
1587 error = ccp_do_pst_to_lsb(qp, in ccp_do_blkcipher()
1588 ccp_queue_lsb_address(qp, LSB_ENTRY_KEY), keydata, in ccp_do_blkcipher()
1597 sglist_reset(qp->cq_sg_ulptx); in ccp_do_blkcipher()
1598 error = sglist_append_sglist(qp->cq_sg_ulptx, qp->cq_sg_crp, in ccp_do_blkcipher()
1604 (void *)PHYS_TO_DMAP(qp->cq_sg_ulptx->sg_segs[0].ss_paddr), " "); in ccp_do_blkcipher()
1606 DPRINTF(dev, "%s: starting AES ops @ %u\n", __func__, qp->cq_tail); in ccp_do_blkcipher()
1608 if (ccp_queue_get_ring_space(qp) < qp->cq_sg_ulptx->sg_nseg) in ccp_do_blkcipher()
1612 return (ccp_do_xts(qp, s, crp, dir, cctx)); in ccp_do_blkcipher()
1614 for (i = 0; i < qp->cq_sg_ulptx->sg_nseg; i++) { in ccp_do_blkcipher()
1617 seg = &qp->cq_sg_ulptx->sg_segs[i]; in ccp_do_blkcipher()
1619 desc = &qp->desc_ring[qp->cq_tail]; in ccp_do_blkcipher()
1622 desc->eom = (i == qp->cq_sg_ulptx->sg_nseg - 1); in ccp_do_blkcipher()
1625 __func__, qp->cq_tail, (int)desc->som, (int)desc->eom, in ccp_do_blkcipher()
1629 memcpy(&qp->completions_ring[qp->cq_tail], cctx, in ccp_do_blkcipher()
1643 qp->cq_tail, (unsigned)desc->aes.mode, in ccp_do_blkcipher()
1656 desc->key_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_KEY); in ccp_do_blkcipher()
1660 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_IV); in ccp_do_blkcipher()
1662 qp->cq_tail = (qp->cq_tail + 1) % in ccp_do_blkcipher()
1663 (1 << qp->cq_softc->ring_size_order); in ccp_do_blkcipher()
1669 ccp_blkcipher(struct ccp_queue *qp, struct ccp_session *s, struct cryptop *crp) in ccp_blkcipher() argument
1677 return (ccp_do_blkcipher(qp, s, crp, &ctx)); in ccp_blkcipher()
1681 ccp_authenc_done(struct ccp_queue *qp, struct ccp_session *s, void *vcrp, in ccp_authenc_done() argument
1690 ccp_do_hmac_done(qp, s, crp, error); in ccp_authenc_done()
1694 ccp_authenc(struct ccp_queue *qp, struct ccp_session *s, struct cryptop *crp) in ccp_authenc() argument
1705 error = ccp_do_blkcipher(qp, s, crp, NULL); in ccp_authenc()
1707 error = ccp_do_hmac(qp, s, crp, NULL); in ccp_authenc()
1713 error = ccp_do_hmac(qp, s, crp, &ctx); in ccp_authenc()
1715 error = ccp_do_blkcipher(qp, s, crp, &ctx); in ccp_authenc()
1720 ccp_do_ghash_aad(struct ccp_queue *qp, struct ccp_session *s) in ccp_do_ghash_aad() argument
1726 if (ccp_queue_get_ring_space(qp) < qp->cq_sg_ulptx->sg_nseg) in ccp_do_ghash_aad()
1729 for (i = 0; i < qp->cq_sg_ulptx->sg_nseg; i++) { in ccp_do_ghash_aad()
1730 seg = &qp->cq_sg_ulptx->sg_segs[i]; in ccp_do_ghash_aad()
1732 desc = &qp->desc_ring[qp->cq_tail]; in ccp_do_ghash_aad()
1746 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_IV); in ccp_do_ghash_aad()
1748 desc->key_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_KEY); in ccp_do_ghash_aad()
1751 qp->cq_tail = (qp->cq_tail + 1) % in ccp_do_ghash_aad()
1752 (1 << qp->cq_softc->ring_size_order); in ccp_do_ghash_aad()
1758 ccp_do_gctr(struct ccp_queue *qp, struct ccp_session *s, in ccp_do_gctr() argument
1763 if (ccp_queue_get_ring_space(qp) == 0) in ccp_do_gctr()
1766 desc = &qp->desc_ring[qp->cq_tail]; in ccp_do_gctr()
1784 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_IV); in ccp_do_gctr()
1786 desc->key_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_KEY); in ccp_do_gctr()
1789 qp->cq_tail = (qp->cq_tail + 1) % in ccp_do_gctr()
1790 (1 << qp->cq_softc->ring_size_order); in ccp_do_gctr()
1795 ccp_do_ghash_final(struct ccp_queue *qp, struct ccp_session *s) in ccp_do_ghash_final() argument
1799 if (ccp_queue_get_ring_space(qp) == 0) in ccp_do_ghash_final()
1802 desc = &qp->desc_ring[qp->cq_tail]; in ccp_do_ghash_final()
1811 desc->src_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_GHASH_IN); in ccp_do_ghash_final()
1814 desc->lsb_ctx_id = ccp_queue_lsb_entry(qp, LSB_ENTRY_IV); in ccp_do_ghash_final()
1816 desc->key_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_KEY); in ccp_do_ghash_final()
1819 desc->dst_lo = ccp_queue_lsb_address(qp, LSB_ENTRY_GHASH); in ccp_do_ghash_final()
1822 qp->cq_tail = (qp->cq_tail + 1) % in ccp_do_ghash_final()
1823 (1 << qp->cq_softc->ring_size_order); in ccp_do_ghash_final()
1828 ccp_gcm_done(struct ccp_queue *qp, struct ccp_session *s, void *vcrp, in ccp_gcm_done() argument
1861 ccp_gcm(struct ccp_queue *qp, struct ccp_session *s, struct cryptop *crp) in ccp_gcm() argument
1873 dev = qp->cq_softc->dev; in ccp_gcm()
1895 error = ccp_do_pst_to_lsb(qp, ccp_queue_lsb_address(qp, LSB_ENTRY_IV), in ccp_gcm()
1899 error = ccp_do_pst_to_lsb(qp, ccp_queue_lsb_address(qp, LSB_ENTRY_KEY), in ccp_gcm()
1903 error = ccp_do_pst_to_lsb(qp, in ccp_gcm()
1904 ccp_queue_lsb_address(qp, LSB_ENTRY_GHASH_IN), s->gmac.final_block, in ccp_gcm()
1911 sglist_reset(qp->cq_sg_ulptx); in ccp_gcm()
1912 error = sglist_append_sglist(qp->cq_sg_ulptx, qp->cq_sg_crp, in ccp_gcm()
1918 for (i = 0; i < qp->cq_sg_ulptx->sg_nseg; i++) in ccp_gcm()
1919 if ((qp->cq_sg_ulptx->sg_segs[i].ss_len % in ccp_gcm()
1923 qp->cq_sg_ulptx->sg_segs[i].ss_len); in ccp_gcm()
1927 error = ccp_do_ghash_aad(qp, s); in ccp_gcm()
1933 sglist_reset(qp->cq_sg_ulptx); in ccp_gcm()
1934 error = sglist_append_sglist(qp->cq_sg_ulptx, qp->cq_sg_crp, in ccp_gcm()
1949 for (i = 0; i < qp->cq_sg_ulptx->sg_nseg; i++) in ccp_gcm()
1950 if ((qp->cq_sg_ulptx->sg_segs[i].ss_len % AES_BLOCK_LEN) != 0) { in ccp_gcm()
1952 qp->cq_sg_ulptx->sg_segs[i].ss_len); in ccp_gcm()
1956 for (i = 0; i < qp->cq_sg_ulptx->sg_nseg; i++) { in ccp_gcm()
1959 seg = &qp->cq_sg_ulptx->sg_segs[i]; in ccp_gcm()
1960 error = ccp_do_gctr(qp, s, dir, seg, in ccp_gcm()
1962 i == (qp->cq_sg_ulptx->sg_nseg - 1)); in ccp_gcm()
1968 error = ccp_do_pst_to_lsb(qp, ccp_queue_lsb_address(qp, LSB_ENTRY_IV), in ccp_gcm()
1978 error = ccp_do_ghash_final(qp, s); in ccp_gcm()
1983 sglist_reset(qp->cq_sg_ulptx); in ccp_gcm()
1985 error = sglist_append_sglist(qp->cq_sg_ulptx, qp->cq_sg_crp, in ccp_gcm()
1992 error = sglist_append(qp->cq_sg_ulptx, s->gmac.final_block, in ccp_gcm()
1996 error = ccp_passthrough_sgl(qp, in ccp_gcm()
1997 ccp_queue_lsb_address(qp, LSB_ENTRY_GHASH), false, qp->cq_sg_ulptx, in ccp_gcm()
2051 db_ccp_show_queue_hw(struct ccp_queue *qp) in db_ccp_show_queue_hw() argument
2058 sc = qp->cq_softc; in db_ccp_show_queue_hw()
2059 q = qp->cq_qindex; in db_ccp_show_queue_hw()
2100 i = (headlo - (uint32_t)qp->desc_ring_bus_addr) / Q_DESC_SIZE; in db_ccp_show_queue_hw()
2102 (void *)&qp->desc_ring[i], " "); in db_ccp_show_queue_hw()