blob: 63e5b89b7b50e1a6dead3d156deef8d94ff4dabf [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) 2016
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#ifndef _PSWAIRMSG_H_
37
38#define _PSWAIRMSG_H_ 1
39
40/*****************************************************************************
41 * Includes
42 ****************************************************************************/
43#include "psw_nvram.h"
44
45typedef enum
46{
47 /* define the page message types */
48 CP_SPY_QPCH_PI_MESSAGE =0, /* MSG id only used to display QPCH PI parameters in Overhead Signaling Spy window */
49 CP_SYSTEM_PARS_MESSAGE =1,
50 CP_ACCESS_PARS_MESSAGE =2,
51 CP_NEIGHBOR_LIST_MESSAGE =3,
52 CP_CDMA_CHANNEL_LIST =4,
53
54 /* The following two messages are obsolete in 95B */
55 CP_SLOTTED_PAGE =5,
56 CP_PAGE_MESSAGE =6,
57
58 CP_ORDER_MESSAGE =7,
59 CP_CHANNEL_ASSIGN_MESSAGE =8,
60 CP_DATA_BURST_MESSAGE =9,
61 CP_AUTH_CHALL_MESSAGE =10,
62 CP_SSD_UPDATE_MESSAGE =11,
63 CP_FEATURE_NOTIFICATION_MESSAGE =12,
64 CP_EXT_SYSTEM_PARS_MESSAGE =13,
65 CP_EXT_NEIGHBOR_LIST_MESSAGE =14,
66 CP_STATUS_REQUEST_MESSAGE =15,
67 CP_SERVICE_REDIRECT_MESSAGE =16,
68 CP_GENERAL_PAGE_MESSAGE =17,
69 CP_GLOBAL_SERVICE_REDIRECT_MESSAGE =18,
70 CP_TMSI_ASSIGNMENT_MESSAGE =19,
71 CP_PACA_MESSAGE =20,
72 CP_EXT_CHANNEL_ASSIGN_MESSAGE =21,
73 CP_GEN_NEIGHBOR_LIST_MESSAGE =22,
74
75 /* new message types for IS-2000 Rev.0 */
76 CP_USER_ZONE_ID_MESSAGE =23,
77 CP_PRI_NGHBR_LST_MESSAGE =24,
78
79 CP_EXT_GLOB_SERV_REDIR_MESSAGE =26,
80 CP_EXT_CDMA_CHAN_LST_MESSAGE =27,
81 CP_USER_ZONE_REJECT_MESSAGE =28,
82
83/* #ifdef IS2000_REV_A */
84 /* new message types for IS-2000 Rev.A */
85 CP_ANSI_41_SYS_PARS_MESSAGE =29,
86 CP_MC_RR_PARS_MESSAGE =30,
87 CP_ANSI_41_RAND_MESSAGE =31,
88 CP_ENH_ACCESS_PARS_MESSAGE =32,
89 CP_UNIV_NGHBR_LST_MESSAGE =33,
90 CP_SECURITY_MODE_COMMAND_MESSAGE =34,
91 CP_UNIV_PAGE_MESSAGE_1 =35,
92 CP_UNIV_PAGE_MESSAGE_2 =36,
93 CP_UNIV_PAGE_MESSAGE_3 =37,
94 CP_UNIV_PAGE_MESSAGE_4 =38,
95 CP_AUTH_REQ_MESSAGE =39,
96 CP_MEID_EXT_CHANNEL_ASSIGN_MESSAGE =46,
97
98#ifdef MTK_DEV_C2K_IRAT
99 CP_ALTERNATIVE_TECH_INFO_MESSAGE =47,
100#endif /* MTK_DEV_C2K_IRAT */
101
102/* #else
103 #define CP_MAX_VALID_PAGE_MESSAGE 28
104#endif */
105 CP_CSCH_GENERAL_EXTENSION_MESSAGE =63 /* supported (only Radio Config Parms record used for now) */
106
107} PchMessageTypeE;
108
109typedef enum
110{
111 /* Access Channel Message types */
112 CP_ACH_REGISTRATION =1,
113 CP_ACH_ORDER =2,
114 CP_ACH_DATA_BURST =3,
115 CP_ACH_ORIGINATION =4,
116 CP_ACH_PAGE_RESPONSE =5,
117 CP_ACH_AUTH_CHALL =6,
118 CP_ACH_STATUS_RESPONSE =7,
119 CP_ACH_TMSI_ASSIGNMENT_COMP =8,
120 CP_ACH_PACA_CANCEL =9,
121 CP_ACH_EXT_STATUS_RESPONSE =10,
122 CP_ACH_RECONNECT =15,
123 CP_ACH_LAST_MESSAGE =16
124}AchMessageTypeE;
125
126typedef enum
127{
128 CP_FTC_NO_MESSAGE,
129 CP_FTC_ORDER_MESSAGE,
130 CP_FTC_AUTHENTICATION_CHALLENGE_MESSAGE,
131 CP_FTC_ALERT_WITH_INFO_MESSAGE,
132 CP_FTC_DATA_BURST_MESSAGE,
133 CP_FTC_HANDOFF_DIRECTION_MESSAGE,
134 CP_FTC_ANALOG_HANDOFF_DIRECTION_MESSAGE,
135 CP_FTC_IN_TRAFFIC_SYSTEM_PARAMETERS_MESSAGE,
136 CP_FTC_NEIGHBOR_LIST_UPDATE_MESSAGE,
137 CP_FTC_SEND_BURST_DTMF_MESSAGE,
138 CP_FTC_POWER_CONTROL_PARAMETERS_MESSAGE,
139 CP_FTC_RETRIEVE_PARAMETERS_MESSAGE,
140 CP_FTC_SET_PARAMETERS_MESSAGE,
141 CP_FTC_SSD_UPDATE_MESSAGE,
142 CP_FTC_FLASH_WITH_INFORMATION_MESSAGE,
143 CP_FTC_MOBILE_STATION_REGISTERED_MESSAGE,
144 CP_FTC_STATUS_REQUEST_MESSAGE,
145 CP_FTC_EXTENDED_HANDOFF_DIRECTION_MESSAGE,
146 CP_FTC_SERVICE_REQUEST_MESSAGE,
147 CP_FTC_SERVICE_RESPONSE_MESSAGE,
148 CP_FTC_SERVICE_CONNECT_MESSAGE,
149 CP_FTC_SERVICE_OPTION_CONTROL_MESSAGE,
150 CP_FTC_TMSI_ASSIGNMENT_MESSAGE,
151 CP_FTC_SERVICE_REDIRECTION_MESSAGE,
152 CP_FTC_SUPPLEMENTAL_CHANNEL_ASSIGNMENT_MESSAGE,
153 CP_FTC_POWER_CONTROL_MESSAGE,
154 CP_FTC_EXTENDED_NEIGHBOR_LIST_UPDATE_MESSAGE,
155 CP_FTC_CANDIDATE_FREQUENCY_SEARCH_REQUEST_MESSAGE,
156 CP_FTC_CANDIDATE_FREQUENCY_SEARCH_CONTROL_MESSAGE,
157 CP_FTC_POWER_UP_FUNCTION_MESSAGE,
158 CP_FTC_POWER_UP_FUNCTION_COMPLETION_MESSAGE,
159 CP_FTC_GENERAL_HANDOFF_DIRECTION_MESSAGE = 31,
160 CP_FTC_RESOURCE_ALLOCATION_MESSAGE = 32,
161 CP_FTC_EXTENDED_RELEASE_MESSAGE = 33,
162 CP_FTC_UNIVERSAL_HANDOFF_DIRECTION_MESSAGE = 34,
163 CP_FTC_EXTENDED_SUPPLEMENTAL_CHANNEL_ASSIGNMENT_MESSAGE = 35,
164 CP_FTC_MOBILE_ASSISTED_BURST_OPERATION_PARAMETERS_MESSAGE = 36,
165 CP_FTC_USER_ZONE_REJECT_MESSAGE = 37,
166 CP_FTC_USER_ZONE_UPDATE_MESSAGE = 38,
167 CP_FTC_EXTENDED_ALERT_WITH_INFORMATION_MESSAGE = 40,
168 CP_FTC_EXTENDED_FLASH_WITH_INFORMATION_MESSAGE =42,
169 CP_FTC_RATE_CHANGE_MESSAGE = 51,
170 CP_FTC_MEID_UNIVERSAL_HANDOFF_DIRECTION_MESSAGE = 53,
171 CP_FTC_RADIO_CONFIG_PARAM_MESSAGE = 54,
172 CP_FTC_MAX_MESSAGES,
173 CP_FTC_GENERAL_EXTENSION_MESSAGE = 255 /* special case */
174} FTCMessageType;
175
176typedef enum
177{
178 CP_RTC_ORDER_MESSAGE = 1,
179 CP_RTC_AUTHENTICATION_CHALLENGE_RESPONSE_MESSAGE,
180 CP_RTC_FLASH_WITH_INFORMATION_MESSAGE,
181 CP_RTC_DATA_BURST_MESSAGE,
182 CP_RTC_PILOT_STRENGTH_MEASUREMENT_MESSAGE,
183 CP_RTC_POWER_MEASUREMENT_REPORT_MESSAGE,
184 CP_RTC_SEND_BURST_DTMF_MESSAGE,
185 CP_RTC_STATUS_MESSAGE,
186 CP_RTC_ORIGINATION_CONTINUATION_MESSAGE,
187 CP_RTC_HANDOFF_COMPLETION_MESSAGE,
188 CP_RTC_PARAMETERS_RESPONSE_MESSAGE,
189 CP_RTC_SERVICE_REQUEST_MESSAGE,
190 CP_RTC_SERVICE_RESPONSE_MESSAGE,
191 CP_RTC_SERVICE_CONNECT_COMPLETION_MESSAGE,
192 CP_RTC_SERVICE_OPTION_CONTROL_MESSAGE,
193 CP_RTC_STATUS_RESPONSE_MESSAGE,
194 CP_RTC_TMSI_ASSIGNMENT_COMPLETION_MESSAGE,
195 CP_RTC_SUPPLEMENTAL_CHANNEL_REQUEST_MESSAGE,
196 CP_RTC_CANDIDATE_FREQUENCY_SEARCH_RESPONSE_MESSAGE,
197 CP_RTC_CANDIDATE_FREQUENCY_SEARCH_REPORT_MESSAGE,
198 CP_RTC_PERIODIC_PILOT_STRENGTH_MEASUREMENT_MESSAGE,
199 CP_RTC_OUTER_LOOP_REPORT_MESSAGE,
200 CP_RTC_RESOURCE_REQUEST_MESSAGE = 23,
201 CP_RTC_EXTENDED_RELEASE_RESPONSE_MESSAGE = 24,
202 CP_RTC_EXTENDED_PILOT_STRENGTH_MEASUREMENT_MESSAGE=28,
203 CP_RTC_EXTENDED_HANDOFF_COMPLETION_MESSAGE = 29,
204 CP_RTC_RESOURCE_RELEASE_REQUEST_MESSAGE = 30,
205 CP_RTC_MAX_MESSAGES
206} RTCMessageType;
207
208
209/*****************************************************************************
210 * Defines
211 ****************************************************************************/
212#define CP_SYSTIME_SIZE 5 /* # bytes to hold 36 bits */
213#define ENG_SUPERFRAME_COUNT 4 /* 4 frames to a superframe */
214typedef kal_uint32 WbiosSystime; /* holds system time - 32 bits */
215
216/****************************************************************************
217 * Sync Channel message structures
218 ****************************************************************************/
219
220/* define set of allowable page channel data rates */
221typedef enum
222{
223 PRAT_9600=0,
224 PRAT_4800
225} PageChRate;
226
227/* define set of allowable BCCH data rates */
228typedef enum
229{
230 SR1_BRAT_4800 = 0,
231 SR1_BRAT_9600 =1,
232 SR1_BRAT_19200 =2,
233 SR1_BRAT_REVERSED =3
234} BcchRate;
235
236/* define set of allowable SR1 TD Modes */
237typedef enum
238{
239 SR1_OTD = 0,
240 SR1_STS =1,
241 SR1_TD_NOT_USED
242} Sr1TdModes;
243
244/* define set of allowable SR1 TD Power Level */
245typedef enum
246{
247 SR1_9DB = 0,
248 SR1_6DB = 1,
249 SR1_3DB = 2,
250 SR1_SAME_DB =3,
251 SR1_TD_POWER_NOT_USED
252} Sr1TdPowerLevel;
253
254/* Position of the Primary SR3 Pilot */
255typedef enum
256{
257 SR3_LOWEST_FREQ = 0,
258 SR3_CENTER_FREQ = 1,
259 SR3_HIGHEST_FREQ = 2,
260 SR3_RESERVED = 3
261} Sr3PilotPosition;
262
263/* Pilot Transmission Power */
264typedef enum
265{
266 SR3_0_DB = 0,
267 SR3_1_DB = 1,
268 SR3_2_DB = 2,
269 SR3_3_DB = 3,
270 SR3_4_DB = 4,
271 SR3_5_DB = 5,
272 SR3_6_DB = 6,
273 SR3_7_DB = 7
274} Sr3PilotPower;
275
276/* Sync message contents */
277typedef struct
278{
279 kal_uint8 length; /* Message Length */
280 kal_uint8 msgType; /* Message Type */
281 kal_uint8 pRev; /* Protocol Revision Level */
282 kal_uint8 minPRev; /* Minimum protocol revision required by MS */
283 kal_uint16 sid; /* System ID */
284 kal_uint16 nid; /* Network ID */
285 kal_uint16 pilotPN; /* Pilot PN sequence offset index */
286 kal_uint8 lcState[6]; /* Long code state - 42 bits */
287 kal_uint8 sysTime[CP_SYSTIME_SIZE]; /* System time - 36 bits */
288 kal_uint8 lpSec; /* Number of leap seconds */
289 kal_uint8 ltmOff; /* Offset of local time from system time */
290 kal_bool daylt; /* Daylight savings time indicator */
291 PageChRate prat; /* Paging channel data rate */
292 kal_uint16 cdmaFreq; /* Paging channel */
293 kal_uint16 extCdmaFreq; /* For RC2 or greater or supports QPCH */
294 kal_bool sr1BcchSupported; /* Contains BCCH information */
295 kal_bool sr1NonTdFreqIncl;
296 kal_uint16 sr1CdmaFreqNonTd;
297 BcchRate sr1BratNonTd;
298 kal_uint8 sr1CratNonTd;
299 kal_uint8 sr1BcchCodeChanNonTd;
300 kal_bool sr1TdIncl;
301 kal_uint16 sr1CdmaFreqTd;
302 BcchRate sr1BratTd;
303 kal_uint8 sr1CratTd;
304 kal_uint8 sr1BcchCodeChanTd;
305 Sr1TdModes sr1TdMode;
306 Sr1TdPowerLevel sr1TdPowerLevel;
307 /* SR3 Parameters */
308 kal_bool sr3Incl;
309 kal_bool sr3CenterFreqIncl;
310 kal_uint16 sr3CenterFreq;
311 BcchRate sr3Brat;
312 kal_uint8 sr3BcchCodeChan;
313 Sr3PilotPosition sr3PrimaryPilot;
314 Sr3PilotPower sr3PilotPower1;
315 Sr3PilotPower sr3PilotPower2;
316/* BCY 11/14/00 */
317 kal_bool dsIncl;
318 kal_uint32 dsBlob;
319} SyncMessage;
320
321/* Sync message structure for engine */
322typedef struct
323{
324 kal_uint16 startFrame; /* first frame message was received in */
325 kal_uint16 endFrame; /* last frame of message */
326 SyncMessage msg; /* message contents */
327} SyncChannelMessage;
328
329
330
331/* Traffic channel message transmission control */
332typedef enum
333{
334 TX_OFF = 0,
335 TX_ON_IMMEDIATE,
336 TX_ON_CF_RULES
337} TXControl;
338
339
340#define TX_CONTINUOUS 0
341typedef enum
342{
343 RTC_PREAMBLE = 0,
344 RTC_SIGNALING_ONLY,
345 RTC_TRAFFIC
346} RTCTraffic;
347
348
349typedef enum
350{
351 CF_PERIODIC_SEARCH_OFF,
352 CF_PERIODIC_SEARCH_ENABLED,
353 CF_PERIODIC_SEARCH_DISABLED
354} CFPeriodicSearchCtl;
355
356
357typedef enum
358{
359 L2_INACTIVE,
360 L2_IDLE,
361 L2_FILL_MESSAGE,
362 L2_HOLD
363} L2_STATE;
364
365
366typedef enum
367{
368 L2_FTC_STOP_ST,
369 L2_FTC_INITIALIZATION_ST,
370 L2_FTC_IDLE_ST,
371 L2_FTC_HARD_HANDOFF_ST,
372 L2_FTC_CANDIDATE_FREQUENCY_ST,
373 L2_FTC_HARD_HANDOFF_W_RETURN_ON_FAILURE_ST,
374 L2_FTC_HARD_HANDOFF_INIT_ST,
375 L2_FTC_HARD_HANDOFF_W_RTN_ON_FAIL_INIT_ST,
376 L2_FTC_NST_TRFFIC_ST,
377 L2_FTC_MAX_STATES
378} L2FTCState;
379
380
381typedef enum
382{
383 L2_FTC_START_EV,
384 L2_FTC_STOP_EV,
385 L2_FTC_FRAME_EV,
386 L2_FTC_HARD_HANDOFF_EV,
387 L2_FTC_CANDIDATE_FREQUENCY_START_EV,
388 L2_FTC_CANDIDATE_FREQUENCY_END_EV,
389 /* SNR HHO 11/2/00 */
390 L2_FTC_HARD_HANDOFF_W_RETURN_ON_FAILURE_EV,
391 L2_FTC_HARD_HANDOFF_TIMER_EXPIRED_EV,
392 L2_FTC_MAX_EVENTS
393} L2FTCEvent;
394
395#define CP_MAX_MUX1_CATEGORY 14
396#define CP_MAX_MUX2_CATEGORY 26
397#define CP_MAX_MUX1_DCCH_CATEGORY 15
398#define CP_MAX_MUX2_DCCH_CATEGORY 27
399#define CP_MAX_SCH0_CATEGORY 7
400#define CP_MAX_BCCH_CATEGORY 5
401#define CP_MAX_FCCCH_CATEGORY 4
402
403#define F_PCH 0
404#define F_BCCH 1
405#define F_FCCCH 2
406
407#if defined (MTK_CBP)
408/* define the MIN half frames number to calculate the vaild half frames percent */
409#define MIN_HALF_FRAMES 200
410#endif
411#define PCH_FRAME_LENGTH 24 /* units: Bytes */
412
413/* Multiplex Option 1 Category definitions */
414typedef enum
415{ /*bps Rate D&B B&B Primary Signalling Secondary */
416 MUX1_CAT1 = 1, /*9600 1 Primary */
417 MUX1_CAT2 = 2, /*9600 1/2 D&B Primary Signalling */
418 MUX1_CAT3 = 3, /*9600 1/4 D&B Primary Signalling */
419 MUX1_CAT4 = 4, /*9600 1/8 D&B Primary Signalling */
420 MUX1_CAT5 = 5, /*9600 1 B&B Signalling */
421 MUX1_CAT6 = 6, /*4800 1/2 Primary */
422 MUX1_CAT7 = 7, /*2400 1/4 Primary */
423 MUX1_CAT8 = 8, /*1200 1/8 Primary */
424 MUX1_CAT9 = 9, /*9600 1 with bit errors */
425 MUX1_CAT10 = 10, /* Frame with insufficient frame quality */
426 MUX1_CAT11 = 11, /*9600 1/2 D&B Primary Secondary */
427 MUX1_CAT12 = 12, /*9600 1/4 D&B Primary Secondary */
428 MUX1_CAT13 = 13, /*9600 1/8 D&B Primary Secondary */
429 MUX1_CAT14 = 14, /*9600 1 B&B Secondary */
430 MUX1_CAT15 = 15 /*9600 1 DCCH NULL Frame */
431} Mux1Cat;
432
433/* Multiplex Option 2 Category definitions */
434typedef enum
435{ /*bps Rate D&B B&B Primary Signalling Secondary */
436 MUX2_CAT1 = 1, /*14400 1 Primary */
437 MUX2_CAT2 = 2, /*14400 1/2 D&B Primary Signalling */
438 MUX2_CAT3 = 3, /*14400 1/4 D&B Primary Signalling */
439 MUX2_CAT4 = 4, /*14400 1/8 D&B Primary Signalling */
440 MUX2_CAT5 = 5, /*14400 1 B&B Signalling */
441 MUX2_CAT6 = 6, /*14400 1/2 D&B Primary Secondary */
442 MUX2_CAT7 = 7, /*14400 1/4 D&B Primary Secondary */
443 MUX2_CAT8 = 8, /*14400 1/8 D&B Primary Secondary */
444 MUX2_CAT9 = 9, /*14400 1 B&B Secondary */
445 MUX2_CAT10 = 10, /*14400 1/8 D&B Primary Signalling Secondary */
446 MUX2_CAT11 = 11, /*7200 1 Primary */
447 MUX2_CAT12 = 12, /*7200 1/4 D&B Primary Signalling */
448 MUX2_CAT13 = 13, /*7200 1/8 D&B Primary Signalling */
449 MUX2_CAT14 = 14, /*7200 1 B&B Signalling */
450 MUX2_CAT15 = 15, /*7200 1/4 D&B Primary Secondary */
451 MUX2_CAT16 = 16, /*7200 1/8 D&B Primary Secondary */
452 MUX2_CAT17 = 17, /*7200 1 B&B Secondary */
453 MUX2_CAT18 = 18, /*7200 1/8 D&B Primary Signalling Secondary */
454 MUX2_CAT19 = 19, /*3600 1 Primary */
455 MUX2_CAT20 = 20, /*3600 1/8 D&B Primary Signalling */
456 MUX2_CAT21 = 21, /*3600 1 B&B Signalling */
457 MUX2_CAT22 = 22, /*3600 1/8 D&B Primary Secondary */
458 MUX2_CAT23 = 23, /*3600 1 B&B Secondary */
459 MUX2_CAT24 = 24, /*1800 1 Primary */
460 MUX2_CAT25 = 25, /*1800 1 B&B Secondary */
461 MUX2_CAT26 = 26, /* Frame with insufficient frame quality */
462 MUX2_CAT27 = 27 /*1800 1 DCCH NULL Frame */
463} Mux2Cat;
464
465#ifdef MTK_PLT_ON_PC_UT
466#define MAX_TMSI_ZONE_LEN 16
467#endif
468
469/*****************************************************************************
470 * Data Structures
471 ****************************************************************************/
472
473/* Sync Channel Frame Indication data */
474typedef struct
475{
476 kal_uint16 frameNum; /* count of received sync frames modulo 2048 */
477 kal_uint8 *data; /* pointer to 32 bits of frame data */
478} SyncFrame;
479
480/* Page Channel Frame Indication data */
481typedef struct
482{
483 WbiosSystime sysTime; /* system time frame received in */
484 kal_uint16 size; /* size of data in bits */
485 kal_uint8 *data; /* pointer to frame data, including SCI bits */
486} PageFrame;
487
488/* FCCCH Frame Indication data */
489typedef struct
490{
491 WbiosSystime sysTime; /* system time frame received in */
492 kal_uint16 size; /* size of data in bits */
493 kal_uint8 *data; /* pointer to frame data, including SI bits */
494} FCCCHFrame;
495
496/* BCCH Frame Indication data */
497typedef struct
498{
499 WbiosSystime sysTime; /* system time frame received in */
500 kal_uint16 size; /* size of data in bits */
501 kal_uint8 *data; /* pointer to frame data, including SCI bits */
502} BCCHFrame;
503
504/* Page Channel Message structure provides the packed buffer and relevant */
505/* system information. */
506typedef struct
507{
508 WbiosSystime somTime; /* time the start of msg received */
509 WbiosSystime sysTime; /* system time from last frame */
510 kal_bool ackReceived; /* set KAL_TRUE if a VALID ACK for an */
511 /* outstanding ack was received in */
512 /* this message, else set to KAL_FALSE */
513
514 kal_uint16 length; /* length of message */
515 kal_uint8 type; /* message type */
516 kal_uint8 *msgBuffer; /* pointer to packed message buffer*/
517 kal_uint16 sduOffset; /* offset to first bit in L3 SDU */
518 kal_uint8 PD_value; /* Protocol Discriminator*/
519 kal_uint8 ChanType; /* Channel Type: PCH, BCCH, FCCCH*/
520#if defined(MTK_CBP)
521 kal_bool duplicateMsg; /* Indicate it is a duplicate message or not,
522 * KAL_TRUE: ignore the messge body
523 */
524#endif
525 kal_uint16 geRecordsInc; /* if GEM, this will be updated with bitmap of records included */
526} PChMessage;
527
528
529/* BCY 08/28/00: !!! Need to change all PCHMessage to FcschMessage */
530typedef PChMessage FcschMessage;
531
532#ifdef MTK_PLT_ON_PC_UT
533/* LAC field of Page Channel Message, used for UT */
534typedef struct
535{
536 kal_uint8 msgType; /* 8 bits */
537 kal_uint8 msgLen; /* 8 bits */
538 kal_uint8 ackSeq; /* 3 bits */
539 kal_uint8 msgSeq; /* 3 bits */
540 kal_bool ackReq;
541 kal_bool validAck;
542 kal_uint8 addrType; /* 3 bits */
543 kal_uint8 addrLen; /* 4 bits */
544 kal_uint32 imsi_s1; /* 24 bits IMSI_S1 value */
545 kal_uint16 imsi_s2; /* 10 bits IMSI_S2 value */
546 kal_uint32 esn; /* 32 bits ESN value */
547 kal_uint8 imsiClass; /* 1 bits imsi class value */
548 kal_uint8 imsiClassType; /* 2 bits if class0, 1 bit if class1 */
549 kal_uint16 mcc; /* 10 bits for MCC value */
550 kal_uint8 imsi_11_12; /* 7 bits */
551 kal_uint8 imsiAddrNum; /* 3 bits */
552 kal_uint32 tmsiCode; /* 16 or 24 or 32 bits according to addrLen */
553 kal_uint8 bcastAddr[CP_BCAST_ADDRESS_MAX_SIZE]; /* length of array is addrLen */
554 /* following is only for paging record if any */
555 kal_bool validPagingRec;
556 kal_uint8 addrClass; /* 2 bits */
557 kal_uint8 addrSubclass; /* 2 bits */
558 kal_uint8 tmsiZoneLen; /* 4 bits */
559 kal_uint8 tmsiZone[MAX_TMSI_ZONE_LEN];
560 kal_uint8 burstType; /* 6 bits */
561 kal_uint8 burstAddrLen; /* 4 bits */
562 /* following is for CAM/ECAM/MEID ECAM */
563 kal_uint8 assignMode; /* 3 bits */
564} PCHMessageLACField;
565#endif
566
567typedef enum
568{
569 MUX_OPTION_INVALID = 0,
570 MUX_OPTION1 = 1,
571 MUX_OPTION2,
572 MUX_OPTION3,
573 MUX_OPTION4,
574 MUX_OPTION5,
575 MUX_OPTION6,
576 MUX_OPTION7,
577 MUX_OPTION8,
578 MUX_OPTION9,
579 MUX_OPTION10,
580 MUX_OPTION11,
581 MUX_OPTION12,
582 MUX_OPTION13,
583 MUX_OPTION14,
584 MUX_OPTION15,
585 MUX_OPTION16,
586 MUX_OPTION704 = 0x704,
587 MUX_OPTION809 = 0x809,
588 MUX_OPTION80A = 0x80A,
589 MUX_OPTION811 = 0x811,
590 MUX_OPTION812 = 0x812,
591 MUX_OPTION821 = 0x821,
592 MUX_OPTION822 = 0x822,
593 MUX_OPTION905 = 0x905,
594 MUX_OPTION906 = 0x906,
595 MUX_OPTION909 = 0x909,
596 MUX_OPTION90A = 0x90A,
597 MUX_OPTION911 = 0x911,
598 MUX_OPTION912 = 0x912,
599 MUX_OPTION921 = 0x921,
600 MUX_OPTION922 = 0x922,
601 MUX_OPTIONF00 = 0xF00, /* PDCH Mux Option */
602 MUX_OPTIONF20 = 0xF20
603
604} MultiplexOption;
605
606/* Traffic Channel Frame Indication data */
607typedef struct
608{
609 WbiosSystime sysTime; /* system time frame received in */
610 MultiplexOption muxOption; /* multiplex option used in deriving frame */
611 kal_uint8 category; /* frame category # - depends on mux_option */
612 kal_uint8 quality; /* good or bad frame based on category & mux */
613 kal_uint16 sigBits;
614 kal_uint8* data; /* ptr to traffic data (cat. determines len) */
615} TCFrame;
616
617typedef struct
618{
619 /* SNR ACK 1/30/01 */
620 kal_uint8 ackReq;
621 WbiosSystime sysTime;
622 kal_uint8 length;
623 kal_uint8 sduEncryptMode;
624 kal_uint8 encSeq;
625 kal_uint8 extMsgLength;
626 kal_uint8 type;
627 kal_uint8 encryption;
628 kal_uint16 pduStartIndex; /* Start of L3 PDU */
629 kal_uint16 geRecordsInc; /* if GEM, this will be updated with bitmap of records included */
630 kal_uint8* buffer; /* pointer to packed message buffer */
631} FTCMessage;
632
633#ifdef MTK_PLT_ON_PC_UT
634typedef struct
635{
636 kal_uint8 msgLen; /* 8 bits */
637 kal_uint8 msgType; /* 8 bits */
638 kal_uint8 ackSeq; /* 3 bits */
639 kal_uint8 msgSeq; /* 3 bits */
640 kal_uint8 ackReq; /* 1 bit */
641 kal_uint8 encryption; /* 2 bits */
642} FTCMessageLACField;
643#endif
644
645
646typedef struct
647{
648 kal_bool resetFpc;
649 kal_uint8 pwrRepThresh;
650 kal_uint8 pwrRepFrames;
651 kal_bool pwrThreshEnable;
652 kal_bool pwrPeriodEnable;
653 kal_uint8 pwrRepDelay;
654} PCNPMData;
655
656#endif /* _PSWAIRMSG_H_ */
657