xref: /dpdk/drivers/common/cnxk/roc_model.h (revision 62afdd8d493d8f563c053a4afccb3c5acd1acf54)
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