1c7e9729dSAlejandro Lucero /* SPDX-License-Identifier: BSD-3-Clause 2c7e9729dSAlejandro Lucero * Copyright(c) 2018 Netronome Systems, Inc. 3c7e9729dSAlejandro Lucero * All rights reserved. 4c7e9729dSAlejandro Lucero */ 5c7e9729dSAlejandro Lucero 62cd8817aSChaoyong He #ifndef __NFP_RESOURCE_H__ 72cd8817aSChaoyong He #define __NFP_RESOURCE_H__ 8c7e9729dSAlejandro Lucero 9c7e9729dSAlejandro Lucero #include "nfp_cpp.h" 10c7e9729dSAlejandro Lucero 116d03aa61SChaoyong He /* Netronone Flow Firmware Table */ 12c7e9729dSAlejandro Lucero #define NFP_RESOURCE_NFP_NFFW "nfp.nffw" 136d03aa61SChaoyong He 146d03aa61SChaoyong He /* NFP Hardware Info Database */ 15c7e9729dSAlejandro Lucero #define NFP_RESOURCE_NFP_HWINFO "nfp.info" 166d03aa61SChaoyong He 176d03aa61SChaoyong He /* Service Processor */ 18c7e9729dSAlejandro Lucero #define NFP_RESOURCE_NSP "nfp.sp" 19c7e9729dSAlejandro Lucero 20*8ba461d1SPeng Zhang /* Keepalive */ 21*8ba461d1SPeng Zhang #define NFP_RESOURCE_KEEPALIVE "nfp.beat" 22*8ba461d1SPeng Zhang 236d03aa61SChaoyong He /* Opaque handle to a NFP Resource */ 24c7e9729dSAlejandro Lucero struct nfp_resource; 25c7e9729dSAlejandro Lucero 26c7e9729dSAlejandro Lucero struct nfp_resource *nfp_resource_acquire(struct nfp_cpp *cpp, 27c7e9729dSAlejandro Lucero const char *name); 28c7e9729dSAlejandro Lucero 29c7e9729dSAlejandro Lucero void nfp_resource_release(struct nfp_resource *res); 30c7e9729dSAlejandro Lucero 31c7e9729dSAlejandro Lucero uint32_t nfp_resource_cpp_id(const struct nfp_resource *res); 32c7e9729dSAlejandro Lucero 33c7e9729dSAlejandro Lucero const char *nfp_resource_name(const struct nfp_resource *res); 34c7e9729dSAlejandro Lucero 35c7e9729dSAlejandro Lucero uint64_t nfp_resource_address(const struct nfp_resource *res); 36c7e9729dSAlejandro Lucero 37c7e9729dSAlejandro Lucero uint64_t nfp_resource_size(const struct nfp_resource *res); 38c7e9729dSAlejandro Lucero 392cd8817aSChaoyong He #endif /* __NFP_RESOURCE_H__ */ 40