1014a9e22SJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause 2014a9e22SJerin Jacob * Copyright(C) 2021 Marvell. 3014a9e22SJerin Jacob */ 4014a9e22SJerin Jacob 5014a9e22SJerin Jacob #ifndef _ROC_MODEL_H_ 6014a9e22SJerin Jacob #define _ROC_MODEL_H_ 7014a9e22SJerin Jacob 8014a9e22SJerin Jacob #include <stdbool.h> 9014a9e22SJerin Jacob 10fdbec406SAnoob Joseph #include "roc_bits.h" 11*62afdd8dSPavan Nikhilesh #include "roc_constants.h" 12fdbec406SAnoob Joseph 13014a9e22SJerin Jacob extern struct roc_model *roc_model; 14014a9e22SJerin Jacob 15014a9e22SJerin Jacob struct roc_model { 16966f57a6SHarman Kalra /* CN9k Models*/ 17014a9e22SJerin Jacob #define ROC_MODEL_CN96xx_A0 BIT_ULL(0) 18014a9e22SJerin Jacob #define ROC_MODEL_CN96xx_B0 BIT_ULL(1) 19014a9e22SJerin Jacob #define ROC_MODEL_CN96xx_C0 BIT_ULL(2) 20014a9e22SJerin Jacob #define ROC_MODEL_CNF95xx_A0 BIT_ULL(4) 21014a9e22SJerin Jacob #define ROC_MODEL_CNF95xx_B0 BIT_ULL(6) 22fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CNF95xxMM_A0 BIT_ULL(8) 23fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CNF95xxN_A0 BIT_ULL(12) 24fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CNF95xxO_A0 BIT_ULL(13) 25fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CNF95xxN_A1 BIT_ULL(14) 2664e63c19STomasz Duszynski #define ROC_MODEL_CNF95xxN_B0 BIT_ULL(15) 27014a9e22SJerin Jacob #define ROC_MODEL_CN98xx_A0 BIT_ULL(16) 286cf706ceSHarman Kalra #define ROC_MODEL_CN98xx_A1 BIT_ULL(17) 29966f57a6SHarman Kalra /* CN10k Models*/ 30fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CN106xx_A0 BIT_ULL(20) 31fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CNF105xx_A0 BIT_ULL(21) 32fa4ac951SAshwin Sekhar T K #define ROC_MODEL_CNF105xxN_A0 BIT_ULL(22) 33dd462f68SRahul Bhansali #define ROC_MODEL_CN103xx_A0 BIT_ULL(23) 3480608c80SHarman Kalra #define ROC_MODEL_CN106xx_A1 BIT_ULL(24) 357eeb4b44SHarman Kalra #define ROC_MODEL_CNF105xx_A1 BIT_ULL(25) 36782828bfSSrikanth Yalavarthi #define ROC_MODEL_CN106xx_B0 BIT_ULL(26) 371a5f5ef4SHarman Kalra #define ROC_MODEL_CNF105xxN_B0 BIT_ULL(27) 38966f57a6SHarman Kalra /* CN20k Models*/ 39966f57a6SHarman Kalra #define ROC_MODEL_CN206xx_A0 BIT_ULL(40) 40966f57a6SHarman Kalra 41b89f023eSTomasz Duszynski /* Following flags describe platform code is running on */ 42b89f023eSTomasz Duszynski #define ROC_ENV_HW BIT_ULL(61) 43b89f023eSTomasz Duszynski #define ROC_ENV_EMUL BIT_ULL(62) 44b89f023eSTomasz Duszynski #define ROC_ENV_ASIM BIT_ULL(63) 45014a9e22SJerin Jacob 46014a9e22SJerin Jacob uint64_t flag; 47014a9e22SJerin Jacob #define ROC_MODEL_STR_LEN_MAX 128 48014a9e22SJerin Jacob char name[ROC_MODEL_STR_LEN_MAX]; 49b89f023eSTomasz Duszynski char env[ROC_MODEL_STR_LEN_MAX]; 50014a9e22SJerin Jacob } __plt_cache_aligned; 51014a9e22SJerin Jacob 52966f57a6SHarman Kalra /* CN9K models */ 53014a9e22SJerin Jacob #define ROC_MODEL_CN96xx_Ax (ROC_MODEL_CN96xx_A0 | ROC_MODEL_CN96xx_B0) 546cf706ceSHarman Kalra #define ROC_MODEL_CN98xx_Ax (ROC_MODEL_CN98xx_A0 | ROC_MODEL_CN98xx_A1) 55014a9e22SJerin Jacob #define ROC_MODEL_CN9K \ 56014a9e22SJerin Jacob (ROC_MODEL_CN96xx_Ax | ROC_MODEL_CN96xx_C0 | ROC_MODEL_CNF95xx_A0 | \ 57fa4ac951SAshwin Sekhar T K ROC_MODEL_CNF95xx_B0 | ROC_MODEL_CNF95xxMM_A0 | \ 586cf706ceSHarman Kalra ROC_MODEL_CNF95xxO_A0 | ROC_MODEL_CNF95xxN_A0 | ROC_MODEL_CN98xx_Ax | \ 5964e63c19STomasz Duszynski ROC_MODEL_CNF95xxN_A1 | ROC_MODEL_CNF95xxN_B0) 607ce1032eSTomasz Duszynski #define ROC_MODEL_CNF9K \ 617ce1032eSTomasz Duszynski (ROC_MODEL_CNF95xx_A0 | ROC_MODEL_CNF95xx_B0 | \ 627ce1032eSTomasz Duszynski ROC_MODEL_CNF95xxMM_A0 | ROC_MODEL_CNF95xxO_A0 | \ 6364e63c19STomasz Duszynski ROC_MODEL_CNF95xxN_A0 | ROC_MODEL_CNF95xxN_A1 | \ 6464e63c19STomasz Duszynski ROC_MODEL_CNF95xxN_B0) 65014a9e22SJerin Jacob 66966f57a6SHarman Kalra /* CN10K models */ 67782828bfSSrikanth Yalavarthi #define ROC_MODEL_CN106xx (ROC_MODEL_CN106xx_A0 | ROC_MODEL_CN106xx_A1 | ROC_MODEL_CN106xx_B0) 687eeb4b44SHarman Kalra #define ROC_MODEL_CNF105xx (ROC_MODEL_CNF105xx_A0 | ROC_MODEL_CNF105xx_A1) 691a5f5ef4SHarman Kalra #define ROC_MODEL_CNF105xxN (ROC_MODEL_CNF105xxN_A0 | ROC_MODEL_CNF105xxN_B0) 70dd462f68SRahul Bhansali #define ROC_MODEL_CN103xx (ROC_MODEL_CN103xx_A0) 71014a9e22SJerin Jacob #define ROC_MODEL_CN10K \ 72dd462f68SRahul Bhansali (ROC_MODEL_CN106xx | ROC_MODEL_CNF105xx | ROC_MODEL_CNF105xxN | \ 73dd462f68SRahul Bhansali ROC_MODEL_CN103xx) 747ce1032eSTomasz Duszynski #define ROC_MODEL_CNF10K (ROC_MODEL_CNF105xx | ROC_MODEL_CNF105xxN) 75014a9e22SJerin Jacob 76966f57a6SHarman Kalra /* CN20K models */ 77966f57a6SHarman Kalra #define ROC_MODEL_CN206xx (ROC_MODEL_CN206xx_A0) 78966f57a6SHarman Kalra #define ROC_MODEL_CN20K (ROC_MODEL_CN206xx) 79966f57a6SHarman Kalra 80014a9e22SJerin Jacob /* Runtime variants */ 81014a9e22SJerin Jacob static inline uint64_t 82014a9e22SJerin Jacob roc_model_runtime_is_cn9k(void) 83014a9e22SJerin Jacob { 84014a9e22SJerin Jacob return (roc_model->flag & (ROC_MODEL_CN9K)); 85014a9e22SJerin Jacob } 86014a9e22SJerin Jacob 87014a9e22SJerin Jacob static inline uint64_t 88014a9e22SJerin Jacob roc_model_runtime_is_cn10k(void) 89014a9e22SJerin Jacob { 90014a9e22SJerin Jacob return (roc_model->flag & (ROC_MODEL_CN10K)); 91014a9e22SJerin Jacob } 92014a9e22SJerin Jacob 93966f57a6SHarman Kalra static inline uint64_t 94966f57a6SHarman Kalra roc_model_runtime_is_cn20k(void) 95966f57a6SHarman Kalra { 96966f57a6SHarman Kalra return (roc_model->flag & (ROC_MODEL_CN20K)); 97966f57a6SHarman Kalra } 98966f57a6SHarman Kalra 99014a9e22SJerin Jacob /* Compile time variants */ 100014a9e22SJerin Jacob #ifdef ROC_PLATFORM_CN9K 101014a9e22SJerin Jacob #define roc_model_constant_is_cn9k() 1 102014a9e22SJerin Jacob #define roc_model_constant_is_cn10k() 0 103966f57a6SHarman Kalra #define roc_model_constant_is_cn20k() 0 104966f57a6SHarman Kalra #endif 105966f57a6SHarman Kalra #ifdef ROC_PLATFORM_CN10K 106014a9e22SJerin Jacob #define roc_model_constant_is_cn9k() 0 107014a9e22SJerin Jacob #define roc_model_constant_is_cn10k() 1 108966f57a6SHarman Kalra #define roc_model_constant_is_cn20k() 0 109966f57a6SHarman Kalra #endif 110966f57a6SHarman Kalra #ifdef ROC_PLATFORM_CN20K 111966f57a6SHarman Kalra #define roc_model_constant_is_cn9k() 0 112966f57a6SHarman Kalra #define roc_model_constant_is_cn10k() 0 113966f57a6SHarman Kalra #define roc_model_constant_is_cn20k() 1 114966f57a6SHarman Kalra #endif 115966f57a6SHarman Kalra #if !defined(ROC_PLATFORM_CN9K) && !defined(ROC_PLATFORM_CN10K) && !defined(ROC_PLATFORM_CN20K) 116966f57a6SHarman Kalra #define roc_model_constant_is_cn9k() 0 117966f57a6SHarman Kalra #define roc_model_constant_is_cn10k() 0 118966f57a6SHarman Kalra #define roc_model_constant_is_cn20k() 0 119014a9e22SJerin Jacob #endif 120014a9e22SJerin Jacob 121014a9e22SJerin Jacob /* 122014a9e22SJerin Jacob * Compile time variants to enable optimized version check when the library 123014a9e22SJerin Jacob * configured for specific platform version else to fallback to runtime. 124014a9e22SJerin Jacob */ 125014a9e22SJerin Jacob static inline uint64_t 126014a9e22SJerin Jacob roc_model_is_cn9k(void) 127014a9e22SJerin Jacob { 128014a9e22SJerin Jacob #ifdef ROC_PLATFORM_CN9K 129014a9e22SJerin Jacob return 1; 130014a9e22SJerin Jacob #endif 131966f57a6SHarman Kalra #if defined(ROC_PLATFORM_CN10K) || defined(ROC_PLATFORM_CN20K) 132014a9e22SJerin Jacob return 0; 133014a9e22SJerin Jacob #endif 134014a9e22SJerin Jacob return roc_model_runtime_is_cn9k(); 135014a9e22SJerin Jacob } 136014a9e22SJerin Jacob 137014a9e22SJerin Jacob static inline uint64_t 138014a9e22SJerin Jacob roc_model_is_cn10k(void) 139014a9e22SJerin Jacob { 140014a9e22SJerin Jacob #ifdef ROC_PLATFORM_CN10K 141014a9e22SJerin Jacob return 1; 142014a9e22SJerin Jacob #endif 143966f57a6SHarman Kalra #if defined(ROC_PLATFORM_CN9K) || defined(ROC_PLATFORM_CN20K) 144014a9e22SJerin Jacob return 0; 145014a9e22SJerin Jacob #endif 146014a9e22SJerin Jacob return roc_model_runtime_is_cn10k(); 147014a9e22SJerin Jacob } 148014a9e22SJerin Jacob 149014a9e22SJerin Jacob static inline uint64_t 150966f57a6SHarman Kalra roc_model_is_cn20k(void) 151966f57a6SHarman Kalra { 152966f57a6SHarman Kalra #ifdef ROC_PLATFORM_CN20K 153966f57a6SHarman Kalra return 1; 154966f57a6SHarman Kalra #endif 155966f57a6SHarman Kalra #if defined(ROC_PLATFORM_CN9K) || defined(ROC_PLATFORM_CN10K) 156966f57a6SHarman Kalra return 0; 157966f57a6SHarman Kalra #endif 158966f57a6SHarman Kalra return roc_model_runtime_is_cn20k(); 159966f57a6SHarman Kalra } 160966f57a6SHarman Kalra 161*62afdd8dSPavan Nikhilesh static inline uint16_t 162*62afdd8dSPavan Nikhilesh roc_model_optimal_align_sz(void) 163*62afdd8dSPavan Nikhilesh { 164*62afdd8dSPavan Nikhilesh if (roc_model_is_cn9k()) 165*62afdd8dSPavan Nikhilesh return ROC_ALIGN; 166*62afdd8dSPavan Nikhilesh if (roc_model_is_cn10k()) 167*62afdd8dSPavan Nikhilesh return ROC_ALIGN; 168*62afdd8dSPavan Nikhilesh if (roc_model_is_cn20k()) 169*62afdd8dSPavan Nikhilesh return ROC_ALIGN << 1; 170*62afdd8dSPavan Nikhilesh return 128; 171*62afdd8dSPavan Nikhilesh } 172*62afdd8dSPavan Nikhilesh 173966f57a6SHarman Kalra static inline uint64_t 17419f3cc23SSatheesh Paul roc_model_is_cn98xx(void) 17519f3cc23SSatheesh Paul { 1766cf706ceSHarman Kalra return (roc_model->flag & ROC_MODEL_CN98xx_Ax); 1776cf706ceSHarman Kalra } 1786cf706ceSHarman Kalra 1796cf706ceSHarman Kalra static inline uint64_t 1806cf706ceSHarman Kalra roc_model_is_cn98xx_a0(void) 1816cf706ceSHarman Kalra { 18219f3cc23SSatheesh Paul return (roc_model->flag & ROC_MODEL_CN98xx_A0); 18319f3cc23SSatheesh Paul } 18419f3cc23SSatheesh Paul 18519f3cc23SSatheesh Paul static inline uint64_t 1866cf706ceSHarman Kalra roc_model_is_cn98xx_a1(void) 1876cf706ceSHarman Kalra { 1886cf706ceSHarman Kalra return (roc_model->flag & ROC_MODEL_CN98xx_A1); 1896cf706ceSHarman Kalra } 1906cf706ceSHarman Kalra 1916cf706ceSHarman Kalra static inline uint64_t 1927fef6b09SNithin Dabilpuram roc_model_is_cn96_a0(void) 193014a9e22SJerin Jacob { 194014a9e22SJerin Jacob return roc_model->flag & ROC_MODEL_CN96xx_A0; 195014a9e22SJerin Jacob } 196014a9e22SJerin Jacob 197014a9e22SJerin Jacob static inline uint64_t 1987fef6b09SNithin Dabilpuram roc_model_is_cn96_ax(void) 199014a9e22SJerin Jacob { 200014a9e22SJerin Jacob return (roc_model->flag & ROC_MODEL_CN96xx_Ax); 201014a9e22SJerin Jacob } 202014a9e22SJerin Jacob 203014a9e22SJerin Jacob static inline uint64_t 204e98f5831SSathesh Edara roc_model_is_cn96_b0(void) 205e98f5831SSathesh Edara { 206e98f5831SSathesh Edara return (roc_model->flag & ROC_MODEL_CN96xx_B0); 207e98f5831SSathesh Edara } 208e98f5831SSathesh Edara 209e98f5831SSathesh Edara static inline uint64_t 210fa4ac951SAshwin Sekhar T K roc_model_is_cn96_cx(void) 211fa4ac951SAshwin Sekhar T K { 212fa4ac951SAshwin Sekhar T K return (roc_model->flag & ROC_MODEL_CN96xx_C0); 213fa4ac951SAshwin Sekhar T K } 214fa4ac951SAshwin Sekhar T K 215fa4ac951SAshwin Sekhar T K static inline uint64_t 2167fef6b09SNithin Dabilpuram roc_model_is_cn95_a0(void) 217014a9e22SJerin Jacob { 218014a9e22SJerin Jacob return roc_model->flag & ROC_MODEL_CNF95xx_A0; 219014a9e22SJerin Jacob } 220014a9e22SJerin Jacob 221014a9e22SJerin Jacob static inline uint64_t 2227af3e7aaSTomasz Duszynski roc_model_is_cnf95xxn_a0(void) 2237af3e7aaSTomasz Duszynski { 2247af3e7aaSTomasz Duszynski return roc_model->flag & ROC_MODEL_CNF95xxN_A0; 2257af3e7aaSTomasz Duszynski } 2267af3e7aaSTomasz Duszynski 2277af3e7aaSTomasz Duszynski static inline uint64_t 2287af3e7aaSTomasz Duszynski roc_model_is_cnf95xxn_a1(void) 2297af3e7aaSTomasz Duszynski { 2307af3e7aaSTomasz Duszynski return roc_model->flag & ROC_MODEL_CNF95xxN_A1; 2317af3e7aaSTomasz Duszynski } 2327af3e7aaSTomasz Duszynski 2337af3e7aaSTomasz Duszynski static inline uint64_t 2347af3e7aaSTomasz Duszynski roc_model_is_cnf95xxn_b0(void) 2357af3e7aaSTomasz Duszynski { 2367af3e7aaSTomasz Duszynski return roc_model->flag & ROC_MODEL_CNF95xxN_B0; 2377af3e7aaSTomasz Duszynski } 2387af3e7aaSTomasz Duszynski 239e98f5831SSathesh Edara static inline uint64_t 240e98f5831SSathesh Edara roc_model_is_cnf95xxo_a0(void) 241e98f5831SSathesh Edara { 242e98f5831SSathesh Edara return roc_model->flag & ROC_MODEL_CNF95xxO_A0; 243e98f5831SSathesh Edara } 244e98f5831SSathesh Edara 2457af3e7aaSTomasz Duszynski static inline uint16_t 2467af3e7aaSTomasz Duszynski roc_model_is_cn95xxn_a0(void) 2477af3e7aaSTomasz Duszynski { 2487af3e7aaSTomasz Duszynski return roc_model->flag & ROC_MODEL_CNF95xxN_A0; 2497af3e7aaSTomasz Duszynski } 2507af3e7aaSTomasz Duszynski 2517af3e7aaSTomasz Duszynski static inline uint64_t 252014a9e22SJerin Jacob roc_model_is_cn10ka(void) 253014a9e22SJerin Jacob { 254fa4ac951SAshwin Sekhar T K return roc_model->flag & ROC_MODEL_CN106xx; 255014a9e22SJerin Jacob } 256014a9e22SJerin Jacob 257014a9e22SJerin Jacob static inline uint64_t 258014a9e22SJerin Jacob roc_model_is_cnf10ka(void) 259014a9e22SJerin Jacob { 260fa4ac951SAshwin Sekhar T K return roc_model->flag & ROC_MODEL_CNF105xx; 261014a9e22SJerin Jacob } 262014a9e22SJerin Jacob 263014a9e22SJerin Jacob static inline uint64_t 264014a9e22SJerin Jacob roc_model_is_cnf10kb(void) 265014a9e22SJerin Jacob { 266fa4ac951SAshwin Sekhar T K return roc_model->flag & ROC_MODEL_CNF105xxN; 267fa4ac951SAshwin Sekhar T K } 268fa4ac951SAshwin Sekhar T K 269fa4ac951SAshwin Sekhar T K static inline uint64_t 270dd462f68SRahul Bhansali roc_model_is_cn10kb_a0(void) 271dd462f68SRahul Bhansali { 272dd462f68SRahul Bhansali return roc_model->flag & ROC_MODEL_CN103xx_A0; 273dd462f68SRahul Bhansali } 274dd462f68SRahul Bhansali 275dd462f68SRahul Bhansali static inline uint64_t 276fa4ac951SAshwin Sekhar T K roc_model_is_cn10ka_a0(void) 277fa4ac951SAshwin Sekhar T K { 278fa4ac951SAshwin Sekhar T K return roc_model->flag & ROC_MODEL_CN106xx_A0; 279fa4ac951SAshwin Sekhar T K } 280fa4ac951SAshwin Sekhar T K 281fa4ac951SAshwin Sekhar T K static inline uint64_t 28280608c80SHarman Kalra roc_model_is_cn10ka_a1(void) 28380608c80SHarman Kalra { 28480608c80SHarman Kalra return roc_model->flag & ROC_MODEL_CN106xx_A1; 28580608c80SHarman Kalra } 28680608c80SHarman Kalra 28780608c80SHarman Kalra static inline uint64_t 288782828bfSSrikanth Yalavarthi roc_model_is_cn10ka_b0(void) 289782828bfSSrikanth Yalavarthi { 290782828bfSSrikanth Yalavarthi return roc_model->flag & ROC_MODEL_CN106xx_B0; 291782828bfSSrikanth Yalavarthi } 292782828bfSSrikanth Yalavarthi 293782828bfSSrikanth Yalavarthi static inline uint64_t 294fa4ac951SAshwin Sekhar T K roc_model_is_cnf10ka_a0(void) 295fa4ac951SAshwin Sekhar T K { 296fa4ac951SAshwin Sekhar T K return roc_model->flag & ROC_MODEL_CNF105xx_A0; 297fa4ac951SAshwin Sekhar T K } 298fa4ac951SAshwin Sekhar T K 299fa4ac951SAshwin Sekhar T K static inline uint64_t 3007eeb4b44SHarman Kalra roc_model_is_cnf10ka_a1(void) 3017eeb4b44SHarman Kalra { 3027eeb4b44SHarman Kalra return roc_model->flag & ROC_MODEL_CNF105xx_A1; 3037eeb4b44SHarman Kalra } 3047eeb4b44SHarman Kalra 3057eeb4b44SHarman Kalra static inline uint64_t 306fa4ac951SAshwin Sekhar T K roc_model_is_cnf10kb_a0(void) 307fa4ac951SAshwin Sekhar T K { 308fa4ac951SAshwin Sekhar T K return roc_model->flag & ROC_MODEL_CNF105xxN_A0; 309014a9e22SJerin Jacob } 310014a9e22SJerin Jacob 3118bc924cfSNithin Dabilpuram static inline uint64_t 3121a5f5ef4SHarman Kalra roc_model_is_cnf10kb_b0(void) 3131a5f5ef4SHarman Kalra { 3141a5f5ef4SHarman Kalra return roc_model->flag & ROC_MODEL_CNF105xxN_B0; 3151a5f5ef4SHarman Kalra } 3161a5f5ef4SHarman Kalra 3171a5f5ef4SHarman Kalra static inline uint64_t 3188bc924cfSNithin Dabilpuram roc_model_is_cn10kb(void) 3198bc924cfSNithin Dabilpuram { 3208bc924cfSNithin Dabilpuram return roc_model->flag & ROC_MODEL_CN103xx; 3218bc924cfSNithin Dabilpuram } 3228bc924cfSNithin Dabilpuram 323b89f023eSTomasz Duszynski static inline bool 324b89f023eSTomasz Duszynski roc_env_is_hw(void) 325b89f023eSTomasz Duszynski { 326b89f023eSTomasz Duszynski return roc_model->flag & ROC_ENV_HW; 327b89f023eSTomasz Duszynski } 328b89f023eSTomasz Duszynski 329b89f023eSTomasz Duszynski static inline bool 330b89f023eSTomasz Duszynski roc_env_is_emulator(void) 331b89f023eSTomasz Duszynski { 332b89f023eSTomasz Duszynski return roc_model->flag & ROC_ENV_EMUL; 333b89f023eSTomasz Duszynski } 334b89f023eSTomasz Duszynski 335b89f023eSTomasz Duszynski static inline bool 336b89f023eSTomasz Duszynski roc_env_is_asim(void) 337b89f023eSTomasz Duszynski { 338b89f023eSTomasz Duszynski return roc_model->flag & ROC_ENV_ASIM; 339b89f023eSTomasz Duszynski } 340b89f023eSTomasz Duszynski 341b89f023eSTomasz Duszynski static inline const char * 342b89f023eSTomasz Duszynski roc_env_get(void) 343b89f023eSTomasz Duszynski { 344b89f023eSTomasz Duszynski return roc_model->env; 345b89f023eSTomasz Duszynski } 346b89f023eSTomasz Duszynski 347014a9e22SJerin Jacob int roc_model_init(struct roc_model *model); 348014a9e22SJerin Jacob 349014a9e22SJerin Jacob #endif 350