1*25421895SHareshx Sankar Raj /* SPDX-License-Identifier: BSD-3-Clause */ 2*25421895SHareshx Sankar Raj /* Copyright(c) 2007-2025 Intel Corporation */ 378ee8d1cSJulian Grajkowski 478ee8d1cSJulian Grajkowski /* 578ee8d1cSJulian Grajkowski ***************************************************************************** 678ee8d1cSJulian Grajkowski * Doxygen group definitions 778ee8d1cSJulian Grajkowski ****************************************************************************/ 878ee8d1cSJulian Grajkowski 978ee8d1cSJulian Grajkowski /** 1078ee8d1cSJulian Grajkowski ***************************************************************************** 1178ee8d1cSJulian Grajkowski * @file cpa_dev.h 1278ee8d1cSJulian Grajkowski * 1378ee8d1cSJulian Grajkowski * @defgroup cpaDev Device API 1478ee8d1cSJulian Grajkowski * 1578ee8d1cSJulian Grajkowski * @ingroup cpa 1678ee8d1cSJulian Grajkowski * 1778ee8d1cSJulian Grajkowski * @description 1878ee8d1cSJulian Grajkowski * These functions specify the API for device level operation. 1978ee8d1cSJulian Grajkowski * 2078ee8d1cSJulian Grajkowski * @remarks 2178ee8d1cSJulian Grajkowski * 2278ee8d1cSJulian Grajkowski * 2378ee8d1cSJulian Grajkowski *****************************************************************************/ 2478ee8d1cSJulian Grajkowski 2578ee8d1cSJulian Grajkowski #ifndef CPA_DEV_H 2678ee8d1cSJulian Grajkowski #define CPA_DEV_H 2778ee8d1cSJulian Grajkowski 2878ee8d1cSJulian Grajkowski #ifdef __cplusplus 2978ee8d1cSJulian Grajkowski extern"C" { 3078ee8d1cSJulian Grajkowski #endif 3178ee8d1cSJulian Grajkowski 3278ee8d1cSJulian Grajkowski 3378ee8d1cSJulian Grajkowski #ifndef CPA_H 3478ee8d1cSJulian Grajkowski #include "cpa.h" 3578ee8d1cSJulian Grajkowski #endif 3678ee8d1cSJulian Grajkowski 3778ee8d1cSJulian Grajkowski 3878ee8d1cSJulian Grajkowski /***************************************************************************** 3978ee8d1cSJulian Grajkowski * @ingroup cpaDev 4078ee8d1cSJulian Grajkowski * Returns device information 4178ee8d1cSJulian Grajkowski * 4278ee8d1cSJulian Grajkowski * @description 4378ee8d1cSJulian Grajkowski * This data structure contains the device information. The device 4478ee8d1cSJulian Grajkowski * information are available to both Physical and Virtual Functions. 4578ee8d1cSJulian Grajkowski * Depending on the resource partitioning configuration, the services 4678ee8d1cSJulian Grajkowski * available may changes. This configuration will impact the size of the 4778ee8d1cSJulian Grajkowski * Security Association Database (SADB). Other properties such device SKU 4878ee8d1cSJulian Grajkowski * and device ID are also reported. 4978ee8d1cSJulian Grajkowski * 5078ee8d1cSJulian Grajkowski *****************************************************************************/ 5178ee8d1cSJulian Grajkowski typedef struct _CpaDeviceInfo { 5278ee8d1cSJulian Grajkowski Cpa32U sku; 5378ee8d1cSJulian Grajkowski /**< Identifies the SKU of the device. */ 5478ee8d1cSJulian Grajkowski Cpa16U bdf; 5578ee8d1cSJulian Grajkowski /**< Identifies the Bus Device Function of the device. 5678ee8d1cSJulian Grajkowski * Format is reported as follow: 5778ee8d1cSJulian Grajkowski * - bits<2:0> represent the function number. 5878ee8d1cSJulian Grajkowski * - bits<7:3> represent the device 5978ee8d1cSJulian Grajkowski * - bits<15:8> represent the bus 6078ee8d1cSJulian Grajkowski */ 6178ee8d1cSJulian Grajkowski Cpa32U deviceId; 6278ee8d1cSJulian Grajkowski /**< Returns the device ID. */ 6378ee8d1cSJulian Grajkowski Cpa32U numaNode; 6478ee8d1cSJulian Grajkowski /**< Return the local NUMA node mapped to the device. */ 6578ee8d1cSJulian Grajkowski CpaBoolean isVf; 6678ee8d1cSJulian Grajkowski /**< Return whether the device is currently used in a virtual function 6778ee8d1cSJulian Grajkowski * or not. */ 6878ee8d1cSJulian Grajkowski CpaBoolean dcEnabled; 6978ee8d1cSJulian Grajkowski /**< Compression service enabled */ 7078ee8d1cSJulian Grajkowski CpaBoolean cySymEnabled; 7125f09d4aSHareshx Sankar Raj /**< Symmetric crypto service enabled */ 7278ee8d1cSJulian Grajkowski CpaBoolean cyAsymEnabled; 7325f09d4aSHareshx Sankar Raj /**< Asymmetric crypto service enabled */ 7478ee8d1cSJulian Grajkowski CpaBoolean inlineEnabled; 7578ee8d1cSJulian Grajkowski /**< Inline service enabled */ 7678ee8d1cSJulian Grajkowski Cpa32U deviceMemorySizeAvailable; 7778ee8d1cSJulian Grajkowski /**< Return the size of the device memory available. This device memory 7878ee8d1cSJulian Grajkowski * section could be used for the intermediate buffers in the 7978ee8d1cSJulian Grajkowski * compression service. 8078ee8d1cSJulian Grajkowski */ 8178ee8d1cSJulian Grajkowski } CpaDeviceInfo; 8278ee8d1cSJulian Grajkowski 8378ee8d1cSJulian Grajkowski 8478ee8d1cSJulian Grajkowski /***************************************************************************** 8578ee8d1cSJulian Grajkowski * @ingroup cpaDev 8678ee8d1cSJulian Grajkowski * Returns number devices. 8778ee8d1cSJulian Grajkowski * 8878ee8d1cSJulian Grajkowski * @description 8978ee8d1cSJulian Grajkowski * This API returns the number of devices available to the application. 9078ee8d1cSJulian Grajkowski * If used on the host, it will return the number of physical devices. 9178ee8d1cSJulian Grajkowski * If used on the guest, it will return the number of function mapped 9278ee8d1cSJulian Grajkowski * to the virtual machine. 9378ee8d1cSJulian Grajkowski * 9478ee8d1cSJulian Grajkowski *****************************************************************************/ 9578ee8d1cSJulian Grajkowski CpaStatus cpaGetNumDevices (Cpa16U *numDevices); 9678ee8d1cSJulian Grajkowski 9778ee8d1cSJulian Grajkowski /***************************************************************************** 9878ee8d1cSJulian Grajkowski * @ingroup cpaDev 9978ee8d1cSJulian Grajkowski * Returns device information for a given device index. 10078ee8d1cSJulian Grajkowski * 10178ee8d1cSJulian Grajkowski * @description 10278ee8d1cSJulian Grajkowski * Returns device information for a given device index. This API must 10378ee8d1cSJulian Grajkowski * be used with cpaGetNumDevices(). 10478ee8d1cSJulian Grajkowski *****************************************************************************/ 10578ee8d1cSJulian Grajkowski CpaStatus cpaGetDeviceInfo (Cpa16U device, CpaDeviceInfo *deviceInfo); 10678ee8d1cSJulian Grajkowski 10778ee8d1cSJulian Grajkowski #ifdef __cplusplus 10878ee8d1cSJulian Grajkowski } /* close the extern "C" { */ 10978ee8d1cSJulian Grajkowski #endif 11078ee8d1cSJulian Grajkowski 11178ee8d1cSJulian Grajkowski #endif /* CPA_DEV_H */ 112