FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/g23m-gsm/mm/mm_regp.c @ 727:87cef40cf601
mm_regp.c compiles
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sat, 04 Oct 2014 22:48:18 +0000 |
parents | 2f7df7a314f8 |
children |
comparison
equal
deleted
inserted
replaced
726:105ac33aa5a1 | 727:87cef40cf601 |
---|---|
19 +----------------------------------------------------------------------------- | 19 +----------------------------------------------------------------------------- |
20 */ | 20 */ |
21 | 21 |
22 #ifndef MM_REGP_C | 22 #ifndef MM_REGP_C |
23 #define MM_REGP_C | 23 #define MM_REGP_C |
24 | |
25 #include "config.h" | |
26 #include "fixedconf.h" | |
27 #include "condat-features.h" | |
24 | 28 |
25 #define ENTITY_MM | 29 #define ENTITY_MM |
26 | 30 |
27 /*==== INCLUDES ===================================================*/ | 31 /*==== INCLUDES ===================================================*/ |
28 #if defined (NEW_FRAME) | 32 #if defined (NEW_FRAME) |
1294 */ | 1298 */ |
1295 | 1299 |
1296 GLOBAL void reg_send_sim_sync_req (void) | 1300 GLOBAL void reg_send_sim_sync_req (void) |
1297 { | 1301 { |
1298 GET_INSTANCE_DATA; | 1302 GET_INSTANCE_DATA; |
1299 PALLOC (sync_req, SIM_SYNC_REQ); | 1303 PALLOC (sync_req, SIM_SYNC_REQ); |
1300 sync_req->synccs = (U8)SYNC_MM_FINISHED_READING; | 1304 sync_req->synccs = (U8)SYNC_MM_FINISHED_READING; |
1301 PSENDX (SIM, sync_req); | 1305 PSENDX (SIM, sync_req); |
1302 mm_data->reg.sim_sync_req_pending = FALSE; | 1306 mm_data->reg.sim_sync_req_pending = FALSE; |
1303 } | 1307 } |
1304 | 1308 |
1305 /* | 1309 /* |
1306 +--------------------------------------------------------------------+ | 1310 +--------------------------------------------------------------------+ |
1307 | PROJECT : GSM-PS (6147) MODULE : MM_REG | | 1311 | PROJECT : GSM-PS (6147) MODULE : MM_REG | |
1386 | 1390 |
1387 mm_data->reg.sim_ucps_at_len = 0; | 1391 mm_data->reg.sim_ucps_at_len = 0; |
1388 if (mm_data->reg.upd_sim_ocps_at EQ SAT_UNCHANGED) | 1392 if (mm_data->reg.upd_sim_ocps_at EQ SAT_UNCHANGED) |
1389 { | 1393 { |
1390 /* | 1394 /* |
1391 * EF PLMNsel can be used if indicated because EF EFPLMNwAcT reading error and | 1395 * EF PLMNsel can be used if indicated because EF EFPLMNwAcT reading |
1392 * EFOPLMNwAcT is not indicated. | 1396 * error and EFOPLMNwAcT is not indicated. |
1393 */ | 1397 */ |
1394 mm_data->reg.sim_uocps_at_used = FALSE; | 1398 mm_data->reg.sim_uocps_at_used = FALSE; |
1395 } | 1399 } |
1396 } | 1400 } |
1397 break; | 1401 break; |
1398 case SIM_OCPS_ACTEC: | 1402 case SIM_OCPS_ACTEC: |
1399 /* | 1403 /* |
1400 * Read Operator controlled PLMN selector with access technology list. | 1404 * Read Operator controlled PLMN selector with access technology list. |
1401 * This can happens only after SIM insert indication indicates to read file from SIM. | 1405 * This can happens only after SIM insert indication indicates to read |
1406 * file from SIM. | |
1402 */ | 1407 */ |
1403 mm_data->reg.upd_sim_ocps_at = SAT_UNCHANGED; | 1408 mm_data->reg.upd_sim_ocps_at = SAT_UNCHANGED; |
1404 if (sim_read_cnf->cause EQ SIM_NO_ERROR) | 1409 if (sim_read_cnf->cause EQ SIM_NO_ERROR) |
1405 { | 1410 { |
1406 /* | 1411 /* |
1407 * EF PLMNsel will not be used. PLMNsel only be used if EFs EFPLMNwAcT or EFOPLMNwAcT | 1412 * EF PLMNsel will not be used. PLMNsel only be used if EFs EFPLMNwAcT |
1408 * are not used. MM should not read EF SIM_PLMNSEL. | 1413 * or EFOPLMNwAcT are not used. MM should not read EF SIM_PLMNSEL. |
1409 */ | 1414 */ |
1410 mm_data->reg.upd_sim_plmnsel = SAT_UNCHANGED; | 1415 mm_data->reg.upd_sim_plmnsel = SAT_UNCHANGED; |
1411 | 1416 |
1412 if ( mm_data->reg.sim_sync_req_pending == TRUE ) | 1417 if ( mm_data->reg.sim_sync_req_pending == TRUE ) |
1413 { | 1418 { |
1418 mm_data->reg.sim_uocps_at_used = TRUE; | 1423 mm_data->reg.sim_uocps_at_used = TRUE; |
1419 reg_read_ocps_acctec(sim_read_cnf->trans_data, sim_read_cnf->length); | 1424 reg_read_ocps_acctec(sim_read_cnf->trans_data, sim_read_cnf->length); |
1420 } | 1425 } |
1421 else | 1426 else |
1422 { | 1427 { |
1423 /* | 1428 /* |
1424 * EF PLMNsel can be used if indicated and if there was any error during reading of | 1429 * EF PLMNsel can be used if indicated and if there was any error |
1425 * EF EFPLMNwAcT. | 1430 * during reading of EF EFPLMNwAcT. |
1426 */ | 1431 */ |
1427 TRACE_EVENT_P2 ("SIM read cnf error file:%x, cause:%x", | 1432 TRACE_EVENT_P2 ("SIM read cnf error file:%x, cause:%x", |
1428 SIM_OCPS_ACTEC, sim_read_cnf->cause); | 1433 SIM_OCPS_ACTEC, sim_read_cnf->cause); |
1429 } | 1434 } |
1430 break; | 1435 break; |
1431 #endif | 1436 #endif |
1504 { | 1509 { |
1505 /* All changed SIM files read */ | 1510 /* All changed SIM files read */ |
1506 /* Acknowledge completion of file update */ | 1511 /* Acknowledge completion of file update */ |
1507 /* SIM_FILE_UPDATE_RES should be sent immediately after response | 1512 /* SIM_FILE_UPDATE_RES should be sent immediately after response |
1508 from SIM : Issue 23561*/ | 1513 from SIM : Issue 23561*/ |
1509 if(mm_data->reg.sim_file_upd_ind_rec) | 1514 if(mm_data->reg.sim_file_upd_ind_rec) |
1510 { | 1515 { |
1511 | |
1512 PALLOC (update_res, SIM_FILE_UPDATE_RES); /* T_SIM_FILE_UPDATE_RES */ | 1516 PALLOC (update_res, SIM_FILE_UPDATE_RES); /* T_SIM_FILE_UPDATE_RES */ |
1513 update_res->source = SRC_MM; | 1517 update_res->source = SRC_MM; |
1514 update_res->fu_rsc = SIM_FU_SUCCESS; | 1518 update_res->fu_rsc = SIM_FU_SUCCESS; |
1515 PSENDX (SIM, update_res); | 1519 PSENDX (SIM, update_res); |
1516 mm_data->reg.sim_file_upd_ind_rec = FALSE; | 1520 mm_data->reg.sim_file_upd_ind_rec = FALSE; |
1536 | 1540 |
1537 /* Inform RR about changes by SAT */ | 1541 /* Inform RR about changes by SAT */ |
1538 mm_build_rr_sync_req_cause (SYNCCS_ACCC); | 1542 mm_build_rr_sync_req_cause (SYNCCS_ACCC); |
1539 } | 1543 } |
1540 | 1544 |
1541 | |
1542 if (mm_data->reg.upd_sim_hplmn NEQ SAT_UNCHANGED) | 1545 if (mm_data->reg.upd_sim_hplmn NEQ SAT_UNCHANGED) |
1543 { | 1546 { |
1544 if (mm_data->first_attach_mem AND | 1547 if (mm_data->first_attach_mem AND |
1545 mm_data->reg.thplmn NEQ 0) | 1548 mm_data->reg.thplmn NEQ 0) |
1546 { | 1549 { |
1554 reg_stop_hplmn_tim (); | 1557 reg_stop_hplmn_tim (); |
1555 reg_check_hplmn_tim(mm_data->reg.thplmn); | 1558 reg_check_hplmn_tim(mm_data->reg.thplmn); |
1556 } | 1559 } |
1557 }/*end of mm_data->reg.upd_sim_hplmn*/ | 1560 }/*end of mm_data->reg.upd_sim_hplmn*/ |
1558 | 1561 |
1559 | |
1560 if (mm_data->reg.upd_sim_act_hplmn NEQ SAT_UNCHANGED ) | 1562 if (mm_data->reg.upd_sim_act_hplmn NEQ SAT_UNCHANGED ) |
1561 { | 1563 { |
1562 BOOL valid_ahplmn= FALSE; | 1564 BOOL valid_ahplmn= FALSE; |
1563 valid_ahplmn = valid_acting_hplmn(&mm_data->reg.acting_hplmn); | 1565 valid_ahplmn = valid_acting_hplmn(&mm_data->reg.acting_hplmn); |
1564 mm_build_rr_sync_hplmn_req(); | 1566 mm_build_rr_sync_hplmn_req(); |
1576 | 1578 |
1577 /*Inform ACI of the new AHPLMN value*/ | 1579 /*Inform ACI of the new AHPLMN value*/ |
1578 mm_mmgmm_ahplmn_ind(&mm_data->reg.acting_hplmn); | 1580 mm_mmgmm_ahplmn_ind(&mm_data->reg.acting_hplmn); |
1579 | 1581 |
1580 /* Delete any Equivalent PLMN list */ | 1582 /* Delete any Equivalent PLMN list */ |
1581 reg_clear_plmn_list (mm_data->reg.eqv_plmns.eqv_plmn_list, EPLMNLIST_SIZE); | 1583 reg_clear_plmn_list (mm_data->reg.eqv_plmns.eqv_plmn_list, |
1582 | 1584 EPLMNLIST_SIZE); |
1583 | 1585 |
1584 /* If AHPLMN value read from SIM is same as the RPLMN then inform | 1586 /* If AHPLMN value read from SIM is same as the RPLMN then inform |
1585 * RR about it. No need of registering again. Set the flag | 1587 * RR about it. No need of registering again. Set the flag |
1586 * to true so that hplmn will now be taken from this | 1588 * to true so that hplmn will now be taken from this |
1587 */ | 1589 */ |
1588 if (reg_plmn_equal_rplmn(&mm_data->reg.acting_hplmn)) | 1590 if (reg_plmn_equal_rplmn(&mm_data->reg.acting_hplmn)) |
1633 check_if_cingular_sim(); /*for cingular only 31179*/ | 1635 check_if_cingular_sim(); /*for cingular only 31179*/ |
1634 }/*end of mm_data->reg.upd_sim_act_hplmn*/ | 1636 }/*end of mm_data->reg.upd_sim_act_hplmn*/ |
1635 }/*end of reg_read_next_sim_file*/ | 1637 }/*end of reg_read_next_sim_file*/ |
1636 }/*end of reg_sim_read_cnf*/ | 1638 }/*end of reg_sim_read_cnf*/ |
1637 | 1639 |
1638 | |
1639 #endif | 1640 #endif |
1640 |