FreeCalypso > hg > fc-magnetite
view cdg211/cdginc/m_mm.h @ 662:8cd8fd15a095
SIM speed enhancement re-enabled and made configurable
TI's original code supported SIM speed enhancement, but Openmoko had it
disabled, and OM's disabling of speed enhancement somehow caused certain
SIM cards to start working which didn't work before (OM's bug #666).
Because our FC community is much smaller in year 2020 than OM's community
was in their day, we are not able to find one of those #666-affected SIMs,
thus the real issue they had encountered remains elusive. Thus our
solution is to re-enable SIM speed enhancement and simply wait for if
and when someone runs into a #666-affected SIM once again. We provide
a SIM_allow_speed_enhancement global variable that allows SIM speed
enhancement to be enabled or disabled per session, and an /etc/SIM_spenh
file in FFS that allows it to enabled or disabled on a non-volatile
basis. SIM speed enhancement is now enabled by default.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 24 May 2020 05:02:28 +0000 |
parents | 56abf6cf8a0b |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------------+ | PROJECT : PROTOCOL STACK | | FILE : m_mm.h | | SOURCE : "__out__\g23m_dfile\msg\mm.mdf" | | LastModified : "2002-04-18" | | IdAndVersion : "6147.602.02.105" | | SrcFileTime : "Mon Nov 24 15:51:08 2003" | | Generated by CCDGEN_2.5.5 on Fri Jun 08 13:59:14 2007 | | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | +--------------------------------------------------------------------------+ */ /* PRAGMAS * PREFIX : NONE * COMPATIBILITY_DEFINES : NO (require PREFIX) * ALWAYS_ENUM_IN_VAL_FILE: NO * ENABLE_GROUP: NO * CAPITALIZE_TYPENAME: NO */ #ifndef M_MM_H #define M_MM_H #define CDG_ENTER__M_MM_H #define CDG_ENTER__FILENAME _M_MM_H #define CDG_ENTER__M_MM_H__FILE_TYPE CDGINC #define CDG_ENTER__M_MM_H__LAST_MODIFIED _2002_04_18 #define CDG_ENTER__M_MM_H__ID_AND_VERSION _6147_602_02_105 #define CDG_ENTER__M_MM_H__SRC_FILE_TIME _Mon_Nov_24_15_51_08_2003 #include "CDG_ENTER.h" #undef CDG_ENTER__M_MM_H #undef CDG_ENTER__FILENAME #include "m_mm.val" #include "m_rr_com.h" /* * bitbuffer structure for the element auth_sres */ #ifndef __T_BUF_auth_sres__ #define __T_BUF_auth_sres__ typedef struct { U16 l_auth_sres; U16 o_auth_sres; U8 b_auth_sres[8]; } BUF_auth_sres; /* size <12> */ #endif /* * bitbuffer structure for the element tmsi */ #ifndef __T_BUF_tmsi__ #define __T_BUF_tmsi__ typedef struct { U16 l_tmsi; U16 o_tmsi; U8 b_tmsi[8]; } BUF_tmsi; /* size <12> */ #endif #ifndef __T_auth_rand__ #define __T_auth_rand__ /* * Authentication parameter RAND * CCDGEN:WriteStruct_Count==218 */ typedef struct { U8 c_rand; /*< 0: 1> counter */ U8 rand[16]; /*< 1: 16> RAND value */ U8 _align0; /*< 17: 1> alignment */ U8 _align1; /*< 18: 1> alignment */ U8 _align2; /*< 19: 1> alignment */ } T_auth_rand; #endif #ifndef __T_ciph_key_num__ #define __T_ciph_key_num__ /* * Ciphering Key Sequence Number * CCDGEN:WriteStruct_Count==219 */ typedef struct { U8 key_seq; /*< 0: 1> key sequence */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_ciph_key_num; #endif #ifndef __T_follow_proceed__ #define __T_follow_proceed__ /* * Follow on proceed * CCDGEN:WriteStruct_Count==220 */ /* typedef void T_follow_proceed;*/ #endif #ifndef __T_ident__ #define __T_ident__ /* * Identity type * CCDGEN:WriteStruct_Count==221 */ typedef struct { U8 ident_type; /*< 0: 1> Type of identity */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_ident; #endif #ifndef __T_loc_area_ident__ #define __T_loc_area_ident__ /* * Location Area Identification * CCDGEN:WriteStruct_Count==222 */ typedef struct { U8 mcc[3]; /*< 0: 3> Mobile Country Code */ U8 c_mnc; /*< 3: 1> counter */ U8 mnc[3]; /*< 4: 3> Mobile Network Code */ U8 _align0; /*< 7: 1> alignment */ U16 lac; /*< 8: 2> Location Area Code */ U8 _align1; /*< 10: 1> alignment */ U8 _align2; /*< 11: 1> alignment */ } T_loc_area_ident; #endif #ifndef __T_loc_upd_type__ #define __T_loc_upd_type__ /* * Location updating type * CCDGEN:WriteStruct_Count==223 */ typedef struct { U8 follow; /*< 0: 1> Follow on request */ U8 lut; /*< 1: 1> Location updating type */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_loc_upd_type; #endif #ifndef __T_mob_id__ #define __T_mob_id__ /* * Mobile Identity * CCDGEN:WriteStruct_Count==224 */ typedef struct { U8 ident_type; /*< 0: 1> Type of identity */ U8 odd_even; /*< 1: 1> Odd Even indicaction */ U8 v_ident_dig; /*< 2: 1> valid-flag */ U8 c_ident_dig; /*< 3: 1> counter */ U8 ident_dig[16]; /*< 4: 16> Identity digit */ U8 _align0; /*< 20: 1> alignment */ U8 _align1; /*< 21: 1> alignment */ U8 _align2; /*< 22: 1> alignment */ U8 v_tmsi; /*< 23: 1> valid-flag */ BUF_tmsi tmsi; /*< 24: 12> TMSI */ U8 v_dmy; /*< 36: 1> valid-flag */ U8 c_dmy; /*< 37: 1> counter */ U8 dmy[16]; /*< 38: 16> Dummy */ U8 _align3; /*< 54: 1> alignment */ U8 _align4; /*< 55: 1> alignment */ } T_mob_id; #endif #ifndef __T_pd_and_sapi__ #define __T_pd_and_sapi__ /* * PD and SAPI * CCDGEN:WriteStruct_Count==225 */ typedef struct { U8 sapi; /*< 0: 1> SAPI */ U8 pd; /*< 1: 1> PD */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_pd_and_sapi; #endif #ifndef __T_full_net_name__ #define __T_full_net_name__ /* * Full Network Name * CCDGEN:WriteStruct_Count==226 */ typedef struct { U8 cs; /*< 0: 1> Coding Scheme */ U8 add_ci; /*< 1: 1> Add Country Information */ U8 num_spare; /*< 2: 1> Number of spare bits */ U8 c_text; /*< 3: 1> counter */ U8 text[MAXNAME]; /*< 4: 40> text string */ } T_full_net_name; #endif /* * Short Network Name * CCDGEN:WriteStruct_Count==227 */ #ifndef __T_short_net_name__ #define __T_short_net_name__ typedef T_full_net_name T_short_net_name; #endif #ifndef __T_net_tz__ #define __T_net_tz__ /* * Network Time Zone * CCDGEN:WriteStruct_Count==228 */ typedef struct { U8 tz; /*< 0: 1> time zone */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_net_tz; #endif #ifndef __T_net_tz_and_time__ #define __T_net_tz_and_time__ /* * Network Time Zone and Time * CCDGEN:WriteStruct_Count==229 */ typedef struct { U8 year[2]; /*< 0: 2> year */ U8 month[2]; /*< 2: 2> month */ U8 day[2]; /*< 4: 2> day */ U8 hour[2]; /*< 6: 2> hour */ U8 minute[2]; /*< 8: 2> minute */ U8 second[2]; /*< 10: 2> second */ U8 tz; /*< 12: 1> time zone */ U8 _align0; /*< 13: 1> alignment */ U8 _align1; /*< 14: 1> alignment */ U8 _align2; /*< 15: 1> alignment */ } T_net_tz_and_time; #endif #ifndef __T_eqv_plmn__ #define __T_eqv_plmn__ /* * PLMN * CCDGEN:WriteStruct_Count==230 */ typedef struct { U8 mcc[3]; /*< 0: 3> Mobile Country Code */ U8 c_mnc; /*< 3: 1> counter */ U8 mnc[3]; /*< 4: 3> Mobile Network Code */ U8 _align0; /*< 7: 1> alignment */ } T_eqv_plmn; #endif #ifndef __T_eqv_plmn_list__ #define __T_eqv_plmn_list__ /* * PLMN list * CCDGEN:WriteStruct_Count==231 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 c_eqv_plmn; /*< 3: 1> counter */ T_eqv_plmn eqv_plmn[5]; /*< 4: 40> PLMN */ } T_eqv_plmn_list; #endif /* * End of substructure section, begin of message definition section */ #ifndef __T_D_ABORT__ #define __T_D_ABORT__ /* * * CCDGEN:WriteStruct_Count==232 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 rej_cause; /*< 1: 1> Reject cause */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_D_ABORT; #endif #ifndef __T_D_AUTH_REJ__ #define __T_D_AUTH_REJ__ /* * * CCDGEN:WriteStruct_Count==233 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_D_AUTH_REJ; #endif #ifndef __T_D_AUTH_REQ__ #define __T_D_AUTH_REQ__ /* * * CCDGEN:WriteStruct_Count==234 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_ciph_key_num ciph_key_num; /*< 4: 4> Ciphering Key Sequence Number */ T_auth_rand auth_rand; /*< 8: 20> Authentication parameter RAND */ } T_D_AUTH_REQ; #endif #ifndef __T_U_AUTH_RES__ #define __T_U_AUTH_RES__ /* * * CCDGEN:WriteStruct_Count==235 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ BUF_auth_sres auth_sres; /*< 4: 12> Authentication parameter SRES */ } T_U_AUTH_RES; #endif #ifndef __T_U_CM_REESTAB_REQ__ #define __T_U_CM_REESTAB_REQ__ /* * * CCDGEN:WriteStruct_Count==236 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_ciph_key_num ciph_key_num; /*< 4: 4> Ciphering Key Sequence Number */ T_mob_class_2 mob_class_2; /*< 8: 20> Mobile Station Classmark 2 (type defined in "m_rr_com.h") */ T_mob_id mob_id; /*< 28: 56> Mobile Identity */ U8 _align3; /*< 84: 1> alignment */ U8 _align4; /*< 85: 1> alignment */ U8 _align5; /*< 86: 1> alignment */ U8 v_loc_area_ident; /*< 87: 1> valid-flag */ T_loc_area_ident loc_area_ident; /*< 88: 12> Location Area Identification */ } T_U_CM_REESTAB_REQ; #endif #ifndef __T_U_CM_SERV_ABORT__ #define __T_U_CM_SERV_ABORT__ /* * * CCDGEN:WriteStruct_Count==237 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_U_CM_SERV_ABORT; #endif #ifndef __T_D_CM_SERV_ACCEPT__ #define __T_D_CM_SERV_ACCEPT__ /* * * CCDGEN:WriteStruct_Count==238 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_D_CM_SERV_ACCEPT; #endif #ifndef __T_D_CM_SERV_REJ__ #define __T_D_CM_SERV_REJ__ /* * * CCDGEN:WriteStruct_Count==239 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 rej_cause; /*< 1: 1> Reject cause */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_D_CM_SERV_REJ; #endif #ifndef __T_U_CM_SERV_REQ__ #define __T_U_CM_SERV_REQ__ /* * * CCDGEN:WriteStruct_Count==240 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 cm_serv_type; /*< 1: 1> CM service type */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ T_ciph_key_num ciph_key_num; /*< 4: 4> Ciphering Key Sequence Number */ T_mob_class_2 mob_class_2; /*< 8: 20> Mobile Station Classmark 2 (type defined in "m_rr_com.h") */ T_mob_id mob_id; /*< 28: 56> Mobile Identity */ } T_U_CM_SERV_REQ; #endif #ifndef __T_D_IDENT_REQ__ #define __T_D_IDENT_REQ__ /* * * CCDGEN:WriteStruct_Count==241 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_ident ident; /*< 4: 4> Identity type */ } T_D_IDENT_REQ; #endif #ifndef __T_U_IDENT_RES__ #define __T_U_IDENT_RES__ /* * * CCDGEN:WriteStruct_Count==242 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_mob_id mob_id; /*< 4: 56> Mobile Identity */ } T_U_IDENT_RES; #endif #ifndef __T_U_IMSI_DETACH_IND__ #define __T_U_IMSI_DETACH_IND__ /* * * CCDGEN:WriteStruct_Count==243 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_mob_class_1 mob_class_1; /*< 4: 4> Mobile Station Classmark 1 (type defined in "m_rr_com.h") */ T_mob_id mob_id; /*< 8: 56> Mobile Identity */ } T_U_IMSI_DETACH_IND; #endif #ifndef __T_D_LOC_UPD_ACCEPT__ #define __T_D_LOC_UPD_ACCEPT__ /* * * CCDGEN:WriteStruct_Count==244 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_loc_area_ident loc_area_ident; /*< 4: 12> Location Area Identification */ U8 _align3; /*< 16: 1> alignment */ U8 _align4; /*< 17: 1> alignment */ U8 _align5; /*< 18: 1> alignment */ U8 v_mob_id; /*< 19: 1> valid-flag */ T_mob_id mob_id; /*< 20: 56> Mobile Identity */ U8 _align6; /*< 76: 1> alignment */ U8 _align7; /*< 77: 1> alignment */ U8 _align8; /*< 78: 1> alignment */ U8 v_follow_proceed; /*< 79: 1> valid-flag */ U8 _align9; /*< 80: 1> alignment */ U8 _align10; /*< 81: 1> alignment */ U8 _align11; /*< 82: 1> alignment */ U8 v_eqv_plmn_list; /*< 83: 1> valid-flag */ T_eqv_plmn_list eqv_plmn_list; /*< 84: 44> PLMN list */ } T_D_LOC_UPD_ACCEPT; #endif #ifndef __T_D_LOC_UPD_REJ__ #define __T_D_LOC_UPD_REJ__ /* * * CCDGEN:WriteStruct_Count==245 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 rej_cause; /*< 1: 1> Reject cause */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_D_LOC_UPD_REJ; #endif #ifndef __T_U_LOC_UPD_REQ__ #define __T_U_LOC_UPD_REQ__ /* * * CCDGEN:WriteStruct_Count==246 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_loc_upd_type loc_upd_type; /*< 4: 4> Location updating type */ T_ciph_key_num ciph_key_num; /*< 8: 4> Ciphering Key Sequence Number */ T_loc_area_ident loc_area_ident; /*< 12: 12> Location Area Identification */ T_mob_class_1 mob_class_1; /*< 24: 4> Mobile Station Classmark 1 (type defined in "m_rr_com.h") */ T_mob_id mob_id; /*< 28: 56> Mobile Identity */ } T_U_LOC_UPD_REQ; #endif #ifndef __T_B_MM_STATUS__ #define __T_B_MM_STATUS__ /* * * CCDGEN:WriteStruct_Count==247 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 rej_cause; /*< 1: 1> Reject cause */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_B_MM_STATUS; #endif #ifndef __T_D_TMSI_REALLOC_CMD__ #define __T_D_TMSI_REALLOC_CMD__ /* * * CCDGEN:WriteStruct_Count==248 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_loc_area_ident loc_area_ident; /*< 4: 12> Location Area Identification */ T_mob_id mob_id; /*< 16: 56> Mobile Identity */ } T_D_TMSI_REALLOC_CMD; #endif #ifndef __T_U_TMSI_REALLOC_COMP__ #define __T_U_TMSI_REALLOC_COMP__ /* * * CCDGEN:WriteStruct_Count==249 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ } T_U_TMSI_REALLOC_COMP; #endif #ifndef __T_D_CM_SERVICE_PROMPT__ #define __T_D_CM_SERVICE_PROMPT__ /* * * CCDGEN:WriteStruct_Count==250 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 _align2; /*< 3: 1> alignment */ T_pd_and_sapi pd_and_sapi; /*< 4: 4> PD and SAPI */ } T_D_CM_SERVICE_PROMPT; #endif #ifndef __T_D_MM_INFORMATION__ #define __T_D_MM_INFORMATION__ /* * * CCDGEN:WriteStruct_Count==251 */ typedef struct { U8 msg_type; /*< 0: 1> Message Type */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 v_full_net_name; /*< 3: 1> valid-flag */ T_full_net_name full_net_name; /*< 4: 44> Full Network Name */ U8 _align2; /*< 48: 1> alignment */ U8 _align3; /*< 49: 1> alignment */ U8 _align4; /*< 50: 1> alignment */ U8 v_short_net_name; /*< 51: 1> valid-flag */ T_short_net_name short_net_name; /*< 52: 44> Short Network Name */ U8 _align5; /*< 96: 1> alignment */ U8 _align6; /*< 97: 1> alignment */ U8 _align7; /*< 98: 1> alignment */ U8 v_net_tz; /*< 99: 1> valid-flag */ T_net_tz net_tz; /*<100: 4> Network Time Zone */ U8 _align8; /*<104: 1> alignment */ U8 _align9; /*<105: 1> alignment */ U8 _align10; /*<106: 1> alignment */ U8 v_net_tz_and_time; /*<107: 1> valid-flag */ T_net_tz_and_time net_tz_and_time; /*<108: 16> Network Time Zone and Time */ } T_D_MM_INFORMATION; #endif #include "CDG_LEAVE.h" #endif