blob: c57f829ed3da964c8ba9887714e2f4b5333e6c8f [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * kal_user_mem.h
41 *
42 * Project:
43 * --------
44 *
45 *
46 * Description:
47 * ------------
48 * This file provides the control buffer size and numbers configuration.
49 *
50 * Author:
51 * -------
52 *
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 * removed!
66 *
67 * removed!
68 * removed!
69 * removed!
70 * removed!
71 *
72 * removed!
73 * removed!
74 * removed!
75 * removed!
76 *
77 * removed!
78 * removed!
79 * removed!
80 * removed!
81 *
82 * removed!
83 * removed!
84 * removed!
85 * removed!
86 *
87 * removed!
88 * removed!
89 * removed!
90 * removed!
91 *
92 * removed!
93 * removed!
94 * removed!
95 * removed!
96 *
97 * removed!
98 * removed!
99 * removed!
100 * removed!
101 *
102 * removed!
103 * removed!
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 * removed!
111 *
112 * removed!
113 * removed!
114 * removed!
115 * removed!
116 *
117 * removed!
118 * removed!
119 * removed!
120 * removed!
121 *
122 * removed!
123 * removed!
124 * removed!
125 * removed!
126 *
127 * removed!
128 * removed!
129 * removed!
130 * removed!
131 *
132 * removed!
133 * removed!
134 * removed!
135 * removed!
136 *
137 * removed!
138 * removed!
139 * removed!
140 * removed!
141 *
142 * removed!
143 * removed!
144 * removed!
145 * removed!
146 *
147 * removed!
148 * removed!
149 * removed!
150 * removed!
151 *
152 * removed!
153 * removed!
154 * removed!
155 *
156 * removed!
157 * removed!
158 * removed!
159 *
160 * removed!
161 * removed!
162 * removed!
163 *
164 * removed!
165 * removed!
166 * removed!
167 *
168 * removed!
169 * removed!
170 * removed!
171 *
172 * removed!
173 * removed!
174 * removed!
175 *
176 * removed!
177 * removed!
178 * removed!
179 *
180 * removed!
181 * removed!
182 * removed!
183 *
184 * removed!
185 * removed!
186 * removed!
187 *
188 * removed!
189 * removed!
190 * removed!
191 *
192 * removed!
193 * removed!
194 * removed!
195 *
196 * removed!
197 * removed!
198 * removed!
199 *
200 *------------------------------------------------------------------------------
201 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
202 *============================================================================
203 ****************************************************************************/
204
205/*********************************************************************
206 (C) _____ (year of first publication) Sasken communication
207 Technologies Limited, All rights reserved.
208* This file provides a template for .c files. This space
209* should be used to describe the file contents
210* Component-specific prefix : xxxx
211*********************************************************************/
212
213#ifndef _KAL_USER_MEM_H
214#define _KAL_USER_MEM_H
215
216#include "kal_general_types.h"
217#include "kal_public_defs.h"
218#include "stack_buff_pool.h"
219
220/**************************Customer config interface Begin********************/
221/*Customer interface I:
222 *
223 * Discription:
224 *
225 * Customer can adjust system memory size here.
226 * This value will be added into total size of system memory.
227 * Define a negative value to shrink(not recommended), positive value to increase.
228 *
229 * Tips:
230 * Customer may increase it if runs out of system memory(E.g
231 * Third party application use heavily KAL API like evshed_create, kal_create_sem,
232 * kal_create_eventgroup that consume system memory more than predefined value).
233 * Customer may also shrink this if want to save some RAM size. However, this
234 * is not recommended.
235 *
236 * See also:
237 * tools\sys_mem_gen.pl
238 *
239 *
240 * Build command :
241 * make c,r custom
242 *
243 *Build command on Modis:
244 * make clean_modis custom
245 * && make remake_modis custom
246 */
247#define CUSTOM_CFG_GLOBAL_MEM_SIZE_IN_BYTES 0
248
249/*Customer interface II:
250 *
251 * Discription:
252 * Customer can adjust event pool number for event scheduler
253 * This value is the actual event pool number
254 *
255 * Tips:
256 * It's rare for customer to adjust this value. However, in case
257 * of runs out of event when using event scheduler, this is the
258 * place for customer to adjust the event number. It's not recommended
259 * to shrink this value.
260 *
261 * Build command:
262 * make sysgen && make c,r config custom
263 *
264 * Build command on Modis:
265 * make sys_mem_gen_modis && make clean_modis config custom
266 * && make remake_modis config custom
267 * */
268
269/*Gen97 originally 120, because IMS feature move to MD from AP, need another 400 for ims_stack task, so become 520*/
270/*ism feature owner York.Li, Nick Wang, Mika Leinonen*/
271#if defined(__CS_SERVICE__) && defined(__PS_SERVICE__)
272#define KAL_MIN_EVSHED_BUFF_NUM 520
273#elif defined(__CS_SERVICE__)
274#define KAL_MIN_EVSHED_BUFF_NUM 40
275#else
276#define KAL_MIN_EVSHED_BUFF_NUM 40
277#endif /* defined(__CS_SERVICE__) && defined(__PS_SERVICE__) */
278
279/*Customer interface III:
280 *
281 * Discription:
282 * Customer can adjust control buffer size here.
283 * This value will be added into total number of control buffer.
284 * Define a negative value to decrease (not recommended ), positive
285 * value to increase.
286 *
287 * Tips:
288 * The control buffer number is well-tuned. It's not recommended to
289 * shrink this value.
290 *
291 * Build command:
292 * make sysgen && make c,r config custom
293 *
294 * Build command on Modis:
295 * make sys_mem_gen_modis && make clean_modis config custom
296 * && make remake_modis config custom
297 *
298 * */
299typedef enum {
300 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE32 = 0,
301 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE64 = 0,
302 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE128 = 0,
303 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE256 = 0,
304 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE512 = 0,
305 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE1024 = 0,
306 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE2048 = 0,
307 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE4096 = 0,
308#if defined(__UMTS_RAT__) || defined(__LTE_RAT__)
309 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE8192 = 0,
310 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE16384 = 0,
311 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE32768 = 0,
312 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE65536 = 0,
313 NUM_CUSTOM_CTRL_BUFF_POOL_SIZE100000 = 0,
314#endif
315} custom_ctrl_num_buff_pool_size;
316/**************************Customer config interface END**********************/
317
318
319/*
320 * NOTICE: The following are pre-defined configration. Cutomer should not
321 * modify here.
322 *
323 * */
324
325
326/*************************KAL private memory config stuff*******************/
327#if defined(__UMTS_RAT__) || defined(__LTE_RAT__)
328#define RPS_CREATED_CTRL_BUFF_POOLS 13
329#else /* __UMTS_RAT__ || __LTE_RAT__ */
330#define RPS_CREATED_CTRL_BUFF_POOLS 8
331#endif /* __UMTS_RAT__ || __LTE_RAT__ */
332
333/* Buffer thresholds expressed in percentage */
334#define FLC_CTRL_BUFF_UPPER_THRSHLD1 (90)
335#define FLC_CTRL_BUFF_UPPER_THRSHLD2 (95)
336
337/*************************************************************************
338 * Type Definitions
339 *************************************************************************/
340/* For performance reason, general buffer pool is allocated for 2^n size */
341typedef enum {
342 CTRL_BUFF_POOL_SIZE32 = 32,
343 CTRL_BUFF_POOL_SIZE64 = 64,
344 CTRL_BUFF_POOL_SIZE128 = 128,
345 CTRL_BUFF_POOL_SIZE256 = 256,
346 CTRL_BUFF_POOL_SIZE512 = 512,
347 CTRL_BUFF_POOL_SIZE1024 = 1024,
348 CTRL_BUFF_POOL_SIZE2048 = 2048,
349 CTRL_BUFF_POOL_SIZE4096 = 4096,
350#if defined(__UMTS_RAT__) || defined(__LTE_RAT__)
351 CTRL_BUFF_POOL_SIZE8192 = 8192,
352 CTRL_BUFF_POOL_SIZE16384 = 16384,
353 CTRL_BUFF_POOL_SIZE32768 = 32768,
354 CTRL_BUFF_POOL_SIZE65536 = 65536,
355 CTRL_BUFF_POOL_SIZE100000 = 100000,
356 CTRL_BUFF_POOL_MAX_BUFF_SIZE = CTRL_BUFF_POOL_SIZE100000
357#else /* __UMTS_RAT__ || __LTE_RAT__ */
358 CTRL_BUFF_POOL_MAX_BUFF_SIZE = CTRL_BUFF_POOL_SIZE4096
359#endif /* __UMTS_RAT__ || __LTE_RAT__ */
360} ctrl_buff_pool_size;
361
362
363#if defined(_SIMULATION) && !defined(__MASE__)
364typedef enum {
365 NUM_CTRL_BUFF_POOL_SIZE32 = 20,
366 NUM_CTRL_BUFF_POOL_SIZE64 = 10,
367 NUM_CTRL_BUFF_POOL_SIZE128 = 10,
368 NUM_CTRL_BUFF_POOL_SIZE256 = 10,
369 NUM_CTRL_BUFF_POOL_SIZE512 = 10,
370 NUM_CTRL_BUFF_POOL_SIZE1024 = 10,
371#if defined(__ESL_COSIM_LTE__)
372 NUM_CTRL_BUFF_POOL_SIZE2048 = 40, //+32
373 NUM_CTRL_BUFF_POOL_SIZE4096 = 19, //+16
374 NUM_CTRL_BUFF_POOL_SIZE8192 = 10, //+8
375 NUM_CTRL_BUFF_POOL_SIZE16384 = 6, //+4
376 NUM_CTRL_BUFF_POOL_SIZE32768 = 3, //+2
377 NUM_CTRL_BUFF_POOL_SIZE65536 = 2, //+1
378 NUM_CTRL_BUFF_POOL_SIZE100000 = 1 //+1
379#else
380 NUM_CTRL_BUFF_POOL_SIZE2048 = 8,
381 NUM_CTRL_BUFF_POOL_SIZE4096 = 3,
382 NUM_CTRL_BUFF_POOL_SIZE8192 = 2,
383 NUM_CTRL_BUFF_POOL_SIZE16384 = 2,
384 NUM_CTRL_BUFF_POOL_SIZE32768 = 1,
385 NUM_CTRL_BUFF_POOL_SIZE65536 = 1,
386 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
387#endif
388} ctrl_num_buff_pool_size;
389#elif defined(__KTEST__) && !defined(KTEST_STATIC_TEST)
390typedef enum {
391 NUM_CTRL_BUFF_POOL_SIZE32 = 20,
392 NUM_CTRL_BUFF_POOL_SIZE64 = 10,
393 NUM_CTRL_BUFF_POOL_SIZE128 = 10,
394 NUM_CTRL_BUFF_POOL_SIZE256 = 10,
395 NUM_CTRL_BUFF_POOL_SIZE512 = 10,
396 NUM_CTRL_BUFF_POOL_SIZE1024 = 10,
397 NUM_CTRL_BUFF_POOL_SIZE2048 = 8,
398 NUM_CTRL_BUFF_POOL_SIZE4096 = 5,
399 NUM_CTRL_BUFF_POOL_SIZE8192 = 5,
400 NUM_CTRL_BUFF_POOL_SIZE16384 = 5,
401 NUM_CTRL_BUFF_POOL_SIZE32768 = 5,
402 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
403 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
404} ctrl_num_buff_pool_size;
405#elif defined(__GEMINI_WCDMA__)
406typedef enum {
407 NUM_CTRL_BUFF_POOL_SIZE32 = 930,
408#if (defined(GEMINI_PLUS_WCDMA) && (GEMINI_PLUS_WCDMA >= 3))
409 NUM_CTRL_BUFF_POOL_SIZE64 = 600,
410#else /*(defined(GEMINI_PLUS_WCDMA) && (GEMINI_PLUS_WCDMA >= 3))*/
411 NUM_CTRL_BUFF_POOL_SIZE64 = 460,
412#endif /*(defined(GEMINI_PLUS_WCDMA) && (GEMINI_PLUS_WCDMA >= 3))*/
413 NUM_CTRL_BUFF_POOL_SIZE128 = 440,
414 NUM_CTRL_BUFF_POOL_SIZE256 = 350,
415#if (defined(GEMINI_PLUS_WCDMA) && (GEMINI_PLUS_WCDMA >= 3))
416 NUM_CTRL_BUFF_POOL_SIZE512 = 110,
417#else /*(defined(GEMINI_PLUS_WCDMA) && (GEMINI_PLUS_WCDMA >= 3))*/
418 NUM_CTRL_BUFF_POOL_SIZE512 = 100,
419#endif /*(defined(GEMINI_PLUS_WCDMA) && (GEMINI_PLUS_WCDMA >= 3))*/
420 NUM_CTRL_BUFF_POOL_SIZE1024 = 65,
421 NUM_CTRL_BUFF_POOL_SIZE2048 = 50,
422 NUM_CTRL_BUFF_POOL_SIZE4096 = 40,
423 NUM_CTRL_BUFF_POOL_SIZE8192 = 16,
424 NUM_CTRL_BUFF_POOL_SIZE16384 = 11,
425 NUM_CTRL_BUFF_POOL_SIZE32768 = 11,
426#if (GEMINI_PLUS >= 3)
427 NUM_CTRL_BUFF_POOL_SIZE65536 = 7,
428#else
429 NUM_CTRL_BUFF_POOL_SIZE65536 = 10,
430#endif
431#if defined(__MTK_TARGET__)
432 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
433#else
434 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
435#endif
436} ctrl_num_buff_pool_size;
437#elif defined(__LTE_RAT__) && defined(__UMTS_RAT__)
438typedef enum {
439 NUM_CTRL_BUFF_POOL_SIZE32 = 930,
440 NUM_CTRL_BUFF_POOL_SIZE64 = 450,
441 NUM_CTRL_BUFF_POOL_SIZE128 = 300,
442 NUM_CTRL_BUFF_POOL_SIZE256 = 350,
443 NUM_CTRL_BUFF_POOL_SIZE512 = 85,
444 NUM_CTRL_BUFF_POOL_SIZE1024 = 65,
445 NUM_CTRL_BUFF_POOL_SIZE2048 = 50,
446 NUM_CTRL_BUFF_POOL_SIZE4096 = 15,
447 NUM_CTRL_BUFF_POOL_SIZE8192 = 13,
448 NUM_CTRL_BUFF_POOL_SIZE16384 = 10,
449 NUM_CTRL_BUFF_POOL_SIZE32768 = 6,
450 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
451#if defined(__MTK_TARGET__)
452 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
453#else
454 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
455#endif
456} ctrl_num_buff_pool_size;
457#elif defined(__LTE_RAT__)
458typedef enum {
459 NUM_CTRL_BUFF_POOL_SIZE32 = 635,
460 NUM_CTRL_BUFF_POOL_SIZE64 = 290,
461 NUM_CTRL_BUFF_POOL_SIZE128 = 120,
462 NUM_CTRL_BUFF_POOL_SIZE256 = 160,
463 NUM_CTRL_BUFF_POOL_SIZE512 = 36,
464 NUM_CTRL_BUFF_POOL_SIZE1024 = 40,
465 NUM_CTRL_BUFF_POOL_SIZE2048 = 50,
466 NUM_CTRL_BUFF_POOL_SIZE4096 = 10,
467 NUM_CTRL_BUFF_POOL_SIZE8192 = 10,
468 NUM_CTRL_BUFF_POOL_SIZE16384 = 7,
469 NUM_CTRL_BUFF_POOL_SIZE32768 = 5,
470 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
471#if defined(__MTK_TARGET__)
472 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
473#else
474 NUM_CTRL_BUFF_POOL_SIZE100000 = 5 // for MoDIS Only - 3G ASN.1 CODEC usage
475#endif
476} ctrl_num_buff_pool_size;
477
478#elif defined(__UMTS_RAT__)
479
480#if defined(__UMTS_TDD128_MODE__)
481#if defined(__UMTS_R5__) /* __UMTS_R5__ */
482#if defined(__GEMINI__)
483typedef enum {
484 NUM_CTRL_BUFF_POOL_SIZE32 = 565,
485 NUM_CTRL_BUFF_POOL_SIZE64 = 281,
486 NUM_CTRL_BUFF_POOL_SIZE128 = 197,
487 NUM_CTRL_BUFF_POOL_SIZE256 = 159,
488 NUM_CTRL_BUFF_POOL_SIZE512 = 98,
489 NUM_CTRL_BUFF_POOL_SIZE1024 = 40,
490 NUM_CTRL_BUFF_POOL_SIZE2048 = 25,
491 NUM_CTRL_BUFF_POOL_SIZE4096 = 16,
492 NUM_CTRL_BUFF_POOL_SIZE8192 = 11,
493 NUM_CTRL_BUFF_POOL_SIZE16384 = 9,
494 NUM_CTRL_BUFF_POOL_SIZE32768 = 5,
495 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
496#if defined(__MTK_TARGET__)
497 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
498#else
499 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
500#endif
501} ctrl_num_buff_pool_size;
502#else
503typedef enum {
504 NUM_CTRL_BUFF_POOL_SIZE32 = 448,
505 NUM_CTRL_BUFF_POOL_SIZE64 = 277,
506 NUM_CTRL_BUFF_POOL_SIZE128 = 197,
507 NUM_CTRL_BUFF_POOL_SIZE256 = 159,
508 NUM_CTRL_BUFF_POOL_SIZE512 = 98,
509 NUM_CTRL_BUFF_POOL_SIZE1024 = 38,
510 NUM_CTRL_BUFF_POOL_SIZE2048 = 22,
511 NUM_CTRL_BUFF_POOL_SIZE4096 = 16,
512 NUM_CTRL_BUFF_POOL_SIZE8192 = 11,
513 NUM_CTRL_BUFF_POOL_SIZE16384 = 9,
514 NUM_CTRL_BUFF_POOL_SIZE32768 = 5,
515 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
516#if defined(__MTK_TARGET__)
517 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
518#else
519 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
520#endif
521} ctrl_num_buff_pool_size;
522#endif
523#endif /* __UMTS_R5__ */
524#else /* __UMTS_TDD128_MODE__ */
525#if defined(__UMTS_R7__) /*__UMTS_R7__*/
526typedef enum {
527 NUM_CTRL_BUFF_POOL_SIZE32 = 920,
528 NUM_CTRL_BUFF_POOL_SIZE64 = 390,
529 NUM_CTRL_BUFF_POOL_SIZE128 = 230,
530 NUM_CTRL_BUFF_POOL_SIZE256 = 170,
531 NUM_CTRL_BUFF_POOL_SIZE512 = 85,
532 NUM_CTRL_BUFF_POOL_SIZE1024 = 55,
533 NUM_CTRL_BUFF_POOL_SIZE2048 = 30,
534 NUM_CTRL_BUFF_POOL_SIZE4096 = 15,
535 NUM_CTRL_BUFF_POOL_SIZE8192 = 12,
536 NUM_CTRL_BUFF_POOL_SIZE16384 = 10,
537 NUM_CTRL_BUFF_POOL_SIZE32768 = 6,
538 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
539#if defined(__MTK_TARGET__)
540 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
541#else
542 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
543#endif
544} ctrl_num_buff_pool_size;
545#elif defined(__UMTS_R5__) /* __UMTS_R5__ */
546typedef enum {
547 NUM_CTRL_BUFF_POOL_SIZE32 = 831,
548 NUM_CTRL_BUFF_POOL_SIZE64 = 285,
549 NUM_CTRL_BUFF_POOL_SIZE128 = 218,
550#if defined(__GEMINI__)
551 NUM_CTRL_BUFF_POOL_SIZE256 = 185,
552#else
553 NUM_CTRL_BUFF_POOL_SIZE256 = 155,
554#endif /* __GEMINI__ */
555 NUM_CTRL_BUFF_POOL_SIZE512 = 75,
556 NUM_CTRL_BUFF_POOL_SIZE1024 = 43,
557 NUM_CTRL_BUFF_POOL_SIZE2048 = 26,
558 NUM_CTRL_BUFF_POOL_SIZE4096 = 15,
559 NUM_CTRL_BUFF_POOL_SIZE8192 = 12,
560 NUM_CTRL_BUFF_POOL_SIZE16384 = 10,
561 NUM_CTRL_BUFF_POOL_SIZE32768 = 5,
562 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
563#if defined(__MTK_TARGET__)
564 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
565#else
566 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
567#endif
568} ctrl_num_buff_pool_size;
569#else /* __UMTS_R5__ */
570typedef enum {
571 NUM_CTRL_BUFF_POOL_SIZE32 = 763,
572 NUM_CTRL_BUFF_POOL_SIZE64 = 339,
573 NUM_CTRL_BUFF_POOL_SIZE128 = 198,
574 NUM_CTRL_BUFF_POOL_SIZE256 = 145,
575 NUM_CTRL_BUFF_POOL_SIZE512 = 60,
576 NUM_CTRL_BUFF_POOL_SIZE1024 = 52,
577 NUM_CTRL_BUFF_POOL_SIZE2048 = 22,
578 NUM_CTRL_BUFF_POOL_SIZE4096 = 15,
579 NUM_CTRL_BUFF_POOL_SIZE8192 = 15,
580 NUM_CTRL_BUFF_POOL_SIZE16384 = 6,
581 NUM_CTRL_BUFF_POOL_SIZE32768 = 5,
582 NUM_CTRL_BUFF_POOL_SIZE65536 = 5,
583#if defined(__MTK_TARGET__)
584 NUM_CTRL_BUFF_POOL_SIZE100000 = 0
585#else
586 NUM_CTRL_BUFF_POOL_SIZE100000 = 5
587#endif
588} ctrl_num_buff_pool_size;
589#endif /* __UMTS_R5__ */
590#endif /* __UMTS_TDD128_MODE__ */
591
592#elif defined(__CS_SERVICE__) && defined(__PS_SERVICE__) /* __UMTS_RAT__ */
593
594/* GPRS Class B Solution */
595#if (GEMINI_PLUS > 2)
596typedef enum {
597 NUM_CTRL_BUFF_POOL_SIZE32 = 280,
598 NUM_CTRL_BUFF_POOL_SIZE64 = 76,
599 NUM_CTRL_BUFF_POOL_SIZE128 = 61,
600 NUM_CTRL_BUFF_POOL_SIZE256 = 46,
601 NUM_CTRL_BUFF_POOL_SIZE512 = 41,
602 NUM_CTRL_BUFF_POOL_SIZE1024 = 16,
603 NUM_CTRL_BUFF_POOL_SIZE2048 = 15,
604 NUM_CTRL_BUFF_POOL_SIZE4096 = 1
605} ctrl_num_buff_pool_size;
606#elif defined(__GEMINI__)
607typedef enum {
608 NUM_CTRL_BUFF_POOL_SIZE32 = 265,
609 NUM_CTRL_BUFF_POOL_SIZE64 = 76,
610 NUM_CTRL_BUFF_POOL_SIZE128 = 45,
611 NUM_CTRL_BUFF_POOL_SIZE256 = 44,
612 NUM_CTRL_BUFF_POOL_SIZE512 = 21,
613 NUM_CTRL_BUFF_POOL_SIZE1024 = 16,
614 NUM_CTRL_BUFF_POOL_SIZE2048 = 11,
615 NUM_CTRL_BUFF_POOL_SIZE4096 = 5
616} ctrl_num_buff_pool_size;
617#else /* defined(__GEMINI__) */
618typedef enum {
619 NUM_CTRL_BUFF_POOL_SIZE32 = 149,
620 NUM_CTRL_BUFF_POOL_SIZE64 = 72,
621 NUM_CTRL_BUFF_POOL_SIZE128 = 45,
622 NUM_CTRL_BUFF_POOL_SIZE256 = 44,
623 NUM_CTRL_BUFF_POOL_SIZE512 = 21,
624 NUM_CTRL_BUFF_POOL_SIZE1024 = 16,
625 NUM_CTRL_BUFF_POOL_SIZE2048 = 8,
626 NUM_CTRL_BUFF_POOL_SIZE4096 = 1
627} ctrl_num_buff_pool_size;
628#endif /* defined(__GEMINI__) */
629
630#elif defined(__CS_SERVICE__) /* __UMTS_RAT__ */
631
632#if defined(IC_BURNIN_TEST)
633
634/* Reduce the No. of buffer to reduce memory consumption. */
635
636typedef enum {
637 NUM_CTRL_BUFF_POOL_SIZE32 = 10,
638 NUM_CTRL_BUFF_POOL_SIZE64 = 5,
639 NUM_CTRL_BUFF_POOL_SIZE128 = 5,
640 NUM_CTRL_BUFF_POOL_SIZE256 = 5,
641 NUM_CTRL_BUFF_POOL_SIZE512 = 2,
642 NUM_CTRL_BUFF_POOL_SIZE1024 = 5,
643 NUM_CTRL_BUFF_POOL_SIZE2048 = 3,
644 NUM_CTRL_BUFF_POOL_SIZE4096 = 1
645} ctrl_num_buff_pool_size;
646
647#else /* LOW_COST_SUPPORT (default configuration for BASIC, UDVT load) */
648
649typedef enum {
650 NUM_CTRL_BUFF_POOL_SIZE32 = 63,
651 NUM_CTRL_BUFF_POOL_SIZE64 = 20,
652 NUM_CTRL_BUFF_POOL_SIZE128 = 30,
653 NUM_CTRL_BUFF_POOL_SIZE256 = 17,
654 NUM_CTRL_BUFF_POOL_SIZE512 = 8,
655 NUM_CTRL_BUFF_POOL_SIZE1024 = 8,
656 NUM_CTRL_BUFF_POOL_SIZE2048 = 4,
657 NUM_CTRL_BUFF_POOL_SIZE4096 = 0
658} ctrl_num_buff_pool_size;
659
660#endif /* LOW_COST_SUPPORT */
661
662#else
663
664typedef enum {
665 NUM_CTRL_BUFF_POOL_SIZE32 = 63,
666 NUM_CTRL_BUFF_POOL_SIZE64 = 20,
667 NUM_CTRL_BUFF_POOL_SIZE128 = 30,
668 NUM_CTRL_BUFF_POOL_SIZE256 = 17,
669 NUM_CTRL_BUFF_POOL_SIZE512 = 8,
670 NUM_CTRL_BUFF_POOL_SIZE1024 = 8,
671 NUM_CTRL_BUFF_POOL_SIZE2048 = 4,
672 NUM_CTRL_BUFF_POOL_SIZE4096 = 0
673} ctrl_num_buff_pool_size;
674
675#endif /* __UMTS_RAT__ */
676
677/*************************************************************************
678 * Exported Global Variables
679 *************************************************************************/
680extern buff_pool_info_struct ctrl_buff_pool_info_g[RPS_CREATED_CTRL_BUFF_POOLS];
681
682/*************************************************************************
683 * Exported Function Prototypes
684 *************************************************************************/
685extern void config_ctrl_buff_info(void);
686#endif /*_KAL_USER_MEM_H*/