10adc033fSArek Kusztal /* SPDX-License-Identifier: BSD-3-Clause 20adc033fSArek Kusztal * Copyright(c) 2019 Intel Corporation 30adc033fSArek Kusztal */ 40adc033fSArek Kusztal 50adc033fSArek Kusztal /** 60adc033fSArek Kusztal * @file icp_qat_fw_pke.h 70adc033fSArek Kusztal * @defgroup icp_qat_fw_pke ICP QAT FW PKE Processing Definitions 80adc033fSArek Kusztal * @ingroup icp_qat_fw 90adc033fSArek Kusztal * Revision: 0.1 100adc033fSArek Kusztal * @brief 110adc033fSArek Kusztal * This file documents the external interfaces that the QAT FW running 120adc033fSArek Kusztal * on the QAT Acceleration Engine provides to clients wanting to 13*8bd5f07cSJohn McNamara * accelerate crypto asymmetric applications 140adc033fSArek Kusztal */ 150adc033fSArek Kusztal 160adc033fSArek Kusztal #ifndef _ICP_QAT_FW_PKE_H_ 170adc033fSArek Kusztal #define _ICP_QAT_FW_PKE_H_ 180adc033fSArek Kusztal 190adc033fSArek Kusztal /* 200adc033fSArek Kusztal * Keep all dpdk-specific changes in this section 210adc033fSArek Kusztal */ 220adc033fSArek Kusztal 230adc033fSArek Kusztal #include <stdint.h> 240adc033fSArek Kusztal 250adc033fSArek Kusztal typedef uint8_t u8; 260adc033fSArek Kusztal typedef uint16_t u16; 270adc033fSArek Kusztal typedef uint32_t u32; 280adc033fSArek Kusztal typedef uint64_t u64; 290adc033fSArek Kusztal 300adc033fSArek Kusztal /* End of DPDK-specific section 310adc033fSArek Kusztal * Don't modify below this. 320adc033fSArek Kusztal */ 330adc033fSArek Kusztal 340adc033fSArek Kusztal /* 350adc033fSArek Kusztal **************************************************************************** 360adc033fSArek Kusztal * Include local header files 370adc033fSArek Kusztal **************************************************************************** 380adc033fSArek Kusztal */ 390adc033fSArek Kusztal #include "icp_qat_fw.h" 400adc033fSArek Kusztal 410adc033fSArek Kusztal /** 420adc033fSArek Kusztal ***************************************************************************** 430adc033fSArek Kusztal * 440adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 450adc033fSArek Kusztal * 460adc033fSArek Kusztal * @brief 470adc033fSArek Kusztal * PKE response status field structure contained 480adc033fSArek Kusztal * within LW1, comprising the common error codes and 490adc033fSArek Kusztal * the response flags. 500adc033fSArek Kusztal * 510adc033fSArek Kusztal *****************************************************************************/ 520adc033fSArek Kusztal struct icp_qat_fw_pke_resp_status { 530adc033fSArek Kusztal u8 comn_err_code; 540adc033fSArek Kusztal /**< 8 bit common error code */ 550adc033fSArek Kusztal 560adc033fSArek Kusztal u8 pke_resp_flags; 570adc033fSArek Kusztal /**< 8-bit PKE response flags */ 580adc033fSArek Kusztal }; 590adc033fSArek Kusztal 600adc033fSArek Kusztal /** 610adc033fSArek Kusztal ***************************************************************************** 620adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 630adc033fSArek Kusztal * Definition of the QAT FW PKE request header pars field. 640adc033fSArek Kusztal * 650adc033fSArek Kusztal * @description 660adc033fSArek Kusztal * PKE request message header pars structure 670adc033fSArek Kusztal * 680adc033fSArek Kusztal *****************************************************************************/ 690adc033fSArek Kusztal struct icp_qat_fw_req_hdr_pke_cd_pars { 700adc033fSArek Kusztal /**< LWs 2-3 */ 710adc033fSArek Kusztal u64 content_desc_addr; 720adc033fSArek Kusztal /**< Content descriptor pointer */ 730adc033fSArek Kusztal 740adc033fSArek Kusztal /**< LW 4 */ 750adc033fSArek Kusztal u32 content_desc_resrvd; 760adc033fSArek Kusztal /**< Content descriptor reserved field */ 770adc033fSArek Kusztal 780adc033fSArek Kusztal /**< LW 5 */ 790adc033fSArek Kusztal u32 func_id; 800adc033fSArek Kusztal /**< MMP functionality Id */ 810adc033fSArek Kusztal }; 820adc033fSArek Kusztal 830adc033fSArek Kusztal /** 840adc033fSArek Kusztal ***************************************************************************** 850adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 860adc033fSArek Kusztal * Definition of the QAT FW PKE request header mid section. 870adc033fSArek Kusztal * 880adc033fSArek Kusztal * @description 890adc033fSArek Kusztal * PKE request message header middle structure 900adc033fSArek Kusztal * 910adc033fSArek Kusztal *****************************************************************************/ 920adc033fSArek Kusztal struct icp_qat_fw_req_pke_mid { 930adc033fSArek Kusztal /**< LWs 6-11 */ 940adc033fSArek Kusztal u64 opaque; 950adc033fSArek Kusztal /**< Opaque data passed unmodified from the request to response messages 960adc033fSArek Kusztal * by firmware (fw) 970adc033fSArek Kusztal */ 980adc033fSArek Kusztal 990adc033fSArek Kusztal u64 src_data_addr; 1000adc033fSArek Kusztal /**< Generic definition of the source data supplied to the QAT AE. The 1010adc033fSArek Kusztal * common flags are used to further describe the attributes of this 1020adc033fSArek Kusztal * field 1030adc033fSArek Kusztal */ 1040adc033fSArek Kusztal 1050adc033fSArek Kusztal u64 dest_data_addr; 1060adc033fSArek Kusztal /**< Generic definition of the destination data supplied to the QAT AE. 1070adc033fSArek Kusztal * The common flags are used to further describe the attributes of this 1080adc033fSArek Kusztal * field 1090adc033fSArek Kusztal */ 1100adc033fSArek Kusztal }; 1110adc033fSArek Kusztal 1120adc033fSArek Kusztal /** 1130adc033fSArek Kusztal ***************************************************************************** 1140adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 1150adc033fSArek Kusztal * Definition of the QAT FW PKE request header. 1160adc033fSArek Kusztal * 1170adc033fSArek Kusztal * @description 1180adc033fSArek Kusztal * PKE request message header structure 1190adc033fSArek Kusztal * 1200adc033fSArek Kusztal *****************************************************************************/ 1210adc033fSArek Kusztal struct icp_qat_fw_req_pke_hdr { 1220adc033fSArek Kusztal /**< LW0 */ 1230adc033fSArek Kusztal u8 resrvd1; 1240adc033fSArek Kusztal /**< reserved field */ 1250adc033fSArek Kusztal 1260adc033fSArek Kusztal u8 resrvd2; 1270adc033fSArek Kusztal /**< reserved field */ 1280adc033fSArek Kusztal 1290adc033fSArek Kusztal u8 service_type; 1300adc033fSArek Kusztal /**< Service type */ 1310adc033fSArek Kusztal 1320adc033fSArek Kusztal u8 hdr_flags; 1330adc033fSArek Kusztal /**< This represents a flags field for the Service Request. 1340adc033fSArek Kusztal * The most significant bit is the 'valid' flag and the only 1350adc033fSArek Kusztal * one used. All remaining bit positions are unused and 1360adc033fSArek Kusztal * are therefore reserved and need to be set to 0. 1370adc033fSArek Kusztal */ 1380adc033fSArek Kusztal 1390adc033fSArek Kusztal /**< LW1 */ 1400adc033fSArek Kusztal u16 comn_req_flags; 1410adc033fSArek Kusztal /**< Common Request flags must indicate flat buffer 1420adc033fSArek Kusztal * Common Request flags - PKE slice flags no longer used - slice 1430adc033fSArek Kusztal * allocated to a threadstrand. 1440adc033fSArek Kusztal */ 1450adc033fSArek Kusztal 1460adc033fSArek Kusztal u8 kpt_mask; 1470adc033fSArek Kusztal /** < KPT input parameters array mask, indicate which node in array is 1480adc033fSArek Kusztal *encrypted 1490adc033fSArek Kusztal */ 1500adc033fSArek Kusztal 1510adc033fSArek Kusztal u8 kpt_rn_mask; 1520adc033fSArek Kusztal /**< KPT random node(RN) mask - indicate which node is RN that QAT 1530adc033fSArek Kusztal * should generate itself. 1540adc033fSArek Kusztal */ 1550adc033fSArek Kusztal 1560adc033fSArek Kusztal /**< LWs 2-5 */ 1570adc033fSArek Kusztal struct icp_qat_fw_req_hdr_pke_cd_pars cd_pars; 1580adc033fSArek Kusztal /**< PKE request message header pars structure */ 1590adc033fSArek Kusztal }; 1600adc033fSArek Kusztal 1610adc033fSArek Kusztal /** 1620adc033fSArek Kusztal *************************************************************************** 1630adc033fSArek Kusztal * 1640adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 1650adc033fSArek Kusztal * 1660adc033fSArek Kusztal * @brief 1670adc033fSArek Kusztal * PKE request message structure (64 bytes) 1680adc033fSArek Kusztal * 1690adc033fSArek Kusztal *****************************************************************************/ 1700adc033fSArek Kusztal struct icp_qat_fw_pke_request { 1710adc033fSArek Kusztal /**< LWs 0-5 */ 1720adc033fSArek Kusztal struct icp_qat_fw_req_pke_hdr pke_hdr; 1730adc033fSArek Kusztal /**< Request header for PKE - CD Header/Param size must be zero */ 1740adc033fSArek Kusztal 1750adc033fSArek Kusztal /**< LWs 6-11 */ 1760adc033fSArek Kusztal struct icp_qat_fw_req_pke_mid pke_mid; 1770adc033fSArek Kusztal /**< Request middle section for PKE */ 1780adc033fSArek Kusztal 1790adc033fSArek Kusztal /**< LW 12 */ 1800adc033fSArek Kusztal u8 output_param_count; 1810adc033fSArek Kusztal /**< Number of output large integers for request */ 1820adc033fSArek Kusztal 1830adc033fSArek Kusztal u8 input_param_count; 1840adc033fSArek Kusztal /**< Number of input large integers for request */ 1850adc033fSArek Kusztal 1860adc033fSArek Kusztal u16 resrvd1; 1870adc033fSArek Kusztal /** Reserved **/ 1880adc033fSArek Kusztal 1890adc033fSArek Kusztal /**< LW 13 */ 1900adc033fSArek Kusztal u32 resrvd2; 1910adc033fSArek Kusztal /**< Reserved */ 1920adc033fSArek Kusztal 1930adc033fSArek Kusztal /**< LWs 14-15 */ 1940adc033fSArek Kusztal u64 next_req_adr; 1950adc033fSArek Kusztal /** < PKE - next request address */ 1960adc033fSArek Kusztal }; 1970adc033fSArek Kusztal 1980adc033fSArek Kusztal /** 1990adc033fSArek Kusztal ***************************************************************************** 2000adc033fSArek Kusztal * 2010adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 2020adc033fSArek Kusztal * 2030adc033fSArek Kusztal * @brief 2040adc033fSArek Kusztal * PKE response message header structure 2050adc033fSArek Kusztal * 2060adc033fSArek Kusztal *****************************************************************************/ 2070adc033fSArek Kusztal struct icp_qat_fw_resp_pke_hdr { 2080adc033fSArek Kusztal /**< LW0 */ 2090adc033fSArek Kusztal u8 resrvd1; 2100adc033fSArek Kusztal /**< Reserved */ 2110adc033fSArek Kusztal 2120adc033fSArek Kusztal u8 resrvd2; 2130adc033fSArek Kusztal /**< Reserved */ 2140adc033fSArek Kusztal 2150adc033fSArek Kusztal u8 response_type; 2160adc033fSArek Kusztal /**< Response type - copied from the request to the response message */ 2170adc033fSArek Kusztal 2180adc033fSArek Kusztal u8 hdr_flags; 2190adc033fSArek Kusztal /**< This represents a flags field for the Response. 2200adc033fSArek Kusztal * The most significant bit is the 'valid' flag and the only 2210adc033fSArek Kusztal * one used. All remaining bit positions are unused and 2220adc033fSArek Kusztal * are therefore reserved 2230adc033fSArek Kusztal */ 2240adc033fSArek Kusztal 2250adc033fSArek Kusztal /**< LW1 */ 2260adc033fSArek Kusztal struct icp_qat_fw_pke_resp_status resp_status; 2270adc033fSArek Kusztal 2280adc033fSArek Kusztal u16 resrvd4; 2290adc033fSArek Kusztal /**< Set to zero. */ 2300adc033fSArek Kusztal }; 2310adc033fSArek Kusztal 2320adc033fSArek Kusztal /** 2330adc033fSArek Kusztal ***************************************************************************** 2340adc033fSArek Kusztal * 2350adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 2360adc033fSArek Kusztal * 2370adc033fSArek Kusztal * @brief 2380adc033fSArek Kusztal * PKE response message structure (32 bytes) 2390adc033fSArek Kusztal * 2400adc033fSArek Kusztal *****************************************************************************/ 2410adc033fSArek Kusztal struct icp_qat_fw_pke_resp { 2420adc033fSArek Kusztal /**< LWs 0-1 */ 2430adc033fSArek Kusztal struct icp_qat_fw_resp_pke_hdr pke_resp_hdr; 2440adc033fSArek Kusztal /**< Response header for PKE */ 2450adc033fSArek Kusztal 2460adc033fSArek Kusztal /**< LWs 2-3 */ 2470adc033fSArek Kusztal u64 opaque; 2480adc033fSArek Kusztal /**< Opaque data passed from the request to the response message */ 2490adc033fSArek Kusztal 2500adc033fSArek Kusztal /**< LWs 4-5 */ 2510adc033fSArek Kusztal u64 src_data_addr; 2520adc033fSArek Kusztal /**< Generic definition of the source data supplied to the QAT AE. The 2530adc033fSArek Kusztal * common flags are used to further describe the attributes of this 2540adc033fSArek Kusztal * field 2550adc033fSArek Kusztal */ 2560adc033fSArek Kusztal 2570adc033fSArek Kusztal /**< LWs 6-7 */ 2580adc033fSArek Kusztal u64 dest_data_addr; 2590adc033fSArek Kusztal /**< Generic definition of the destination data supplied to the QAT AE. 2600adc033fSArek Kusztal * The common flags are used to further describe the attributes of this 2610adc033fSArek Kusztal * field 2620adc033fSArek Kusztal */ 2630adc033fSArek Kusztal }; 2640adc033fSArek Kusztal 2650adc033fSArek Kusztal /* ========================================================================= */ 2660adc033fSArek Kusztal /* MACRO DEFINITIONS */ 2670adc033fSArek Kusztal /* ========================================================================= */ 2680adc033fSArek Kusztal 2690adc033fSArek Kusztal /**< @ingroup icp_qat_fw_pke 2700adc033fSArek Kusztal * Macro defining the bit position and mask of the 'valid' flag, within the 2710adc033fSArek Kusztal * hdr_flags field of LW0 (service request and response) of the PKE request 2720adc033fSArek Kusztal */ 2730adc033fSArek Kusztal #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_BITPOS 7 2740adc033fSArek Kusztal #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_MASK 0x1 2750adc033fSArek Kusztal 2760adc033fSArek Kusztal /**< @ingroup icp_qat_fw_pke 2770adc033fSArek Kusztal * Macro defining the bit position and mask of the PKE status flag, within the 2780adc033fSArek Kusztal * status field LW1 of a PKE response message 2790adc033fSArek Kusztal */ 2800adc033fSArek Kusztal #define QAT_COMN_RESP_PKE_STATUS_BITPOS 6 2810adc033fSArek Kusztal /**< @ingroup icp_qat_fw_pke 2820adc033fSArek Kusztal * Starting bit position indicating the PKE status flag within the PKE response 2830adc033fSArek Kusztal * pke_resp_flags byte. 2840adc033fSArek Kusztal */ 2850adc033fSArek Kusztal 2860adc033fSArek Kusztal #define QAT_COMN_RESP_PKE_STATUS_MASK 0x1 2870adc033fSArek Kusztal /**< @ingroup icp_qat_fw_pke 2880adc033fSArek Kusztal * One bit mask used to determine PKE status mask 2890adc033fSArek Kusztal */ 2900adc033fSArek Kusztal 2910adc033fSArek Kusztal /* 2920adc033fSArek Kusztal * < @ingroup icp_qat_fw_pke 2930adc033fSArek Kusztal * *** PKE Response Status Field Definition *** 2940adc033fSArek Kusztal * The PKE response follows the CPM 1.5 message format. The status field is 2950adc033fSArek Kusztal * 16 bits wide, where the status flags are contained within the most 2960adc033fSArek Kusztal * significant byte of the icp_qat_fw_pke_resp_status structure. 2970adc033fSArek Kusztal * The lower 8 bits of this word now contain the common error codes, 2980adc033fSArek Kusztal * which are defined in the common header file(*). 2990adc033fSArek Kusztal */ 3000adc033fSArek Kusztal /* +=====+-----+----+-----+-----+-----+-----+-----+-----+---------------------+ 3010adc033fSArek Kusztal * | Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | [7....0] | 3020adc033fSArek Kusztal * +=====+-----+----+-----+-----+-----+-----+-----+-----+---------------------+ 3030adc033fSArek Kusztal * |Flags|Rsrvd|Pke |Rsrvd|Rsrvd|Rsrvd|Rsrvd|Rsrvd|Rsrvd|Common error codes(*)| 3040adc033fSArek Kusztal * +=====+-----+----+-----+-----+-----+-----+-----+-----+---------------------+ 3050adc033fSArek Kusztal */ 3060adc033fSArek Kusztal 3070adc033fSArek Kusztal /** 3080adc033fSArek Kusztal ****************************************************************************** 3090adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 3100adc033fSArek Kusztal * 3110adc033fSArek Kusztal * @description 3120adc033fSArek Kusztal * Macro for extraction of the PKE bit from the 16-bit status field 3130adc033fSArek Kusztal * particular to a PKE response. The status flags are contained within 3140adc033fSArek Kusztal * the most significant byte of the word. The lower 8 bits of this status 3150adc033fSArek Kusztal * word now contain the common error codes, which are defined in the common 3160adc033fSArek Kusztal * header file. The appropriate macro definition to extract the PKE status 3170adc033fSArek Kusztal * lag from the PKE response assumes that a single byte i.e. pke_resp_flags 3180adc033fSArek Kusztal * is passed to the macro. 3190adc033fSArek Kusztal * 3200adc033fSArek Kusztal * @param status 3210adc033fSArek Kusztal * Status to extract the PKE status bit 3220adc033fSArek Kusztal * 3230adc033fSArek Kusztal *****************************************************************************/ 3240adc033fSArek Kusztal #define ICP_QAT_FW_PKE_RESP_PKE_STAT_GET(flags) \ 3250adc033fSArek Kusztal QAT_FIELD_GET((flags), QAT_COMN_RESP_PKE_STATUS_BITPOS, \ 3260adc033fSArek Kusztal QAT_COMN_RESP_PKE_STATUS_MASK) 3270adc033fSArek Kusztal 3280adc033fSArek Kusztal /** 3290adc033fSArek Kusztal ****************************************************************************** 3300adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 3310adc033fSArek Kusztal * 3320adc033fSArek Kusztal * @description 3330adc033fSArek Kusztal * Extract the valid flag from the PKE Request's header flags. Note that 3340adc033fSArek Kusztal * this invokes the common macro which may be used by either the request 3350adc033fSArek Kusztal * or the response. 3360adc033fSArek Kusztal * 3370adc033fSArek Kusztal * @param icp_qat_fw_req_pke_hdr Structure passed to extract the valid bit 3380adc033fSArek Kusztal * from the 'hdr_flags' field. 3390adc033fSArek Kusztal * 3400adc033fSArek Kusztal *****************************************************************************/ 3410adc033fSArek Kusztal #define ICP_QAT_FW_PKE_RQ_VALID_FLAG_GET(icp_qat_fw_req_pke_hdr) \ 3420adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_GET(icp_qat_fw_req_pke_hdr) 3430adc033fSArek Kusztal 3440adc033fSArek Kusztal /** 3450adc033fSArek Kusztal ****************************************************************************** 3460adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 3470adc033fSArek Kusztal * 3480adc033fSArek Kusztal * @description 3490adc033fSArek Kusztal * Set the valid bit in the PKE Request's header flags. Note that 3500adc033fSArek Kusztal * this invokes the common macro which may be used by either the request 3510adc033fSArek Kusztal * or the response. 3520adc033fSArek Kusztal * 3530adc033fSArek Kusztal * @param icp_qat_fw_req_pke_hdr Structure passed to set the valid bit. 3540adc033fSArek Kusztal * @param val Value of the valid bit flag. 3550adc033fSArek Kusztal * 3560adc033fSArek Kusztal *****************************************************************************/ 3570adc033fSArek Kusztal #define ICP_QAT_FW_PKE_RQ_VALID_FLAG_SET(icp_qat_fw_req_pke_hdr, val) \ 3580adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_SET(icp_qat_fw_req_pke_hdr, val) 3590adc033fSArek Kusztal 3600adc033fSArek Kusztal /** 3610adc033fSArek Kusztal ****************************************************************************** 3620adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 3630adc033fSArek Kusztal * 3640adc033fSArek Kusztal * @description 3650adc033fSArek Kusztal * Extract the valid flag from the PKE Response's header flags. Note that 3660adc033fSArek Kusztal * invokes the common macro which may be used by either the request 3670adc033fSArek Kusztal * or the response. 3680adc033fSArek Kusztal * 3690adc033fSArek Kusztal * @param icp_qat_fw_resp_pke_hdr Structure to extract the valid bit 3700adc033fSArek Kusztal * from the 'hdr_flags' field. 3710adc033fSArek Kusztal * 3720adc033fSArek Kusztal *****************************************************************************/ 3730adc033fSArek Kusztal #define ICP_QAT_FW_PKE_RESP_VALID_FLAG_GET(icp_qat_fw_resp_pke_hdr) \ 3740adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_GET(icp_qat_fw_resp_pke_hdr) 3750adc033fSArek Kusztal 3760adc033fSArek Kusztal /** 3770adc033fSArek Kusztal ****************************************************************************** 3780adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 3790adc033fSArek Kusztal * 3800adc033fSArek Kusztal * @description 3810adc033fSArek Kusztal * Set the valid bit in the PKE Response's header flags. Note that 3820adc033fSArek Kusztal * this invokes the common macro which may be used by either the 3830adc033fSArek Kusztal * request or the response. 3840adc033fSArek Kusztal * 3850adc033fSArek Kusztal * @param icp_qat_fw_resp_pke_hdr Structure to set the valid bit 3860adc033fSArek Kusztal * @param val Value of the valid bit flag. 3870adc033fSArek Kusztal * 3880adc033fSArek Kusztal *****************************************************************************/ 3890adc033fSArek Kusztal #define ICP_QAT_FW_PKE_RESP_VALID_FLAG_SET(icp_qat_fw_resp_pke_hdr, val) \ 3900adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_SET(icp_qat_fw_resp_pke_hdr, val) 3910adc033fSArek Kusztal 3920adc033fSArek Kusztal /** 3930adc033fSArek Kusztal ****************************************************************************** 3940adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 3950adc033fSArek Kusztal * 3960adc033fSArek Kusztal * @description 3970adc033fSArek Kusztal * Common macro to extract the valid flag from the header flags field 3980adc033fSArek Kusztal * within the header structure (request or response). 3990adc033fSArek Kusztal * 4000adc033fSArek Kusztal * @param hdr Structure (request or response) to extract the 4010adc033fSArek Kusztal * valid bit from the 'hdr_flags' field. 4020adc033fSArek Kusztal * 4030adc033fSArek Kusztal *****************************************************************************/ 4040adc033fSArek Kusztal #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_GET(hdr) \ 4050adc033fSArek Kusztal QAT_FIELD_GET(hdr.hdr_flags, ICP_QAT_FW_PKE_HDR_VALID_FLAG_BITPOS, \ 4060adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_MASK) 4070adc033fSArek Kusztal 4080adc033fSArek Kusztal /** 4090adc033fSArek Kusztal ****************************************************************************** 4100adc033fSArek Kusztal * @ingroup icp_qat_fw_pke 4110adc033fSArek Kusztal * 4120adc033fSArek Kusztal * @description 4130adc033fSArek Kusztal * Common macro to set the valid bit in the header flags field within 4140adc033fSArek Kusztal * the header structure (request or response). 4150adc033fSArek Kusztal * 4160adc033fSArek Kusztal * @param hdr Structure (request or response) containing the header 4170adc033fSArek Kusztal * flags field, to allow the valid bit to be set. 4180adc033fSArek Kusztal * @param val Value of the valid bit flag. 4190adc033fSArek Kusztal * 4200adc033fSArek Kusztal *****************************************************************************/ 4210adc033fSArek Kusztal #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_SET(hdr, val) \ 4220adc033fSArek Kusztal QAT_FIELD_SET((hdr.hdr_flags), (val), \ 4230adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_BITPOS, \ 4240adc033fSArek Kusztal ICP_QAT_FW_PKE_HDR_VALID_FLAG_MASK) 4250adc033fSArek Kusztal 4260adc033fSArek Kusztal #endif /* _ICP_QAT_FW_PKE_H_ */ 427