Lines Matching refs:instr
1518 struct safexcel_instr *instr; in safexcel_instr_nop() local
1520 instr = *instrp; in safexcel_instr_nop()
1521 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT; in safexcel_instr_nop()
1522 instr->length = (1 << 2); in safexcel_instr_nop()
1523 instr->status = 0; in safexcel_instr_nop()
1524 instr->instructions = 0; in safexcel_instr_nop()
1526 *instrp = instr + 1; in safexcel_instr_nop()
1536 struct safexcel_instr *instr; in safexcel_instr_insert_digest() local
1538 instr = *instrp; in safexcel_instr_insert_digest()
1539 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT; in safexcel_instr_insert_digest()
1540 instr->length = len; in safexcel_instr_insert_digest()
1541 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH | in safexcel_instr_insert_digest()
1543 instr->instructions = SAFEXCEL_INSTR_DEST_OUTPUT | in safexcel_instr_insert_digest()
1546 *instrp = instr + 1; in safexcel_instr_insert_digest()
1555 struct safexcel_instr *instr; in safexcel_instr_retrieve_digest() local
1557 instr = *instrp; in safexcel_instr_retrieve_digest()
1558 instr->opcode = SAFEXCEL_INSTR_OPCODE_RETRIEVE; in safexcel_instr_retrieve_digest()
1559 instr->length = len; in safexcel_instr_retrieve_digest()
1560 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH | in safexcel_instr_retrieve_digest()
1562 instr->instructions = SAFEXCEL_INSTR_INSERT_HASH_DIGEST; in safexcel_instr_retrieve_digest()
1563 instr++; in safexcel_instr_retrieve_digest()
1565 instr->opcode = SAFEXCEL_INSTR_OPCODE_VERIFY_FIELDS; in safexcel_instr_retrieve_digest()
1566 instr->length = len | SAFEXCEL_INSTR_VERIFY_HASH; in safexcel_instr_retrieve_digest()
1567 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH | in safexcel_instr_retrieve_digest()
1569 instr->instructions = SAFEXCEL_INSTR_VERIFY_PADDING; in safexcel_instr_retrieve_digest()
1571 *instrp = instr + 1; in safexcel_instr_retrieve_digest()
1577 struct safexcel_instr *instr; in safexcel_instr_temp_aes_block() local
1579 instr = *instrp; in safexcel_instr_temp_aes_block()
1580 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT_REMOVE_RESULT; in safexcel_instr_temp_aes_block()
1581 instr->length = 0; in safexcel_instr_temp_aes_block()
1582 instr->status = 0; in safexcel_instr_temp_aes_block()
1583 instr->instructions = AES_BLOCK_LEN; in safexcel_instr_temp_aes_block()
1584 instr++; in safexcel_instr_temp_aes_block()
1586 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT; in safexcel_instr_temp_aes_block()
1587 instr->length = AES_BLOCK_LEN; in safexcel_instr_temp_aes_block()
1588 instr->status = 0; in safexcel_instr_temp_aes_block()
1589 instr->instructions = SAFEXCEL_INSTR_DEST_OUTPUT | in safexcel_instr_temp_aes_block()
1592 *instrp = instr + 1; in safexcel_instr_temp_aes_block()
1600 struct safexcel_instr *instr, struct safexcel_cmd_descr *cdesc) in safexcel_instr_cipher() argument
1607 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_cipher()
1608 instr->length = crp->crp_payload_length; in safexcel_instr_cipher()
1609 instr->status = SAFEXCEL_INSTR_STATUS_LAST_PACKET | in safexcel_instr_cipher()
1611 instr->instructions = SAFEXCEL_INSTR_INS_LAST | in safexcel_instr_cipher()
1618 safexcel_instr_eta(struct safexcel_request *req, struct safexcel_instr *instr, in safexcel_instr_eta() argument
1625 start = instr; in safexcel_instr_eta()
1628 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_eta()
1629 instr->length = crp->crp_aad_length; in safexcel_instr_eta()
1630 instr->status = crp->crp_payload_length == 0 ? in safexcel_instr_eta()
1632 instr->instructions = SAFEXCEL_INSTR_INS_LAST | in safexcel_instr_eta()
1634 instr++; in safexcel_instr_eta()
1638 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_eta()
1639 instr->length = crp->crp_payload_length; in safexcel_instr_eta()
1640 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH; in safexcel_instr_eta()
1641 instr->instructions = SAFEXCEL_INSTR_INS_LAST | in safexcel_instr_eta()
1645 instr++; in safexcel_instr_eta()
1652 safexcel_instr_insert_digest(&instr, req->sess->digestlen); in safexcel_instr_eta()
1654 safexcel_instr_retrieve_digest(&instr, req->sess->digestlen); in safexcel_instr_eta()
1655 cdesc->additional_cdata_size = instr - start; in safexcel_instr_eta()
1660 struct safexcel_instr *instr) in safexcel_instr_sha_hash() argument
1666 start = instr; in safexcel_instr_sha_hash()
1669 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_sha_hash()
1670 instr->length = crp->crp_payload_length; in safexcel_instr_sha_hash()
1671 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH; in safexcel_instr_sha_hash()
1672 instr->instructions = SAFEXCEL_INSTR_DEST_HASH; in safexcel_instr_sha_hash()
1673 instr++; in safexcel_instr_sha_hash()
1676 safexcel_instr_insert_digest(&instr, req->sess->digestlen); in safexcel_instr_sha_hash()
1679 while (instr != start + SAFEXCEL_MAX_ITOKENS) in safexcel_instr_sha_hash()
1680 safexcel_instr_nop(&instr); in safexcel_instr_sha_hash()
1684 safexcel_instr_ccm(struct safexcel_request *req, struct safexcel_instr *instr, in safexcel_instr_ccm() argument
1695 start = instr; in safexcel_instr_ccm()
1718 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT; in safexcel_instr_ccm()
1719 instr->length = blen + (crp->crp_aad_length > 0 ? 2 : 0); in safexcel_instr_ccm()
1720 instr->status = 0; in safexcel_instr_ccm()
1721 instr->instructions = SAFEXCEL_INSTR_DEST_HASH | in safexcel_instr_ccm()
1723 instr++; in safexcel_instr_ccm()
1725 b0 = (uint8_t *)instr; in safexcel_instr_ccm()
1734 instr += blen / sizeof(*instr); in safexcel_instr_ccm()
1738 alenp = (uint8_t *)instr; in safexcel_instr_ccm()
1743 instr++; in safexcel_instr_ccm()
1745 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_ccm()
1746 instr->length = crp->crp_aad_length; in safexcel_instr_ccm()
1747 instr->status = 0; in safexcel_instr_ccm()
1748 instr->instructions = SAFEXCEL_INSTR_DEST_HASH; in safexcel_instr_ccm()
1749 instr++; in safexcel_instr_ccm()
1753 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT; in safexcel_instr_ccm()
1754 instr->length = aalign == 0 ? 0 : in safexcel_instr_ccm()
1756 instr->status = crp->crp_payload_length == 0 ? in safexcel_instr_ccm()
1758 instr->instructions = SAFEXCEL_INSTR_DEST_HASH; in safexcel_instr_ccm()
1759 instr++; in safexcel_instr_ccm()
1762 safexcel_instr_temp_aes_block(&instr); in safexcel_instr_ccm()
1766 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_ccm()
1767 instr->length = crp->crp_payload_length; in safexcel_instr_ccm()
1768 instr->status = (crp->crp_payload_length & (blen - 1)) == 0 ? in safexcel_instr_ccm()
1770 instr->instructions = SAFEXCEL_INSTR_DEST_OUTPUT | in safexcel_instr_ccm()
1774 instr++; in safexcel_instr_ccm()
1778 instr->opcode = SAFEXCEL_INSTR_OPCODE_INSERT; in safexcel_instr_ccm()
1779 instr->length = blen - in safexcel_instr_ccm()
1781 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH; in safexcel_instr_ccm()
1782 instr->instructions = SAFEXCEL_INSTR_DEST_HASH; in safexcel_instr_ccm()
1783 instr++; in safexcel_instr_ccm()
1791 safexcel_instr_insert_digest(&instr, req->sess->digestlen); in safexcel_instr_ccm()
1793 safexcel_instr_retrieve_digest(&instr, req->sess->digestlen); in safexcel_instr_ccm()
1795 cdesc->additional_cdata_size = instr - start; in safexcel_instr_ccm()
1799 safexcel_instr_gcm(struct safexcel_request *req, struct safexcel_instr *instr, in safexcel_instr_gcm() argument
1809 start = instr; in safexcel_instr_gcm()
1812 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_gcm()
1813 instr->length = crp->crp_aad_length; in safexcel_instr_gcm()
1814 instr->status = crp->crp_payload_length == 0 ? in safexcel_instr_gcm()
1816 instr->instructions = SAFEXCEL_INSTR_INS_LAST | in safexcel_instr_gcm()
1818 instr++; in safexcel_instr_gcm()
1820 safexcel_instr_temp_aes_block(&instr); in safexcel_instr_gcm()
1824 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_gcm()
1825 instr->length = crp->crp_payload_length; in safexcel_instr_gcm()
1826 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH; in safexcel_instr_gcm()
1827 instr->instructions = SAFEXCEL_INSTR_DEST_OUTPUT | in safexcel_instr_gcm()
1830 instr++; in safexcel_instr_gcm()
1837 safexcel_instr_insert_digest(&instr, req->sess->digestlen); in safexcel_instr_gcm()
1839 safexcel_instr_retrieve_digest(&instr, req->sess->digestlen); in safexcel_instr_gcm()
1841 cdesc->additional_cdata_size = instr - start; in safexcel_instr_gcm()
1845 safexcel_instr_gmac(struct safexcel_request *req, struct safexcel_instr *instr, in safexcel_instr_gmac() argument
1855 start = instr; in safexcel_instr_gmac()
1857 instr->opcode = SAFEXCEL_INSTR_OPCODE_DIRECTION; in safexcel_instr_gmac()
1858 instr->length = crp->crp_payload_length; in safexcel_instr_gmac()
1859 instr->status = SAFEXCEL_INSTR_STATUS_LAST_HASH; in safexcel_instr_gmac()
1860 instr->instructions = SAFEXCEL_INSTR_INS_LAST | in safexcel_instr_gmac()
1862 instr++; in safexcel_instr_gmac()
1864 safexcel_instr_temp_aes_block(&instr); in safexcel_instr_gmac()
1866 safexcel_instr_insert_digest(&instr, req->sess->digestlen); in safexcel_instr_gmac()
1868 cdesc->additional_cdata_size = instr - start; in safexcel_instr_gmac()
1879 struct safexcel_instr *instr; in safexcel_set_token() local
1925 instr = (void *)cdesc->control_data.token; in safexcel_set_token()
1927 instr = (void *)(sc->sc_ring[ringidx].dma_atok.vaddr + in safexcel_set_token()
1935 safexcel_instr_gcm(req, instr, cdesc); in safexcel_set_token()
1938 safexcel_instr_ccm(req, instr, cdesc); in safexcel_set_token()
1945 safexcel_instr_cipher(req, instr, cdesc); in safexcel_set_token()
1951 safexcel_instr_eta(req, instr, cdesc); in safexcel_set_token()
1953 safexcel_instr_cipher(req, instr, cdesc); in safexcel_set_token()
1967 safexcel_instr_sha_hash(req, instr); in safexcel_set_token()
1970 safexcel_instr_gmac(req, instr, cdesc); in safexcel_set_token()