FreeCalypso > hg > freecalypso-sw
diff gsm-fw/L1/include/l1_tabs.h @ 530:25a7fe25864c
gsm-fw/L1/include: switch to LoCosto versions of all header files
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Fri, 01 Aug 2014 16:38:35 +0000 |
parents | afceeeb2cba1 |
children |
line wrap: on
line diff
--- a/gsm-fw/L1/include/l1_tabs.h Tue Jul 15 22:19:53 2014 +0000 +++ b/gsm-fw/L1/include/l1_tabs.h Fri Aug 01 16:38:35 2014 +0000 @@ -11,547 +11,563 @@ * This file contains the miscelaneous ROM tables. ***********************************************************/ -#ifdef L1_ASYNC_C - /*-----------------------------------------------------------------*/ - /* Idle Tasks info. (Paging position, extended Paging position...) */ - /*-----------------------------------------------------------------*/ - /* REM: */ - /* The "working area" field gives the starting position of an area */ - /* it will be used for neighbour: - FB search, */ - /* - SB reading, */ - /* The value given for each parameter set takes into account the */ - /* size of the "FB search" task and the CBCH task. */ - /*-----------------------------------------------------------------*/ - // NP or EP task size: 1 + 4 + 1 = 6. - // BCCHS task size: 1 + 4 + 1 = 6. - // FB task size: 1 + 12 + 1 = 14. --+-- FB + SB task take 15 TDMA (pipeline overlay). - // SB task size: 1 + 2 + 1 = 4. --+ - // CNF, SB task size: 1 + 2 + 1 = 4. - // BC (Broad. Channel): 1 + 4 + 1 = 6 - - const T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)] = - // BS_CCCH_SDCCH_COMB = False, BCCH not combined. - { - // BS_AG_BLKS_RES = 0. - // ------------------- - // Paging, Ext Paging - { CCCH_0, CCCH_2 }, // Paging Block Index = 0. - { CCCH_1, CCCH_3 }, // Paging Block Index = 1. - { CCCH_2, CCCH_4 }, // Paging Block Index = 2. - { CCCH_3, CCCH_5 }, // Paging Block Index = 3. - { CCCH_4, CCCH_6 }, // Paging Block Index = 4. - { CCCH_5, CCCH_7 }, // Paging Block Index = 5. - { CCCH_6, CCCH_8 }, // Paging Block Index = 6. - { CCCH_7, CCCH_0 }, // Paging Block Index = 7. - { CCCH_8, CCCH_1 }, // Paging Block Index = 8. +#ifndef L1_TABS_H +#define L1_TABS_H - // BS_AG_BLKS_RES = 1. - // ------------------- - // Paging, Ext Paging - { CCCH_1, CCCH_3 }, // Paging Block Index = 0. - { CCCH_2, CCCH_4 }, // Paging Block Index = 1. - { CCCH_3, CCCH_5 }, // Paging Block Index = 2. - { CCCH_4, CCCH_6 }, // Paging Block Index = 3. - { CCCH_5, CCCH_7 }, // Paging Block Index = 4. - { CCCH_6, CCCH_8 }, // Paging Block Index = 5. - { CCCH_7, CCCH_1 }, // Paging Block Index = 6. - { CCCH_8, CCCH_2 }, // Paging Block Index = 7. - { NULL, NULL }, // Paging Block Index = 8. + #ifdef L1_ASYNC_C + /*-----------------------------------------------------------------*/ + /* Idle Tasks info. (Paging position, extended Paging position...) */ + /*-----------------------------------------------------------------*/ + /* REM: */ + /* The "working area" field gives the starting position of an area */ + /* it will be used for neighbour: - FB search, */ + /* - SB reading, */ + /* The value given for each parameter set takes into account the */ + /* size of the "FB search" task and the CBCH task. */ + /*-----------------------------------------------------------------*/ + // NP or EP task size: 1 + 4 + 1 = 6. + // BCCHS task size: 1 + 4 + 1 = 6. + // FB task size: 1 + 12 + 1 = 14. --+-- FB + SB task take 15 TDMA (pipeline overlay). + // SB task size: 1 + 2 + 1 = 4. --+ + // CNF, SB task size: 1 + 2 + 1 = 4. + // BC (Broad. Channel): 1 + 4 + 1 = 6 + + const T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)] = + // BS_CCCH_SDCCH_COMB = False, BCCH not combined. + { + // BS_AG_BLKS_RES = 0. + // ------------------- + // Paging, Ext Paging + { CCCH_0, CCCH_2 }, // Paging Block Index = 0. + { CCCH_1, CCCH_3 }, // Paging Block Index = 1. + { CCCH_2, CCCH_4 }, // Paging Block Index = 2. + { CCCH_3, CCCH_5 }, // Paging Block Index = 3. + { CCCH_4, CCCH_6 }, // Paging Block Index = 4. + { CCCH_5, CCCH_7 }, // Paging Block Index = 5. + { CCCH_6, CCCH_8 }, // Paging Block Index = 6. + { CCCH_7, CCCH_0 }, // Paging Block Index = 7. + { CCCH_8, CCCH_1 }, // Paging Block Index = 8. + + // BS_AG_BLKS_RES = 1. + // ------------------- + // Paging, Ext Paging + { CCCH_1, CCCH_3 }, // Paging Block Index = 0. + { CCCH_2, CCCH_4 }, // Paging Block Index = 1. + { CCCH_3, CCCH_5 }, // Paging Block Index = 2. + { CCCH_4, CCCH_6 }, // Paging Block Index = 3. + { CCCH_5, CCCH_7 }, // Paging Block Index = 4. + { CCCH_6, CCCH_8 }, // Paging Block Index = 5. + { CCCH_7, CCCH_1 }, // Paging Block Index = 6. + { CCCH_8, CCCH_2 }, // Paging Block Index = 7. + { NULL, NULL }, // Paging Block Index = 8. - // BS_AG_BLKS_RES = 2. - // ------------------- - // Paging, Ext Paging - { CCCH_2, CCCH_4 }, // Paging Block Index = 0. - { CCCH_3, CCCH_5 }, // Paging Block Index = 1. - { CCCH_4, CCCH_6 }, // Paging Block Index = 2. - { CCCH_5, CCCH_7 }, // Paging Block Index = 3. - { CCCH_6, CCCH_8 }, // Paging Block Index = 4. - { CCCH_7, CCCH_2 }, // Paging Block Index = 5. - { CCCH_8, CCCH_3 }, // Paging Block Index = 6. - { NULL, NULL }, // Paging Block Index = 7. - { NULL, NULL }, // Paging Block Index = 8. + // BS_AG_BLKS_RES = 2. + // ------------------- + // Paging, Ext Paging + { CCCH_2, CCCH_4 }, // Paging Block Index = 0. + { CCCH_3, CCCH_5 }, // Paging Block Index = 1. + { CCCH_4, CCCH_6 }, // Paging Block Index = 2. + { CCCH_5, CCCH_7 }, // Paging Block Index = 3. + { CCCH_6, CCCH_8 }, // Paging Block Index = 4. + { CCCH_7, CCCH_2 }, // Paging Block Index = 5. + { CCCH_8, CCCH_3 }, // Paging Block Index = 6. + { NULL, NULL }, // Paging Block Index = 7. + { NULL, NULL }, // Paging Block Index = 8. - // BS_AG_BLKS_RES = 3. - // ------------------- - // Paging, Ext Paging, - { CCCH_3, CCCH_5 }, // Paging Block Index = 0. - { CCCH_4, CCCH_6 }, // Paging Block Index = 1. - { CCCH_5, CCCH_7 }, // Paging Block Index = 2. - { CCCH_6, CCCH_8 }, // Paging Block Index = 3. - { CCCH_7, CCCH_3 }, // Paging Block Index = 4. - { CCCH_8, CCCH_4 }, // Paging Block Index = 5. - { NULL, NULL }, // Paging Block Index = 6. - { NULL, NULL }, // Paging Block Index = 7. - { NULL, NULL }, // Paging Block Index = 8. + // BS_AG_BLKS_RES = 3. + // ------------------- + // Paging, Ext Paging, + { CCCH_3, CCCH_5 }, // Paging Block Index = 0. + { CCCH_4, CCCH_6 }, // Paging Block Index = 1. + { CCCH_5, CCCH_7 }, // Paging Block Index = 2. + { CCCH_6, CCCH_8 }, // Paging Block Index = 3. + { CCCH_7, CCCH_3 }, // Paging Block Index = 4. + { CCCH_8, CCCH_4 }, // Paging Block Index = 5. + { NULL, NULL }, // Paging Block Index = 6. + { NULL, NULL }, // Paging Block Index = 7. + { NULL, NULL }, // Paging Block Index = 8. - // BS_AG_BLKS_RES = 4. - // ------------------- - // Paging, Ext Paging - { CCCH_4, CCCH_6 }, // Paging Block Index = 0. - { CCCH_5, CCCH_7 }, // Paging Block Index = 1. - { CCCH_6, CCCH_8 }, // Paging Block Index = 2. - { CCCH_7, CCCH_4 }, // Paging Block Index = 3. - { CCCH_8, CCCH_5 }, // Paging Block Index = 4. - { NULL, NULL }, // Paging Block Index = 5. - { NULL, NULL }, // Paging Block Index = 6. - { NULL, NULL }, // Paging Block Index = 7. - { NULL, NULL }, // Paging Block Index = 8. + // BS_AG_BLKS_RES = 4. + // ------------------- + // Paging, Ext Paging + { CCCH_4, CCCH_6 }, // Paging Block Index = 0. + { CCCH_5, CCCH_7 }, // Paging Block Index = 1. + { CCCH_6, CCCH_8 }, // Paging Block Index = 2. + { CCCH_7, CCCH_4 }, // Paging Block Index = 3. + { CCCH_8, CCCH_5 }, // Paging Block Index = 4. + { NULL, NULL }, // Paging Block Index = 5. + { NULL, NULL }, // Paging Block Index = 6. + { NULL, NULL }, // Paging Block Index = 7. + { NULL, NULL }, // Paging Block Index = 8. - // BS_AG_BLKS_RES = 5. - // ------------------- - // Paging, Ext Paging - { CCCH_5, CCCH_7 }, // Paging Block Index = 0. - { CCCH_6, CCCH_8 }, // Paging Block Index = 1. - { CCCH_7, CCCH_5 }, // Paging Block Index = 2. - { CCCH_8, CCCH_6 }, // Paging Block Index = 3. - { NULL, NULL }, // Paging Block Index = 4. - { NULL, NULL }, // Paging Block Index = 5. - { NULL, NULL }, // Paging Block Index = 6. - { NULL, NULL }, // Paging Block Index = 7. - { NULL, NULL }, // Paging Block Index = 8. + // BS_AG_BLKS_RES = 5. + // ------------------- + // Paging, Ext Paging + { CCCH_5, CCCH_7 }, // Paging Block Index = 0. + { CCCH_6, CCCH_8 }, // Paging Block Index = 1. + { CCCH_7, CCCH_5 }, // Paging Block Index = 2. + { CCCH_8, CCCH_6 }, // Paging Block Index = 3. + { NULL, NULL }, // Paging Block Index = 4. + { NULL, NULL }, // Paging Block Index = 5. + { NULL, NULL }, // Paging Block Index = 6. + { NULL, NULL }, // Paging Block Index = 7. + { NULL, NULL }, // Paging Block Index = 8. - // BS_AG_BLKS_RES = 6. - // ------------------- - // Paging, Ext Paging, - { CCCH_6, CCCH_8 }, // Paging Block Index = 0. - { CCCH_7, CCCH_6 }, // Paging Block Index = 1. - { CCCH_8, CCCH_7 }, // Paging Block Index = 2. - { NULL, NULL }, // Paging Block Index = 3. - { NULL, NULL }, // Paging Block Index = 4. - { NULL, NULL }, // Paging Block Index = 5. - { NULL, NULL }, // Paging Block Index = 6. - { NULL, NULL }, // Paging Block Index = 7. - { NULL, NULL }, // Paging Block Index = 8. + // BS_AG_BLKS_RES = 6. + // ------------------- + // Paging, Ext Paging, + { CCCH_6, CCCH_8 }, // Paging Block Index = 0. + { CCCH_7, CCCH_6 }, // Paging Block Index = 1. + { CCCH_8, CCCH_7 }, // Paging Block Index = 2. + { NULL, NULL }, // Paging Block Index = 3. + { NULL, NULL }, // Paging Block Index = 4. + { NULL, NULL }, // Paging Block Index = 5. + { NULL, NULL }, // Paging Block Index = 6. + { NULL, NULL }, // Paging Block Index = 7. + { NULL, NULL }, // Paging Block Index = 8. - // BS_AG_BLKS_RES = 7. - // ------------------- - // Paging, Ext Paging - { CCCH_7, CCCH_7 }, // Paging Block Index = 0. - { CCCH_8, CCCH_8 }, // Paging Block Index = 1. - { NULL, NULL }, // Paging Block Index = 2. - { NULL, NULL }, // Paging Block Index = 3. - { NULL, NULL }, // Paging Block Index = 4. - { NULL, NULL }, // Paging Block Index = 5. - { NULL, NULL }, // Paging Block Index = 6. - { NULL, NULL }, // Paging Block Index = 7. - { NULL, NULL } // Paging Block Index = 8. - }; + // BS_AG_BLKS_RES = 7. + // ------------------- + // Paging, Ext Paging + { CCCH_7, CCCH_7 }, // Paging Block Index = 0. + { CCCH_8, CCCH_8 }, // Paging Block Index = 1. + { NULL, NULL }, // Paging Block Index = 2. + { NULL, NULL }, // Paging Block Index = 3. + { NULL, NULL }, // Paging Block Index = 4. + { NULL, NULL }, // Paging Block Index = 5. + { NULL, NULL }, // Paging Block Index = 6. + { NULL, NULL }, // Paging Block Index = 7. + { NULL, NULL } // Paging Block Index = 8. + }; - const T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)] = - // BS_CCCH_SDCCH_COMB = TRUE, BCCH combined. - { - // BS_AG_BLKS_RES = 0. - // ------------------- - // Paging, Ext Paging, offset, working_area - { CCCH_0, CCCH_2 }, // Paging Block Index = 0. - { CCCH_1, CCCH_0 }, // Paging Block Index = 1. - { CCCH_2, CCCH_1 }, // Paging Block Index = 2. + const T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)] = + // BS_CCCH_SDCCH_COMB = TRUE, BCCH combined. + { + // BS_AG_BLKS_RES = 0. + // ------------------- + // Paging, Ext Paging, offset, working_area + { CCCH_0, CCCH_2 }, // Paging Block Index = 0. + { CCCH_1, CCCH_0 }, // Paging Block Index = 1. + { CCCH_2, CCCH_1 }, // Paging Block Index = 2. - // BS_AG_BLKS_RES = 1. - // ------------------- - // Paging, Ext Paging, offset, working_area - { CCCH_1, CCCH_1 }, // Paging Block Index = 0. - { CCCH_2, CCCH_2 }, // Paging Block Index = 1. - { NULL, NULL }, // Paging Block Index = 2. + // BS_AG_BLKS_RES = 1. + // ------------------- + // Paging, Ext Paging, offset, working_area + { CCCH_1, CCCH_1 }, // Paging Block Index = 0. + { CCCH_2, CCCH_2 }, // Paging Block Index = 1. + { NULL, NULL }, // Paging Block Index = 2. - // BS_AG_BLKS_RES = 2. - // ------------------- - // Paging, Ext Paging, offset, working_area - { CCCH_2, CCCH_2 }, // Paging Block Index = 0. - { NULL, NULL }, // Paging Block Index = 1. - { NULL, NULL } // Paging Block Index = 2. - }; + // BS_AG_BLKS_RES = 2. + // ------------------- + // Paging, Ext Paging, offset, working_area + { CCCH_2, CCCH_2 }, // Paging Block Index = 0. + { NULL, NULL }, // Paging Block Index = 1. + { NULL, NULL } // Paging Block Index = 2. + }; - - /*-------------------------------------*/ - /* Table giving the number of Paging */ - /* blocks in a MF51. */ - /* (called "N div BS_PA_MFRMS" in */ - /* GSM05.02, Page 21). */ - /*-------------------------------------*/ + + /*-------------------------------------*/ + /* Table giving the number of Paging */ + /* blocks in a MF51. */ + /* (called "N div BS_PA_MFRMS" in */ + /* GSM05.02, Page 21). */ + /*-------------------------------------*/ - // BS_CCCH_SDCCH_COMB = False, BCCH not combined. - const UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)] = - { - 9, // BS_AG_BLKS_RES = 0. - 8, // BS_AG_BLKS_RES = 1. - 7, // BS_AG_BLKS_RES = 2. - 6, // BS_AG_BLKS_RES = 3. - 5, // BS_AG_BLKS_RES = 4. - 4, // BS_AG_BLKS_RES = 5. - 3, // BS_AG_BLKS_RES = 6. - 2 // BS_AG_BLKS_RES = 7. - }; + // BS_CCCH_SDCCH_COMB = False, BCCH not combined. + const UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)] = + { + 9, // BS_AG_BLKS_RES = 0. + 8, // BS_AG_BLKS_RES = 1. + 7, // BS_AG_BLKS_RES = 2. + 6, // BS_AG_BLKS_RES = 3. + 5, // BS_AG_BLKS_RES = 4. + 4, // BS_AG_BLKS_RES = 5. + 3, // BS_AG_BLKS_RES = 6. + 2 // BS_AG_BLKS_RES = 7. + }; - // BS_CCCH_SDCCH_COMB = True, BCCH combined. - const UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)] = - { - 3, // BS_AG_BLKS_RES = 0. - 2, // BS_AG_BLKS_RES = 1. - 1 // BS_AG_BLKS_RES = 2. - }; + // BS_CCCH_SDCCH_COMB = True, BCCH combined. + const UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)] = + { + 3, // BS_AG_BLKS_RES = 0. + 2, // BS_AG_BLKS_RES = 1. + 1 // BS_AG_BLKS_RES = 2. + }; - // Initial value for Downlink Signalling failure Counter (DSC). - const UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-1] = - { - 45, // BS_PA_MFRMS = 2. - 30, // BS_PA_MFRMS = 3. - 23, // BS_PA_MFRMS = 4. - 18, // BS_PA_MFRMS = 5. - 15, // BS_PA_MFRMS = 6. - 13, // BS_PA_MFRMS = 7. - 11, // BS_PA_MFRMS = 8. - 10 // BS_PA_MFRMS = 9. - }; + // Initial value for Downlink Signalling failure Counter (DSC). + const UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-1] = + { + 45, // BS_PA_MFRMS = 2. + 30, // BS_PA_MFRMS = 3. + 23, // BS_PA_MFRMS = 4. + 18, // BS_PA_MFRMS = 5. + 15, // BS_PA_MFRMS = 6. + 13, // BS_PA_MFRMS = 7. + 11, // BS_PA_MFRMS = 8. + 10 // BS_PA_MFRMS = 9. + }; - // REM: 2nd block of SDCCH is always at the same position as the first block - // but 1 mf51 later. - // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks). - // Here is given the area starting position. This position is chosen - // to allow the equations for SBCNF51 occurence as it is in the l1s - // scheduler (the area do not overlap the end of 102 multiframe - // structure). - // Table for SDCCH description, Down Link & Up link, Not combined case. - const T_SDCCH_DESC SDCCH_DESC_NCOMB[8] = - { - // "dl_D" , "dl_A" , "ul_D" , "ul_A". , "monit. area" - { 51 - 12 , 32 - 12 , 15 - 12 , 47 - 12 , 70 - 12 }, // SDCCH, D0 - { 55 - 12 , 36 - 12 , 19 - 12 , 51 - 12 , 74 - 12 }, // SDCCH, D1 - { 59 - 12 , 40 - 12 , 23 - 12 , 55 - 12 , 78 - 12 }, // SDCCH, D2 - { 12 - 12 , 44 - 12 , 27 - 12 , 59 - 12 , 82 - 12 }, // SDCCH, D3 - { 16 - 12 , 83 - 12 , 31 - 12 , 98 - 12 , 35 - 12 }, // SDCCH, D4 - { 20 - 12 , 87 - 12 , 35 - 12 , 102 - 12 , 39 - 12 }, // SDCCH, D5 - { 24 - 12 , 91 - 12 , 39 - 12 , 4 - 12 + 102 , 43 - 12 }, // SDCCH, D6 - { 28 - 12 , 95 - 12 , 43 - 12 , 8 - 12 + 102 , 47 - 12 } // SDCCH, D7 - }; + // REM: 2nd block of SDCCH is always at the same position as the first block + // but 1 mf51 later. + // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks). + // Here is given the area starting position. This position is chosen + // to allow the equations for SBCNF51 occurence as it is in the l1s + // scheduler (the area do not overlap the end of 102 multiframe + // structure). + // Table for SDCCH description, Down Link & Up link, Not combined case. + const T_SDCCH_DESC SDCCH_DESC_NCOMB[8] = + { + // "dl_D" , "dl_A" , "ul_D" , "ul_A". , "monit. area" + { 51 - 12 , 32 - 12 , 15 - 12 , 47 - 12 , 70 - 12 }, // SDCCH, D0 + { 55 - 12 , 36 - 12 , 19 - 12 , 51 - 12 , 74 - 12 }, // SDCCH, D1 + { 59 - 12 , 40 - 12 , 23 - 12 , 55 - 12 , 78 - 12 }, // SDCCH, D2 + { 12 - 12 , 44 - 12 , 27 - 12 , 59 - 12 , 82 - 12 }, // SDCCH, D3 + { 16 - 12 , 83 - 12 , 31 - 12 , 98 - 12 , 35 - 12 }, // SDCCH, D4 + { 20 - 12 , 87 - 12 , 35 - 12 , 102 - 12 , 39 - 12 }, // SDCCH, D5 + { 24 - 12 , 91 - 12 , 39 - 12 , 4 - 12 + 102 , 43 - 12 }, // SDCCH, D6 + { 28 - 12 , 95 - 12 , 43 - 12 , 8 - 12 + 102 , 47 - 12 } // SDCCH, D7 + }; - // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks). - // Here is given the area starting position. This position is chosen - // to allow the equations for SBCNF51 occurence as it is in the l1s - // scheduler (the area do not overlap the end of 102 multiframe - // structure). - // Table for SDCCH description, Down Link & Up link, Combined case. - const T_SDCCH_DESC SDCCH_DESC_COMB[4] = - { - // "dl_D" , "dl_A" , "ul_D" , "ul_A". , "monit. area" - { 73 - 37 , 42 - 37 , 37 - 37 , 57 - 37 , 92 - 37 }, // SDCCH, D0 - { 77 - 37 , 46 - 37 , 41 - 37 , 61 - 37 , 96 - 37 }, // SDCCH, D1 - { 83 - 37 , 93 - 37 , 47 - 37 , 6 - 37 + 102 , 51 - 37 }, // SDCCH, D2 - { 87 - 37 , 97 - 37 , 51 - 37 , 10 - 37 + 102 , 55 - 37 } // SDCCH, D3 - }; + // REM: monitoring during SDCCH used a fixe area (FB51/SB51/SBCNF51 tasks). + // Here is given the area starting position. This position is chosen + // to allow the equations for SBCNF51 occurence as it is in the l1s + // scheduler (the area do not overlap the end of 102 multiframe + // structure). + // Table for SDCCH description, Down Link & Up link, Combined case. + const T_SDCCH_DESC SDCCH_DESC_COMB[4] = + { + // "dl_D" , "dl_A" , "ul_D" , "ul_A". , "monit. area" + { 73 - 37 , 42 - 37 , 37 - 37 , 57 - 37 , 92 - 37 }, // SDCCH, D0 + { 77 - 37 , 46 - 37 , 41 - 37 , 61 - 37 , 96 - 37 }, // SDCCH, D1 + { 83 - 37 , 93 - 37 , 47 - 37 , 6 - 37 + 102 , 51 - 37 }, // SDCCH, D2 + { 87 - 37 , 97 - 37 , 51 - 37 , 10 - 37 + 102 , 55 - 37 } // SDCCH, D3 + }; - // Table for HOPPING SEQUENCE GENERATION ALGORITHM. - const UWORD8 RNTABLE[114] = - { - 48, 98, 63, 1, 36, 95, 78, 102, 94, 73, - 0, 64, 25, 81, 76, 59, 124, 23, 104, 100, - 101, 47, 118, 85, 18, 56, 96, 86, 54, 2, - 80, 34, 127, 13, 6, 89, 57, 103, 12, 74, - 55, 111, 75, 38, 109, 71, 112, 29, 11, 88, - 87, 19, 3, 68, 110, 26, 33, 31, 8, 45, - 82, 58, 40, 107, 32, 5, 106, 92, 62, 67, - 77, 108, 122, 37, 60, 66, 121, 42, 51, 126, - 117, 114, 4, 90, 43, 52, 53, 113, 120, 72, - 16, 49, 7, 79, 119, 61, 22, 84, 9, 97, - 91, 15, 21, 24, 46, 39, 93, 105, 65, 70, - 125, 99, 17, 123 - }; + // Table for HOPPING SEQUENCE GENERATION ALGORITHM. + const UWORD8 RNTABLE[114] = + { + 48, 98, 63, 1, 36, 95, 78, 102, 94, 73, + 0, 64, 25, 81, 76, 59, 124, 23, 104, 100, + 101, 47, 118, 85, 18, 56, 96, 86, 54, 2, + 80, 34, 127, 13, 6, 89, 57, 103, 12, 74, + 55, 111, 75, 38, 109, 71, 112, 29, 11, 88, + 87, 19, 3, 68, 110, 26, 33, 31, 8, 45, + 82, 58, 40, 107, 32, 5, 106, 92, 62, 67, + 77, 108, 122, 37, 60, 66, 121, 42, 51, 126, + 117, 114, 4, 90, 43, 52, 53, 113, 120, 72, + 16, 49, 7, 79, 119, 61, 22, 84, 9, 97, + 91, 15, 21, 24, 46, 39, 93, 105, 65, 70, + 125, 99, 17, 123 + }; - // Table giving the RACH slot positions when COMBINED. - // Rem: all is shifted left by 1 to map the position of the possible "contoles". - const UWORD8 COMBINED_RA_DISTRIB[51] = - { - 0, 0, 0, - 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, - 0, 0, 0, 0, 0 - }; + // Table giving the RACH slot positions when COMBINED. + // Rem: all is shifted left by 1 to map the position of the possible "contoles". + const UWORD8 COMBINED_RA_DISTRIB[51] = + { + 0, 0, 0, + 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, + 0, 0, 0, 0, 0 + }; -#if !L1_GPRS - const T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] = - { - { BLOC_HWTEST, BLOC_HWTEST_SIZE }, // HWTEST - { BLOC_ADC , BLOC_ADC_SIZE }, // ADC in CS_MODE0 - { NULL, 0 }, // DEDIC (not meaningfull) - { BLOC_RAACC, BLOC_RAACC_SIZE }, // RAACC - { NULL, 0 }, // RAHO (not meaningfull) - { NULL, 0 }, // NSYNC (not meaningfull) - { BLOC_FBNEW, BLOC_FBNEW_SIZE }, // FBNEW - { BLOC_SBCONF, BLOC_SBCONF_SIZE }, // SBCONF - { BLOC_SB2, BLOC_SB2_SIZE }, // SB2 - { BLOC_FB26, BLOC_FB26_SIZE }, // FB26 - { BLOC_SB26, BLOC_SB26_SIZE }, // SB26 - { BLOC_SBCNF26, BLOC_SBCNF26_SIZE }, // SBCNF26 - { BLOC_FB51, BLOC_FB51_SIZE }, // FB51 - { BLOC_SB51, BLOC_SB51_SIZE }, // SB51 - { BLOC_SBCNF51, BLOC_SBCNF51_SIZE }, // SBCNF51 - { BLOC_BCCHN, BLOC_BCCHN_SIZE }, // BCCHN - { BLOC_ALLC, S_RECT4_SIZE }, // ALLC - { BLOC_EBCCHS, S_RECT4_SIZE }, // EBCCHS - { BLOC_NBCCHS, S_RECT4_SIZE }, // NBCCHS - { BLOC_SMSCB, BLOC_SMSCB_SIZE }, // SMSCB - { BLOC_NP, S_RECT4_SIZE }, // NP - { BLOC_EP, S_RECT4_SIZE }, // EP - { BLOC_ADL, S_RECT4_SIZE }, // ADL - { BLOC_AUL, S_RECT4_SIZE }, // AUL - { BLOC_DDL, S_RECT4_SIZE }, // DDL - { BLOC_DUL, S_RECT4_SIZE }, // DUL - { BLOC_TCHD, BLOC_TCHT_SIZE }, // TCHD - { BLOC_TCHA, BLOC_TCHA_SIZE }, // TCHA - { BLOC_TCHTF, BLOC_TCHT_SIZE }, // TCHTF - { BLOC_TCHTH, BLOC_TCHT_SIZE }, // TCHTH - { BLOC_BCCHN_TOP,BLOC_BCCHN_TOP_SIZE}, // BCCHN_TOP - { BLOC_SYNCHRO, BLOC_SYNCHRO_SIZE } // SYNCHRO - }; + #if !L1_GPRS + const T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] = + { + { BLOC_HWTEST, BLOC_HWTEST_SIZE }, // HWTEST + { BLOC_ADC , BLOC_ADC_SIZE }, // ADC in CS_MODE0 + { NULL, 0 }, // DEDIC (not meaningfull) + { BLOC_RAACC, BLOC_RAACC_SIZE }, // RAACC + { NULL, 0 }, // RAHO (not meaningfull) + { NULL, 0 }, // NSYNC (not meaningfull) + { BLOC_FBNEW, BLOC_FBNEW_SIZE }, // FBNEW + { BLOC_SBCONF, BLOC_SBCONF_SIZE }, // SBCONF + { BLOC_SB2, BLOC_SB2_SIZE }, // SB2 + { BLOC_FB26, BLOC_FB26_SIZE }, // FB26 + { BLOC_SB26, BLOC_SB26_SIZE }, // SB26 + { BLOC_SBCNF26, BLOC_SBCNF26_SIZE }, // SBCNF26 + { BLOC_FB51, BLOC_FB51_SIZE }, // FB51 + { BLOC_SB51, BLOC_SB51_SIZE }, // SB51 + { BLOC_SBCNF51, BLOC_SBCNF51_SIZE }, // SBCNF51 + { BLOC_BCCHN, BLOC_BCCHN_SIZE }, // BCCHN + { BLOC_ALLC, S_RECT4_SIZE }, // ALLC + { BLOC_EBCCHS, S_RECT4_SIZE }, // EBCCHS + { BLOC_NBCCHS, S_RECT4_SIZE }, // NBCCHS + { BLOC_SMSCB, BLOC_SMSCB_SIZE }, // SMSCB + { BLOC_NP, S_RECT4_SIZE }, // NP + { BLOC_EP, S_RECT4_SIZE }, // EP + { BLOC_ADL, S_RECT4_SIZE }, // ADL + { BLOC_AUL, S_RECT4_SIZE }, // AUL + { BLOC_DDL, S_RECT4_SIZE }, // DDL + { BLOC_DUL, S_RECT4_SIZE }, // DUL + { BLOC_TCHD, BLOC_TCHT_SIZE }, // TCHD + { BLOC_TCHA, BLOC_TCHA_SIZE }, // TCHA + { BLOC_TCHTF, BLOC_TCHT_SIZE }, // TCHTF + { BLOC_TCHTH, BLOC_TCHT_SIZE }, // TCHTH + { BLOC_BCCHN_TOP,BLOC_BCCHN_TOP_SIZE}, // BCCHN_TOP +#if ((REL99 == 1) && (FF_BHO == 1)) + { BLOC_FBSB, BLOC_FBSB_SIZE }, // FBSB +#endif + { BLOC_SYNCHRO, BLOC_SYNCHRO_SIZE } // SYNCHRO + }; - const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] = - { - CHECKSUM_DSP_TASK,// HWTEST - 0, // DEDIC (not meaningfull) - 0, // ADC (not meaningfull) - RACH_DSP_TASK, // RAACC - RACH_DSP_TASK, // RAHO - 0, // NSYNC (not meaningfull) - FB_DSP_TASK, // FBNEW - SB_DSP_TASK, // SBCONF - SB_DSP_TASK, // SB2 - TCH_FB_DSP_TASK, // FB26 - TCH_SB_DSP_TASK, // SB26 - TCH_SB_DSP_TASK, // SBCNF26 - FB_DSP_TASK, // FB51 - SB_DSP_TASK, // SB51 - SB_DSP_TASK, // SBCNF51 - NBN_DSP_TASK, // BCCHN - ALLC_DSP_TASK, // ALLC - NBS_DSP_TASK, // EBCCHS - NBS_DSP_TASK, // NBCCHS - DDL_DSP_TASK, // Temporary (BUG IN SIMULATOR) CB_DSP_TASK, // SMSCB - NP_DSP_TASK, // NP - EP_DSP_TASK, // EP - ADL_DSP_TASK, // ADL - AUL_DSP_TASK, // AUL - DDL_DSP_TASK, // DDL - DUL_DSP_TASK, // DUL - TCHD_DSP_TASK, // TCHD - TCHA_DSP_TASK, // TCHA - TCHT_DSP_TASK, // TCHTF - TCHT_DSP_TASK, // TCHTH - NBN_DSP_TASK, // BCCHN_TOP == BCCHN - 0, // SYNCHRO (not meaningfull) - }; -#else - const T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] = - { - { BLOC_HWTEST, BLOC_HWTEST_SIZE }, // HWTEST - { BLOC_ADC, BLOC_ADC_SIZE }, // ADC in CS_MODE0 - { NULL, 0 }, // DEDIC (not meaningfull) - { BLOC_RAACC, BLOC_RAACC_SIZE }, // RAACC - { NULL, 0 }, // RAHO (not meaningfull) - { NULL, 0 }, // NSYNC (not meaningfull) - { BLOC_POLL , BLOC_POLL_SIZE }, // POLL - { BLOC_PRACH, BLOC_PRACH_SIZE }, // PRACH - { BLOC_ITMEAS, BLOC_ITMEAS_SIZE }, // ITMEAS - { BLOC_FBNEW, BLOC_FBNEW_SIZE }, // FBNEW - { BLOC_SBCONF, BLOC_SBCONF_SIZE }, // SBCONF - { BLOC_SB2, BLOC_SB2_SIZE }, // SB2 - { BLOC_PTCCH, BLOC_PTCCH_SIZE }, // PTCCH - { BLOC_FB26, BLOC_FB26_SIZE }, // FB26 - { BLOC_SB26, BLOC_SB26_SIZE }, // SB26 - { BLOC_SBCNF26, BLOC_SBCNF26_SIZE }, // SBCNF26 - { BLOC_FB51, BLOC_FB51_SIZE }, // FB51 - { BLOC_SB51, BLOC_SB51_SIZE }, // SB51 - { BLOC_SBCNF51, BLOC_SBCNF51_SIZE }, // SBCNF51 - { BLOC_PDTCH, BLOC_PDTCH_SIZE }, // PDTCH - { BLOC_BCCHN, BLOC_BCCHN_SIZE }, // BCCHN - { BLOC_ALLC, S_RECT4_SIZE }, // ALLC - { BLOC_EBCCHS, S_RECT4_SIZE }, // EBCCHS - { BLOC_NBCCHS, S_RECT4_SIZE }, // NBCCHS - { BLOC_ADL, S_RECT4_SIZE }, // ADL - { BLOC_AUL, S_RECT4_SIZE }, // AUL - { BLOC_DDL, S_RECT4_SIZE }, // DDL - { BLOC_DUL, S_RECT4_SIZE }, // DUL - { BLOC_TCHD, BLOC_TCHT_SIZE }, // TCHD - { BLOC_TCHA, BLOC_TCHA_SIZE }, // TCHA - { BLOC_TCHTF, BLOC_TCHT_SIZE }, // TCHTF - { BLOC_TCHTH, BLOC_TCHT_SIZE }, // TCHTH - { BLOC_PALLC, BLOC_PCCCH_SIZE }, // PALLC - { BLOC_SMSCB, BLOC_SMSCB_SIZE }, // SMSCB - { BLOC_PBCCHS, BLOC_PBCCHS_SIZE }, // PBCCHS - { BLOC_PNP, BLOC_PCCCH_SIZE }, // PNP - { BLOC_PEP, BLOC_PCCCH_SIZE }, // PEP - { BLOC_SINGLE, BLOC_SINGLE_SIZE }, // SINGLE - { BLOC_PBCCHN_TRAN, BLOC_PBCCHN_TRAN_SIZE }, // PBCCHN_TRAN - { BLOC_PBCCHN_IDLE, BLOC_PBCCHN_IDLE_SIZE }, // PBCCHN_IDLE - { BLOC_BCCHN_TRAN, BLOC_BCCHN_TRAN_SIZE }, // BCCHN_TRAN - { BLOC_NP, S_RECT4_SIZE }, // NP - { BLOC_EP, S_RECT4_SIZE }, // EP - { BLOC_BCCHN_TOP, BLOC_BCCHN_TOP_SIZE}, // BCCHN_TOP - { BLOC_SYNCHRO, BLOC_SYNCHRO_SIZE } // SYNCHRO - }; - - const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] = - { - CHECKSUM_DSP_TASK,// HWTEST - 0, // ADC (not meaningfull) - 0, // DEDIC (not meaningfull) - RACH_DSP_TASK, // RAACC - RACH_DSP_TASK, // RAHO - 0, // NSYNC (not meaningfull) - 0, // POLL (not meaningfull) - 0, // PRACH (not meaningfull) - 0, // ITMEAS - FB_DSP_TASK, // FBNEW - SB_DSP_TASK, // SBCONF - SB_DSP_TASK, // SB2 - PTCCHU_DSP_TASK, // PTCCH - TCH_FB_DSP_TASK, // FB26 - TCH_SB_DSP_TASK, // SB26 - TCH_SB_DSP_TASK, // SBCNF26 - FB_DSP_TASK, // FB51 - SB_DSP_TASK, // SB51 - SB_DSP_TASK, // SBCNF51 - 0, // PDTCH (not meaningfull) - NBN_DSP_TASK, // BCCHN - ALLC_DSP_TASK, // ALLC - NBS_DSP_TASK, // EBCCHS - NBS_DSP_TASK, // NBCCHS - ADL_DSP_TASK, // ADL - AUL_DSP_TASK, // AUL - DDL_DSP_TASK, // DDL - DUL_DSP_TASK, // DUL - TCHD_DSP_TASK, // TCHD - TCHA_DSP_TASK, // TCHA - TCHT_DSP_TASK, // TCHTF - TCHT_DSP_TASK, // TCHTH - 0, // PALLC (not meaningfull) - DDL_DSP_TASK, // Temporary (BUG IN SIMULATOR) CB_DSP_TASK, // SMSCB - DDL_DSP_TASK, // PBCCHS (In order to allow PBCCHS running in CS or Idle mode, we have to specify a valid DSP task in order to request a PBCCHS with the GSM scheduler) - 0, // PNP (not meaningfull) - 0, // PEP (not meaningfull) - 0, // SINGLE (not meaningfull) - 0, // PBCCHN_TRAN (not meaningfull) - DDL_DSP_TASK, // PBCCHN_IDLE (only for GSM scheduler the task used is the same as SMSCB task) - NBN_DSP_TASK, // BCCHN_TRAN == BCCHN - NP_DSP_TASK, // NP - EP_DSP_TASK, // EP - NBN_DSP_TASK, // BCCHN_TOP == BCCHN - 0 // SYNCHRO (not meaningfull) - }; - + const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] = + { + CHECKSUM_DSP_TASK,// HWTEST + 0, // DEDIC (not meaningfull) + 0, // ADC (not meaningfull) + RACH_DSP_TASK, // RAACC + RACH_DSP_TASK, // RAHO + 0, // NSYNC (not meaningfull) + FB_DSP_TASK, // FBNEW + SB_DSP_TASK, // SBCONF + SB_DSP_TASK, // SB2 + TCH_FB_DSP_TASK, // FB26 + TCH_SB_DSP_TASK, // SB26 + TCH_SB_DSP_TASK, // SBCNF26 + FB_DSP_TASK, // FB51 + SB_DSP_TASK, // SB51 + SB_DSP_TASK, // SBCNF51 + NBN_DSP_TASK, // BCCHN + ALLC_DSP_TASK, // ALLC + NBS_DSP_TASK, // EBCCHS + NBS_DSP_TASK, // NBCCHS + DDL_DSP_TASK, // Temporary (BUG IN SIMULATOR) CB_DSP_TASK, // SMSCB + NP_DSP_TASK, // NP + EP_DSP_TASK, // EP + ADL_DSP_TASK, // ADL + AUL_DSP_TASK, // AUL + DDL_DSP_TASK, // DDL + DUL_DSP_TASK, // DUL + TCHD_DSP_TASK, // TCHD + TCHA_DSP_TASK, // TCHA + TCHT_DSP_TASK, // TCHTF + TCHT_DSP_TASK, // TCHTH + NBN_DSP_TASK, // BCCHN_TOP == BCCHN +#if ((REL99 == 1) && (FF_BHO == 1)) + FBSB_DSP_TASK, // FBSB #endif - - const UWORD8 REPORTING_PERIOD[] = - { - 255, // INVALID_CHANNEL -> invalid reporting period - 104, // TCH_F - 104, // TCH_H - 102, // SDCCH_4 - 102 // SDCCH_8 - }; - - const UWORD8 TOA_PERIOD_LEN[] = - { - 0, // CS_MODE0 not used for histogram filling - 12, // CS_MODE histogram length - 12, // I_MODE histogram length - 12, // CON_EST_MODE1 histogram length - 144, // CON_EST_MODE2 histogram length - 36, // DEDIC_MODE (Full rate) histogram length - 42 // DEDIC_MODE (Half rate) histogram length - #if L1_GPRS - ,16 // PACKET TRANSFER MODE histogram length - #endif - }; - - // #if (STD == GSM) - const UWORD8 MIN_TXPWR_GSM[] = + 0, // SYNCHRO (not meaningfull) + }; + #else + const T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS] = { - 0, // unused. - 0, // Power class = 1, unused for GSM900 - 2, // Power class = 2. - 3, // Power class = 3. - 5, // Power class = 4. - 7 // Power class = 5. - }; - // #elif (STD == PCS1900) - const UWORD8 MIN_TXPWR_PCS[] = - { - 0, // unused. - 0, // Power class = 1. - 3, // Power class = 2. - 30 // Power class = 3. - }; - // #elif (STD == DCS1800) - const UWORD8 MIN_TXPWR_DCS[] = - { - 0, // unused. - 0, // Power class = 1. - 3, // Power class = 2. - 29 // Power class = 3. + { BLOC_HWTEST, BLOC_HWTEST_SIZE }, // HWTEST + { BLOC_ADC, BLOC_ADC_SIZE }, // ADC in CS_MODE0 + { NULL, 0 }, // DEDIC (not meaningfull) + { BLOC_RAACC, BLOC_RAACC_SIZE }, // RAACC + { NULL, 0 }, // RAHO (not meaningfull) + { NULL, 0 }, // NSYNC (not meaningfull) + { BLOC_POLL , BLOC_POLL_SIZE }, // POLL + { BLOC_PRACH, BLOC_PRACH_SIZE }, // PRACH + { BLOC_ITMEAS, BLOC_ITMEAS_SIZE }, // ITMEAS + { BLOC_FBNEW, BLOC_FBNEW_SIZE }, // FBNEW + { BLOC_SBCONF, BLOC_SBCONF_SIZE }, // SBCONF + { BLOC_SB2, BLOC_SB2_SIZE }, // SB2 + { BLOC_PTCCH, BLOC_PTCCH_SIZE }, // PTCCH + { BLOC_FB26, BLOC_FB26_SIZE }, // FB26 + { BLOC_SB26, BLOC_SB26_SIZE }, // SB26 + { BLOC_SBCNF26, BLOC_SBCNF26_SIZE }, // SBCNF26 + { BLOC_FB51, BLOC_FB51_SIZE }, // FB51 + { BLOC_SB51, BLOC_SB51_SIZE }, // SB51 + { BLOC_SBCNF51, BLOC_SBCNF51_SIZE }, // SBCNF51 + { BLOC_PDTCH, BLOC_PDTCH_SIZE }, // PDTCH + { BLOC_BCCHN, BLOC_BCCHN_SIZE }, // BCCHN + { BLOC_ALLC, S_RECT4_SIZE }, // ALLC + { BLOC_EBCCHS, S_RECT4_SIZE }, // EBCCHS + { BLOC_NBCCHS, S_RECT4_SIZE }, // NBCCHS + { BLOC_ADL, S_RECT4_SIZE }, // ADL + { BLOC_AUL, S_RECT4_SIZE }, // AUL + { BLOC_DDL, S_RECT4_SIZE }, // DDL + { BLOC_DUL, S_RECT4_SIZE }, // DUL + { BLOC_TCHD, BLOC_TCHT_SIZE }, // TCHD + { BLOC_TCHA, BLOC_TCHA_SIZE }, // TCHA + { BLOC_TCHTF, BLOC_TCHT_SIZE }, // TCHTF + { BLOC_TCHTH, BLOC_TCHT_SIZE }, // TCHTH + { BLOC_PALLC, BLOC_PCCCH_SIZE }, // PALLC + { BLOC_SMSCB, BLOC_SMSCB_SIZE }, // SMSCB + { BLOC_PBCCHS, BLOC_PBCCHS_SIZE }, // PBCCHS + { BLOC_PNP, BLOC_PCCCH_SIZE }, // PNP + { BLOC_PEP, BLOC_PCCCH_SIZE }, // PEP + { BLOC_SINGLE, BLOC_SINGLE_SIZE }, // SINGLE + { BLOC_PBCCHN_TRAN, BLOC_PBCCHN_TRAN_SIZE }, // PBCCHN_TRAN + { BLOC_PBCCHN_IDLE, BLOC_PBCCHN_IDLE_SIZE }, // PBCCHN_IDLE + { BLOC_BCCHN_TRAN, BLOC_BCCHN_TRAN_SIZE }, // BCCHN_TRAN + { BLOC_NP, S_RECT4_SIZE }, // NP + { BLOC_EP, S_RECT4_SIZE }, // EP + { BLOC_BCCHN_TOP, BLOC_BCCHN_TOP_SIZE}, // BCCHN_TOP +#if ((REL99 == 1) && (FF_BHO == 1)) + { BLOC_FBSB, BLOC_FBSB_SIZE }, // FBSB +#endif + { BLOC_SYNCHRO, BLOC_SYNCHRO_SIZE } // SYNCHRO }; - const UWORD8 MIN_TXPWR_GSM850[] = + const UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS] = { - 0, // unused. - 0, // Power class = 1, unused for GSM900 - 2, // Power class = 2. - 3, // Power class = 3. - 5, // Power class = 4. - 7 // Power class = 5. - }; + CHECKSUM_DSP_TASK,// HWTEST + 0, // ADC (not meaningfull) + 0, // DEDIC (not meaningfull) + RACH_DSP_TASK, // RAACC + RACH_DSP_TASK, // RAHO + 0, // NSYNC (not meaningfull) + 0, // POLL (not meaningfull) + 0, // PRACH (not meaningfull) + 0, // ITMEAS + FB_DSP_TASK, // FBNEW + SB_DSP_TASK, // SBCONF + SB_DSP_TASK, // SB2 + PTCCHU_DSP_TASK, // PTCCH + TCH_FB_DSP_TASK, // FB26 + TCH_SB_DSP_TASK, // SB26 + TCH_SB_DSP_TASK, // SBCNF26 + FB_DSP_TASK, // FB51 + SB_DSP_TASK, // SB51 + SB_DSP_TASK, // SBCNF51 + 0, // PDTCH (not meaningfull) + NBN_DSP_TASK, // BCCHN + ALLC_DSP_TASK, // ALLC + NBS_DSP_TASK, // EBCCHS + NBS_DSP_TASK, // NBCCHS + ADL_DSP_TASK, // ADL + AUL_DSP_TASK, // AUL + DDL_DSP_TASK, // DDL + DUL_DSP_TASK, // DUL + TCHD_DSP_TASK, // TCHD + TCHA_DSP_TASK, // TCHA + TCHT_DSP_TASK, // TCHTF + TCHT_DSP_TASK, // TCHTH + 0, // PALLC (not meaningfull) + DDL_DSP_TASK, // Temporary (BUG IN SIMULATOR) CB_DSP_TASK, // SMSCB + DDL_DSP_TASK, // PBCCHS (In order to allow PBCCHS running in CS or Idle mode, we have to specify a valid DSP task in order to request a PBCCHS with the GSM scheduler) + 0, // PNP (not meaningfull) + 0, // PEP (not meaningfull) + 0, // SINGLE (not meaningfull) + 0, // PBCCHN_TRAN (not meaningfull) + DDL_DSP_TASK, // PBCCHN_IDLE (only for GSM scheduler the task used is the same as SMSCB task) + NBN_DSP_TASK, // BCCHN_TRAN == BCCHN + NP_DSP_TASK, // NP + EP_DSP_TASK, // EP + NBN_DSP_TASK, // BCCHN_TOP == BCCHN +#if ((REL99 == 1) && (FF_BHO == 1)) + FBSB_DSP_TASK, // FBSB +#endif + 0 // SYNCHRO (not meaningfull) + }; -// #elif (STD == DUAL) - // const UWORD8 MIN_TXPWR_GSM[] = - // { - // 0, // unused. - // 0, // Power class = 1, unused for GSM900 - // 2, // Power class = 2. - // 3, // Power class = 3. - // 5, // Power class = 4. - // 7 // Power class = 5. - // }; - // const UWORD8 MIN_TXPWR_DCS[] = - // { - // 0, // unused. - // 0, // Power class = 1. - // 3, // Power class = 2. - // 29 // Power class = 3. - // }; -// #endif + #endif -const UWORD8 GAUG_VS_PAGING_RATE[] = -{ - 4, // bs_pa_mfrms = 2, 1 gauging every 4 Paging blocs - 3, // bs_pa_mfrms = 3, 1 gauging every 3 Paging blocs - 2, // bs_pa_mfrms = 4, 1 gauging every 2 Paging blocs - 1, // bs_pa_mfrms = 5, 1 gauging every 1 Paging bloc - 1, // bs_pa_mfrms = 6, 1 gauging every 1 Paging bloc - 1, // bs_pa_mfrms = 7, 1 gauging every 1 Paging bloc - 1, // bs_pa_mfrms = 8, 1 gauging every 1 Paging bloc - 1 // bs_pa_mfrms = 9, 1 gauging every 1 Paging bloc -}; - -#else - extern T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)]; - extern T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)]; - extern UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)]; - extern UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)]; - extern UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-2]; - extern T_SDCCH_DESC SDCCH_DESC_NCOMB[]; - extern T_SDCCH_DESC SDCCH_DESC_COMB[]; - extern UWORD8 RNTABLE[114]; - extern UWORD8 COMBINED_RA_DISTRIB[51]; - extern T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS]; - extern UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS]; - extern UWORD8 REPORTING_PERIOD[]; - extern UWORD8 TOA_PERIOD_LEN[]; - extern UWORD8 MIN_TXPWR_GSM[]; - extern UWORD8 MIN_TXPWR_DCS[]; - extern UWORD8 MIN_TXPWR_PCS[]; - extern UWORD8 MIN_TXPWR_GSM850[]; - extern UWORD8 GAUG_VS_PAGING_RATE[]; -#endif + const UWORD8 REPORTING_PERIOD[] = + { + 255, // INVALID_CHANNEL -> invalid reporting period + 104, // TCH_F + 104, // TCH_H + 102, // SDCCH_4 + 102 // SDCCH_8 + }; + + const UWORD8 TOA_PERIOD_LEN[] = + { + 0, // CS_MODE0 not used for histogram filling + 12, // CS_MODE histogram length + 12, // I_MODE histogram length + 12, // CON_EST_MODE1 histogram length + 144, // CON_EST_MODE2 histogram length + 36, // DEDIC_MODE (Full rate) histogram length + 42, // DEDIC_MODE (Half rate) histogram length + #if L1_GPRS + 16, // PACKET TRANSFER MODE histogram length + #endif + }; + + // #if (STD == GSM) + const UWORD8 MIN_TXPWR_GSM[] = + { + 0, // unused. + 0, // Power class = 1, unused for GSM900 + 2, // Power class = 2. + 3, // Power class = 3. + 5, // Power class = 4. + 7 // Power class = 5. + }; + // #elif (STD == PCS1900) + const UWORD8 MIN_TXPWR_PCS[] = + { + 0, // unused. + 0, // Power class = 1. + 3, // Power class = 2. + 30 // Power class = 3. + }; + // #elif (STD == DCS1800) + const UWORD8 MIN_TXPWR_DCS[] = + { + 0, // unused. + 0, // Power class = 1. + 3, // Power class = 2. + 29 // Power class = 3. + }; + + const UWORD8 MIN_TXPWR_GSM850[] = + { + 0, // unused. + 0, // Power class = 1, unused for GSM900 + 2, // Power class = 2. + 3, // Power class = 3. + 5, // Power class = 4. + 7 // Power class = 5. + }; + + // #elif (STD == DUAL) + // const UWORD8 MIN_TXPWR_GSM[] = + // { + // 0, // unused. + // 0, // Power class = 1, unused for GSM900 + // 2, // Power class = 2. + // 3, // Power class = 3. + // 5, // Power class = 4. + // 7 // Power class = 5. + // }; + // const UWORD8 MIN_TXPWR_DCS[] = + // { + // 0, // unused. + // 0, // Power class = 1. + // 3, // Power class = 2. + // 29 // Power class = 3. + // }; + // #endif + + const UWORD8 GAUG_VS_PAGING_RATE[] = + { + 4, // bs_pa_mfrms = 2, 1 gauging every 4 Paging blocs + 3, // bs_pa_mfrms = 3, 1 gauging every 3 Paging blocs + 2, // bs_pa_mfrms = 4, 1 gauging every 2 Paging blocs + 1, // bs_pa_mfrms = 5, 1 gauging every 1 Paging bloc + 1, // bs_pa_mfrms = 6, 1 gauging every 1 Paging bloc + 1, // bs_pa_mfrms = 7, 1 gauging every 1 Paging bloc + 1, // bs_pa_mfrms = 8, 1 gauging every 1 Paging bloc + 1 // bs_pa_mfrms = 9, 1 gauging every 1 Paging bloc + }; + + #else + extern T_IDLE_TASK_INFO IDLE_INFO_COMB[(MAX_AG_BLKS_RES_COMB+1) * (MAX_PG_BLOC_INDEX_COMB+1)]; + extern T_IDLE_TASK_INFO IDLE_INFO_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1) * (MAX_PG_BLOC_INDEX_NCOMB+1)]; + extern UWORD8 NBPCH_IN_MF51_NCOMB[(MAX_AG_BLKS_RES_NCOMB+1)]; + extern UWORD8 NBPCH_IN_MF51_COMB[(MAX_AG_BLKS_RES_COMB+1)]; + extern UWORD8 DSC_INIT_VALUE[MAX_BS_PA_MFRMS-2]; + extern T_SDCCH_DESC SDCCH_DESC_NCOMB[]; + extern T_SDCCH_DESC SDCCH_DESC_COMB[]; + extern UWORD8 RNTABLE[114]; + extern UWORD8 COMBINED_RA_DISTRIB[51]; + extern T_TASK_MFTAB TASK_ROM_MFTAB[NBR_DL_L1S_TASKS]; + extern UWORD8 DSP_TASK_CODE[NBR_DL_L1S_TASKS]; + extern UWORD8 REPORTING_PERIOD[]; + extern UWORD8 TOA_PERIOD_LEN[]; + extern UWORD8 MIN_TXPWR_GSM[]; + extern UWORD8 MIN_TXPWR_DCS[]; + extern UWORD8 MIN_TXPWR_PCS[]; + extern UWORD8 MIN_TXPWR_GSM850[]; + extern UWORD8 GAUG_VS_PAGING_RATE[]; + #endif +#endif //L1_TABS_H