[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6

MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF  modem version: NA

Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/protocol/l4_c2k/valsmsdefine.h b/mcu/interface/protocol/l4_c2k/valsmsdefine.h
new file mode 100644
index 0000000..d49ed93
--- /dev/null
+++ b/mcu/interface/protocol/l4_c2k/valsmsdefine.h
@@ -0,0 +1,720 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2016
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2006-2012 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+
+/*===========================================================================
+
+                 V A L   S M S   DEFINE   H E A D E R    F I L E
+
+  This file contains the definitions for the  SMS
+  module of the VIA Abstraction Layer.
+
+===========================================================================*/
+#ifndef VALSMSDEFINE_H
+#define VALSMSDEFINE_H
+
+#include "valapi.h"
+#include "valsmscust.h"
+
+//don't modify following macro, brew has referred to it
+/* field mask definitions */
+#define SERVICE_CAT_PRESENT            0x00000001
+#define ADDRESS_PRESENT                0x00000002
+#define SMS_SUBADDRESS_PRESENT         0x00000004
+#define USER_DATA_PRESENT              0x00000008
+#define USER_RESP_CODE_PRESENT         0x00000010
+#define MC_TIME_STAMP_PRESENT          0x00000020
+#define ABS_VAL_PERIOD_PRESENT         0x00000040
+#define REL_VAL_PERIOD_PRESENT         0x00000080
+#define ABS_DEF_DEL_TIME_PRESENT       0x00000100
+#define REL_DEF_DEL_TIME_PRESENT       0X00000200
+#define PRIORITY_IND_PRESENT           0x00000400
+#define PRIVACY_IND_PRESENT            0x00000800
+#define REPLY_OPTION_PRESENT           0x00001000
+#define NUM_MESSAGES_PRESENT           0x00002000
+#define ALERT_MSG_DEL_PRESENT          0x00004000
+#define LANGUAGE_IND_PRESENT           0x00008000
+#define CALLBACK_NUM_PRESENT           0x00010000
+#define MSG_DISP_MODE_PRESENT          0x00020000
+#define MULT_ENCODE_USER_DATA_PRESENT  0x00040000
+#define MESSAGE_DEPOSIT_INDEX_PRESENT  0x00080000
+#define MESSAGE_STATUS_PRESENT         0x00400000
+#define SER_CAT_PROGRAM_RESULT_PRESENT 0x00800000
+#define SER_CAT_PROGRAM_DATA_PRESENT   0x01000000
+#define BEARER_REPLY_OPTION_PRESENT    0x02000000
+#ifdef KDDI_EXTENSIONS
+#define IP_ADDRESS_PRESENT                      0x04000000
+#define NOTIFY_FLAG_PRESENT                    0x08000000
+#define UIM_ID_PRESENT                              0x10000000
+#endif
+
+typedef kal_uint16 ValSmsRecIdT;
+
+//don't modify following Enum, brew has referred to it
+/*! txt message type define 
+*/
+typedef enum
+{
+  EMPTY      = 0,   /* the block has not occupied by a sms message */
+  READ       = 0x01,
+  TO_BE_READ = 0x03,
+  SENT       = 0x05,
+  TO_BE_SENT = 0x07,
+  DUPLICATE_READ=0x0F,
+  DUPLICATE_TO_BE_READ=0x11, 
+  DRAFT = 0x15,
+
+  ARCHIVE_READ = 0x21,
+  ARCHIVE_TO_BE_READ = 0x23,
+  ARCHIVE_SENT = 0x25,
+  ARCHIVE_TO_BE_SENT = 0x27,
+  
+  NOT_COMPLETE = 0x33,
+
+  TO_BE_DELETED = 0x40,
+  
+  VAL_SMS_MAX_STATE
+} ValSmsStatT;
+
+//don't modify following Enum, brew has referred to it
+/*sms message type*/
+typedef enum
+{
+  VAL_SMS_SMS_MSG_TYPE_POINT_TO_POINT = 0,
+  VAL_SMS_SMS_MSG_TYPE_BROADCAST,
+#if defined(LGT_EXTENSIONS)
+  VAL_SMS_SMS_MSG_TYPE_UNKNOWN,
+#endif  
+  VAL_SMS_SMS_MSG_TYPE_ACKNOWLEDGE,
+  VAL_SMS_MAX_SMS_MSG_TYPE
+} ValSmsTransMsgTypeT;
+
+/* Macro to validate ValSmsMsgTypeT */
+#define IS_VALID_VSMS_MSG_TYPE(a)  ((VAL_SMS_SMS_MSG_TYPE_POINT_TO_POINT == (a)) ||     \
+                                     ((VAL_SMS_SMS_MSG_TYPE_POINT_TO_POINT < (a))    && \
+                                    ((a) < VAL_SMS_MAX_SMS_MSG_TYPE)))
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_MSG_TYPE_RESERVED               = 0,
+  VAL_SMS_MSG_TYPE_TERMINATION_DELIVER,
+  VAL_SMS_MSG_TYPE_ORIGINATION_SUBMIT,
+  VAL_SMS_MSG_TYPE_ORIGINATION_CANCELLATION,
+  VAL_SMS_MSG_TYPE_TERMINATION_DELIVERY_ACK,
+  VAL_SMS_MSG_TYPE_USER_ACK,
+  VAL_SMS_MSG_TYPE_READ_ACK,
+  VAL_SMS_MAX_MSG_TYPE
+} ValSmsTeleMsgT;
+
+/* Macro for validating vsms msg type */
+#define IS_VALID_SMS_MSG(a)  \
+         ((VAL_SMS_MSG_TYPE_RESERVED == (a)) || ((VAL_SMS_MSG_TYPE_RESERVED < (a)) && ((a) < VAL_SMS_MAX_MSG_TYPE)))
+
+//don't modify following Enum, brew has referred to it
+/*! Val sms teleservice id define */
+typedef enum
+{
+  /*----------------------------------------------------------------
+     The following are not defined as a teleservice in IS-637,
+     but they are used to indicate the teleservice type in Analog mode.
+  -----------------------------------------------------------------*/
+  VAL_SMS_TS_ID_IS91_PAGE        = 0,
+  VAL_SMS_TS_ID_IS91_VOICE_MAIL      = 1,
+  VAL_SMS_TS_ID_IS91_SHORT_MESSAGE  = 2,
+
+  /*----------------------------------------------------------------
+     Voice mail notification through Message Waiting Indication in
+     CDMA mode or Analog mode
+  -----------------------------------------------------------------*/
+  VAL_SMS_TS_ID_VOICE_MAIL_MWI      = 3,
+
+  /*----------------------------------------------------------------
+   IS-637 Teleservices
+  -----------------------------------------------------------------*/
+  VAL_SMS_TS_ID_IS91        = 4096,
+  VAL_SMS_TS_ID_PAGE        = 4097,
+  VAL_SMS_TS_ID_MESSAGE     = 4098,
+  VAL_SMS_TS_ID_VOICE_MAIL  = 4099,
+  VAL_SMS_TS_ID_WAP,
+  VAL_SMS_TS_ID_WEMT ,        /*add for EMS*/
+  VAL_SMS_TS_ID_SCPT,         /*add for SCPT*/
+  VAL_SMS_TS_ID_CATPT,       /*add for UIM card application*/
+  VAL_SMS_BROAD_CAST_SRV,     /*add for the broadcast service*/
+  VAL_SMS_TS_ID_IMSSRV      = 4242,
+#if defined(LGT_EXTENSIONS)
+  VAL_SMS_LGT_UNKNOWN = 32521,  /* FEATURE_UNKNOWN_TID_SUPPORT */
+#endif
+  VAL_SMS_MPC_ID  =     65001,
+  VAL_SMS_TS_ID_PUSH= 65002,	/*sms push for China Telecom*/
+  VAL_SMS_REGISTER_SRV		=65005,	/*add for register message service*/
+  VAL_SMS_TS_ID_DM_PUSH = 65009,
+
+  VAL_SMS_MAX_TS_ID
+} ValSmsTeleSrvIdT;
+
+/*! Macro for validating vsms teleservice id type */
+#define IS_VALID_SMS_TELESERVICE_ID(a)  \
+         ((VAL_SMS_TS_ID_IS91_PAGE == (a)) || ((VAL_SMS_TS_ID_IS91_PAGE < (a)) && ((a) < VAL_SMS_MAX_TS_ID)))
+
+
+typedef enum
+{
+  VAL_SMS_SVR_CAT_UNKNOWN = 0,
+  VAL_SMS_SVR_CAT_EMERGENCIES,
+  VAL_SMS_SVR_CAT_ADMINISTRATIVE,
+  VAL_SMS_SVR_CAT_MAINTENANCE,
+  VAL_SMS_SVR_CAT_GEN_NEWS_LOCAL,
+  VAL_SMS_SVR_CAT_GEN_NEWS_REGIONAL,
+  VAL_SMS_SVR_CAT_GEN_NEWS_NATIONAL,
+  VAL_SMS_SVR_CAT_GEN_NEWS_INTERNATIONAL,
+  VAL_SMS_SVR_CAT_FINANCE_NEWS_LOCAL,
+  VAL_SMS_SVR_CAT_FINANCE_NEWS_REGIONAL,
+  VAL_SMS_SVR_CAT_FINANCE_NEWS_NATIONAL,
+  VAL_SMS_SVR_CAT_FINANCE_NEWS_INTERNATIONAL,
+  VAL_SMS_SVR_CAT_SPORTS_NEWS_LOCAL,
+  VAL_SMS_SVR_CAT_SPORTS_NEWS_REGIONAL,
+  VAL_SMS_SVR_CAT_SPORTS_NEWS_NATIONAL,
+  VAL_SMS_SVR_CAT_SPORTS_NEWS_INTERNATIONAL,
+  VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_LOCAL,
+  VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_REGIONAL,
+  VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_NATIONAL,
+  VAL_SMS_SVR_CAT_ENTERTAINMENT_NEWS_INTERNATIONAL,
+  VAL_SMS_SVR_CAT_LOCAL_WEATHER,
+  VAL_SMS_SVR_CAT_TRAFFIC,
+  VAL_SMS_SVR_CAT_FLIGHT_SCHEDULE,
+  VAL_SMS_SVR_CAT_RESTAURANTS,
+  VAL_SMS_SVR_CAT_LODGINGS,
+  VAL_SMS_SVR_CAT_RETAIL_DIRECTORY,
+  VAL_SMS_SVR_CAT_ADVERTISEMENT,
+  VAL_SMS_SVR_CAT_STOCK_QUOTES,
+  VAL_SMS_SVR_CAT_EMPLOYMENT_OPPORTUNITIES,
+  VAL_SMS_SVR_CAT_MEDICAL_HEALTH,
+  VAL_SMS_SVR_CAT_TECH_NEWS,
+  VAL_SMS_SVR_CAT_MULTI_CATEGORY,
+  VAL_SMS_SVR_CAT_CMAS_PRESIDENT_ALERT = 0X1000,  /* 3GPP2 C.R1001-G SPEC */
+  VAL_SMS_SVR_CAT_CMAS_EXTREME_THREAT_TO_LIFE,
+  VAL_SMS_SVR_CAT_CMAS_SEVERE_THREAT_TO_LIFE,
+  VAL_SMS_SVR_CAT_CMAS_CHILD_ABDUCTION_EMERGNY,
+  VAL_SMS_SVR_CAT_CMAS_TEST_MESSAGE,
+  VAL_SMS_SVR_CAT_CMAS_RESERVED_MAX =0X10FF,
+  VAL_SMS_MAX_SVR_CAT
+} ValSmsSrvCatT;
+
+/* Macro for validating ValSmsSrvCatT */
+#define IS_VALID_SMS_SERVICE_CAT(a)  \
+         ((VAL_SMS_SVR_CAT_UNKNOWN == (a)) || ((VAL_SMS_SVR_CAT_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_SVR_CAT)))
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_NUMBER_PLAN_UNKNOWN = 0,
+  VAL_SMS_NUMBER_PLAN_TELEPHONY,
+  VAL_SMS_NUMBER_PLAN_DATA = 3,
+  VAL_SMS_NUMBER_PLAN_TELEX,
+  VAL_SMS_NUMBER_PLAN_PRIVATE = 9,
+  VAL_SMS_MAX_NUMBER_PLAN
+} ValSmsNumPlanT;
+
+/* Macro for validating ValSmsNumPlanT */
+#define IS_VALID_SMS_NUMBER_PLAN(a)  \
+         ((VAL_SMS_NUMBER_PLAN_UNKNOWN == (a)) || ((VAL_SMS_NUMBER_PLAN_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_NUMBER_PLAN)))
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_DIGIT_MODE_4_BIT   = 0,
+  VAL_SMS_DIGIT_MODE_8_BIT,
+  VAL_SMS_MAX_DIGIT_MODE
+} ValSmsDigitModeT;
+
+/* Macro for validating VAL_SMS digit mode type */
+#define IS_VALID_SMS_DIGIT_MODE(a)  \
+          ((VAL_SMS_DIGIT_MODE_4_BIT ==(a))|| ((VAL_SMS_DIGIT_MODE_4_BIT <(a)) && ((a) < VAL_SMS_MAX_DIGIT_MODE)))
+
+typedef enum
+{
+  VAL_SMS_NUMBER_MODE_ANSI_T1_607 = 0,
+  VAL_SMS_NUMBER_MODE_DATA_NETWORK,
+  VAL_SMS_MAX_NUMBER_MODE
+} ValSmsNumModeT;
+
+/* Macro for validating vsms number mode type */
+#define IS_VALID_SMS_NUMBER_MODE(a)  \
+        ( (VAL_SMS_NUMBER_MODE_ANSI_T1_607 == (a)) || ((VAL_SMS_NUMBER_MODE_ANSI_T1_607 <(a)) && ((a) < VAL_SMS_MAX_NUMBER_MODE)))
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_NUMBER_TYPE_UNKNOWN = 0,
+  VAL_SMS_NUMBER_TYPE_INTERNATIONAL,
+  VAL_SMS_NUMBER_TYPE_NATIONAL,
+  VAL_SMS_NUMBER_TYPE_NETWORK_SPECIFIC,
+  VAL_SMS_NUMBER_TYPE_SUBSCRIBER,
+  VAL_SMS_NUMBER_TYPE_RESERVED,
+  VAL_SMS_NUMBER_TYPE_ABBREVIATED,
+  VAL_SMS_MAX_NUMBER_TYPE
+} ValSmsNumberT;
+
+/* Macro for validating ValSmsNumberT */
+#define IS_VALID_SMS_NUMBER_TYPE(a)  \
+         ((VAL_SMS_NUMBER_TYPE_UNKNOWN == (a)) || ((VAL_SMS_NUMBER_TYPE_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_NUMBER_TYPE)))
+
+typedef enum
+{
+  VAL_SMS_DATA_NUM_TYPE_UNKNOWN = 0,
+  VAL_SMS_DATA_NUM_TYPE_RFC_791,       /* Internet Protocol */
+  VAL_SMS_DATA_NUM_TYPE_RFC_822,       /* Internet Email Address */
+  VAL_SMS_MAX_DATA_NUM_TYPE
+} ValSmsDataNumberT;
+
+/* Macro for validating ValSmsDataNumberT */
+#define IS_VALID_SMS_DATA_NUMBER_TYPE(a)  \
+         ((VAL_SMS_DATA_NUM_TYPE_UNKNOWN == (a)) ||((VAL_SMS_DATA_NUM_TYPE_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_DATA_NUM_TYPE)))
+
+//don't modify following Struct, brew has referred to it
+typedef   struct
+{
+  ValSmsDigitModeT     DigitMode;
+  ValSmsNumModeT       NumberMode;
+  union
+  {
+    ValSmsNumberT      NumType;
+    ValSmsDataNumberT  DataNumType;
+  } NumberType;
+  ValSmsNumPlanT       NumberPlan;
+  kal_uint8                NumFields;
+  kal_uint8                Address[VAL_SMS_MAX_ADDRESS_LEN];
+} ValSmsAddressT;
+
+typedef enum
+{
+  VAL_SMS_SUBADDR_TYPE_NSAP    = 0,
+  VAL_SMS_SUBADDR_TYPE_USER,
+  VAL_SMS_MAX_SUBADDR_TYPE
+} ValSmsSubAddrT;
+
+/* Macro for validating ValSmsSubAddrT */
+#define IS_VALID_SMS_SUBADDR_TYPE(a)  \
+         ((VAL_SMS_SUBADDR_TYPE_NSAP ==(a)) || ((VAL_SMS_SUBADDR_TYPE_NSAP < (a)) && ((a) < VAL_SMS_MAX_SUBADDR_TYPE)))
+
+
+typedef   struct
+{
+  ValSmsSubAddrT     SubaddrType;
+  kal_uint8              Odd;
+  kal_uint8              NumFields;
+  kal_uint8              Address[VAL_SMS_MAX_SUBADDR_LEN];
+}   ValSmsSubaddressT;
+
+ typedef  struct
+ {
+    kal_uint8 replySeq;        
+ }   ValSmsBearerRlyOptionT;
+ 
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_MSG_ENCODE_OCTET              = 0,
+  VAL_SMS_MSG_ENCODE_IS91_EXT_PROT_MSG,
+  VAL_SMS_MSG_ENCODE_7BIT_ASCII,
+  VAL_SMS_MSG_ENCODE_IA5,
+  VAL_SMS_MSG_ENCODE_UNICODE,
+  VAL_SMS_MSG_ENCODE_SHIFT_JIS,
+  VAL_SMS_MSG_ENCODE_KS_C_5601,
+  VAL_SMS_MSG_ENCODE_LATIN_HEBREW,
+  VAL_SMS_MSG_ENCODE_LATIN,
+  VAL_SMS_MSG_ENCODE_GSM_7BIT,
+#ifdef MTK_CBP
+  VAL_SMS_MSG_ENCODE_GSM_DCS,        /* KWID867 */
+#endif
+  VAL_SMS_MAX_MSG_ENCODE
+} ValSmsMsgEncodeT;
+
+/* Macro for validating vsms message encode type */
+#define IS_VALID_SMS_MSG_ENCODE(a)  \
+         ((VAL_SMS_MSG_ENCODE_OCTET == (a)) || ((VAL_SMS_MSG_ENCODE_OCTET <(a)) && ((a) < VAL_SMS_MAX_MSG_ENCODE)))
+
+//don't modify following Struct, brew has referred to it
+typedef struct
+{
+  ValSmsMsgEncodeT   MessageEncoding;
+  kal_uint8              MessageType;
+  kal_uint8              NumFields;
+  kal_uint8              Data[VAL_SMS_MAX_USER_DATA_LEN];
+} ValSmsUserDataT;
+
+//don't modify following Enum, brew has referred to it 
+typedef enum
+{
+  VAL_SMS_PRIORITY_NORMAL      = 0,
+  VAL_SMS_PRIORITY_INTERACTIVE,
+  VAL_SMS_PRIORITY_URGENT,
+  VAL_SMS_PRIORITY_EMERGENCY,
+  VAL_SMS_MAX_PRIORITY
+} ValSmsPriorityT;
+
+/* Macro for validating vsms priority type */
+#define IS_VALID_SMS_PRIORITY(a)  \
+         ((VAL_SMS_PRIORITY_NORMAL == (a)) ||((VAL_SMS_PRIORITY_NORMAL <(a)) && ((a) < VAL_SMS_MAX_PRIORITY)))
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_PRIVACY_NOT_RESTRICTED = 0,
+  VAL_SMS_PRIVACY_RESTRICTED,
+  VAL_SMS_PRIVACY_CONFIDENTIAL,
+  VAL_SMS_PRIVACY_SECRET,
+  VAL_SMS_MAX_PRIVACY
+} ValSmsPrivacyT;
+
+/* Macro for validating vsms privacy type */
+#define IS_VALID_SMS_PRIVACY(a)  \
+         ((VAL_SMS_PRIVACY_NOT_RESTRICTED == (a)) ||((VAL_SMS_PRIVACY_NOT_RESTRICTED <(a)) && ((a) < VAL_SMS_MAX_ERRCLASS)))
+
+typedef   struct
+{
+  kal_bool  UserAckReq;  /*true for user ack is required*/
+  kal_bool  DakReq;      /*true for delivery ack is required*/
+  kal_bool  ReadAckReq;  /*true for read ack is required*/
+}   ValSmsRplOptionT;
+
+typedef enum
+{
+  VAL_SMS_ALERT_MOBILE_DEFAULT = 0,
+  VAL_SMS_ALERT_LOW_PRIORITY,
+  VAL_SMS_ALERT_MEDIUM_PRIORITY,
+  VAL_SMS_ALERT_HIGH_PRIORITY,
+  VAL_SMS_MAX_ALERT
+} ValSmsAlertT;
+
+/* Macro for validating vsms alert type */
+#define IS_VALID_SMS_ALERT(a)                   \
+         ((VAL_SMS_ALERT_MOBILE_DEFAULT == (a)) ||  \
+          ((VAL_SMS_ALERT_MOBILE_DEFAULT < (a)) && ((a) < VAL_SMS_MAX_ALERT)))
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_LANGUAGE_UNKNOWN = 0,
+  VAL_SMS_LANGUAGE_ENGLISH,
+  VAL_SMS_LANGUAGE_FRENCH,
+  VAL_SMS_LANGUAGE_SPANISH,
+  VAL_SMS_LANGUAGE_JAPANESE,
+  VAL_SMS_LANGUAGE_KOREAN,
+  VAL_SMS_LANGUAGE_CHINESE,
+  VAL_SMS_LANGUAGE_HEBREW,
+#if defined(LGT_EXTENSIONS)
+  VAL_SMS_LANGUAGE_KOREAN_LGT=64,
+#endif  
+  VAL_SMS_MAX_LANGUAGE
+} ValSmsLanguageT;
+
+/* Macro for validating vsms language type */
+#define IS_VALID_SMS_LANGUAGE(a)              \
+         ((VAL_SMS_LANGUAGE_UNKNOWN == (a)) ||    \
+          ((VAL_SMS_LANGUAGE_UNKNOWN <(a)) && ((a) < VAL_SMS_MAX_LANGUAGE)))
+
+//don't modify following Struct, brew has referred to it
+typedef struct
+{
+  ValSmsDigitModeT  DigitMode;
+  ValSmsNumberT     NumberType;
+  ValSmsNumPlanT    NumberPlan;
+  kal_uint8             NumFields;
+  kal_uint8             Digits[VAL_SMS_CALLBACK_NUMBER_MAX_DIGITS];
+} ValSmsCbNumberT;
+
+//don't modify following Enum, brew has referred to it
+typedef enum
+{
+  VAL_SMS_DISP_MODE_IMMEDIATE = 0,
+  VAL_SMS_DISP_MODE_DEFAULT,
+  VAL_SMS_DISP_MODE_USER_INVOKE,
+  VAL_SMS_DISP_MODE_RESERVED,
+  VAL_SMS_MAX_DISP_MODE
+} ValSmsDisplayModeT;
+
+/* Macro for validating vsms mssage display mode type */
+#define IS_VALID_SMS_MSG_DISP_MODE(a)           \
+         ((VAL_SMS_DISP_MODE_IMMEDIATE == (a)) ||  \
+          ((VAL_SMS_DISP_MODE_IMMEDIATE <(a)) && ((a) < VAL_SMS_MAX_DISP_MODE)))
+
+//don't modify following Enum, brew has referred to it
+typedef struct
+{
+  ValSmsDisplayModeT SmsDispMode;
+  kal_uint8              Reserved;
+} ValSmsDispModeT;
+
+/*! Error class */
+typedef enum
+{
+  VAL_SMS_ERRCLASS_NO_ERROR,
+  VAL_SMS_ERRCLASS_TEMPORARY = 2,
+  VAL_SMS_ERRCLASS_PERMANENT = 3,
+  VAL_SMS_MAX_ERRCLASS
+} ValSmsErrClassT;
+
+/*! Macro to validate  ValSmsErrClassT */
+#define IS_VAL_SMS_NO_ERR_CLASS(a)  (VAL_SMS_ERRCLASS_NO_ERROR == (a))
+#define IS_VAL_SMS_ERR_CLASS(a)  ((VAL_SMS_ERRCLASS_TEMPORARY <= (a)) && ((a) < VAL_SMS_MAX_ERRCLASS))
+#define IS_VALID_SMS_ERR_CLASS(a)   (IS_VAL_SMS_NO_ERR_CLASS(a) || IS_VAL_SMS_ERR_CLASS(a))
+
+typedef enum
+{
+  VAL_SMS_MSGSTATUS_ACCEPTED,
+  VAL_SMS_MSGSTATUS_DEPOSITED_TO_INTERNET,
+  VAL_SMS_MSGSTATUS_DELIVERED,
+  VAL_SMS_MSGSTATUS_CANCELLED,
+  VAL_SMS_MSGSTATUS_NETWORK_CONGESTION,
+  VAL_SMS_MSGSTATUS_NETWORK_ERROR,
+  VAL_SMS_MSGSTATUS_CANCEL_FAILED,
+  VAL_SMS_MSGSTATUS_BLOCKED_DESTINATION,
+  VAL_SMS_MSGSTATUS_TEXT_TOO_LONG,
+  VAL_SMS_MSGSTATUS_DUPLICATE_MESSAGE,
+  VAL_SMS_MSGSTATUS_INVALID_DESTINATION,
+  VAL_SMS_MSGSTATUS_EXPIRED,
+  VAL_SMS_MAX_MSGSTATUS
+} ValSmsMsgStatusCodeT;
+
+//don't modify following Struct, brew has referred to it
+typedef   struct
+{
+  ValSmsErrClassT      ErrorClass;
+  ValSmsMsgStatusCodeT MsgStatusCode;
+}   ValSmsMsgStatusT;
+
+typedef enum
+{
+  VAL_SMS_CATRESULT_SUCCESS,
+  VAL_SMS_CATRESULT_MEMORY_EXCEEDED,
+  VAL_SMS_CATRESULT_LIMIT_EXCEEDED,
+  VAL_SMS_CATRESULT_ALREADY_PROGRAMMED,
+  VAL_SMS_CATRESULT_NOT_PREVIOUSLY_PROGRAMMED,
+  VAL_SMS_CATRESULT_INVALID_MAX_MESSAGES,
+  VAL_SMS_CATRESULT_INVALID_ALERT_OPTION,
+  VAL_SMS_CATRESULT_INVALID_CATEGORY_NAME,
+  VAL_SMS_CATRESULT_UNSPECIFIED_FAILURE,
+  VAL_SMS_MAX_CATRESULT
+} ValSmsCategoryResultCodeT;
+
+typedef   struct
+{
+  ValSmsSrvCatT              Category;
+  ValSmsCategoryResultCodeT  CategoryResult;
+  ValSmsLanguageT            Language;
+}   ValSmsCategoryResultT;
+
+typedef   struct
+{
+  kal_uint8                 NumCategories;
+  ValSmsCategoryResultT Cat[VAL_SMS_MAX_CATEGORIES];
+}   ValSmsSrvCatProgRsltT;
+
+typedef enum
+{
+  VAL_SMS_OP_DELETE,
+  VAL_SMS_OP_ADD,
+  VAL_SMS_OP_CLEAR_ALL,
+  VAL_SMS_MAX_OP
+} ValSmsOperationCodeT;
+
+typedef enum
+{
+  VAL_NO_ALERT                 = 0,
+  VAL_MOBILE_DEFAULT_ALERT,
+  VAL_VIBRATE_ALERT_ONCE,
+  VAL_VIBRATE_ALERT_REPEAT,
+  VAL_VISUAL_ALERT_ONCE,
+  VAL_VISUAL_ALERT_REPEAT,
+  VAL_LOW_PRIORITY_ALERT_ONCE,
+  VAL_LOW_PRIORITY_ALERT_REPEAT,
+  VAL_MED_PRIORITY_ALERT_ONCE,
+  VAL_MED_PRIORITY_ALERT_REPEAT,
+  VAL_HIGH_PRIORITY_ALERT_ONCE,
+  VAL_HIGH_PRIORITY_ALERT_REPEAT,
+  VAL_SMS_MAX_CAT_ALERT
+} ValSmsCatAlertT;
+
+typedef   struct
+{
+  ValSmsOperationCodeT  OperationCode;
+  ValSmsSrvCatT         SrvCat;
+  ValSmsLanguageT       Lang;
+  /*the maximum number of messages that may be stored in the mobile station for this Service Category*/
+  kal_uint8                 MaxMsg;
+  ValSmsCatAlertT       Alert;
+  kal_uint8                 NumChar;
+  kal_uint8                 Chari[VAL_SMS_MAX_CHAR_IN_CATEGORY];
+}   ValSmsCatDataT;
+
+typedef   struct
+{
+  ValSmsMsgEncodeT MsgEncoding;
+  kal_uint8            NumCat;
+  ValSmsCatDataT   Cat[VAL_SMS_MAX_CATEGORIES];
+}   ValSmsSrvCatProgDataT;
+
+#ifdef KDDI_EXTENSIONS
+typedef  struct
+{
+  kal_uint32 IpAddress;
+  kal_uint8   CtlFlag;
+}  ValSmsIpAddressT;
+#endif
+//don't modify following Struct, brew has referred to it
+typedef struct
+{
+  /* required fields */
+  kal_uint32                FieldMask;      /* the field mask */
+  ValSmsRecIdT          SmsMsgRecId;    /* the phisical position of sms record in the storage device, UI NEEDN't fill it */
+  ValSmsStatT           SMSState;       /* sms message status, UI may not fill it when sending, But if UI want to write or update a message, it must fill it.*/
+  kal_uint8                 NumUserData;    /* number of user data */
+  ValSmsTransMsgTypeT   TransMsgType;   /* transport layer message type, UI may not fill it */
+  kal_uint16                MsgId;          /* message id, required, UI NEEDN'T fill it */
+  kal_bool                  HeaderInd;      /* message head indication, required. UI MUST give it a correct value. True for the user data field includes a User Data Header, else set false */
+  ValSmsTeleMsgT        TeleMsgType;    /* teleservice layer message type, required. UI MUST give it a correct value */
+  ValSmsTeleSrvIdT      TeleSrvId;      /* teleservice id, required, UI MUST give it a correct value */
+  /* following is the optional fields */
+  ValSmsSrvCatT         SrvCat;         /* for broadcasting message, required, else, optional */
+  ValSmsAddressT        Address;        /* required for submit and delivery message */
+  ValSmsSubaddressT     Subaddress;     /* optional */
+  ValSmsBearerRlyOptionT   BearerReplyOption;
+  ValSmsUserDataT       UserData[VAL_SMS_MAX_NUM_DATA_MSGS]; /* user data or multi encoding user data   */
+  kal_uint8                 UserRspCode;
+  ValSmsAbsTimeT        TimeStamp;
+  ValSmsAbsTimeT        ValTimeAbs;
+  kal_uint8                 RelValPeriod;
+  ValSmsAbsTimeT        AbsDelTime;
+  kal_uint8                 RelDelPeriod;
+  ValSmsPriorityT       Priority;
+  ValSmsPrivacyT        Privacy;
+  ValSmsRplOptionT      RplOp;
+  kal_uint8                 NumMsgs;        /* only for VMN message */
+  ValSmsAlertT          Alert;
+  ValSmsLanguageT       Lang;
+  ValSmsCbNumberT       CallBackNum;
+  ValSmsDispModeT       DispMode;
+  kal_uint16                MsgDepIndex;  
+  kal_uint16                SeqNum;               /*only for receive message */
+  ValSmsMsgStatusT      MsgStatus;            /*used only for SMS delivery Acknowledgement message */
+  ValSmsSrvCatProgRsltT SrvCatProgResult;     /* only for submitting message */
+  ValSmsSrvCatProgDataT SrvCatData;           /*only for delivery message */ 
+#ifdef MTK_CBP_ENCRYPT_VOICE
+  kal_bool				  CryptSmsPres;
+  ValCryptSmsInfoT	  CryptSmsInfo; 	   /*sms crypt sms*/
+#endif
+#ifdef KDDI_EXTENSIONS
+  ValSmsIpAddressT    MsgIpAddr;
+  kal_uint8                        NotifyFlag;
+  kal_uint32                      UimId;
+#endif
+  kal_bool                IsImsPPdownLoad;
+  kal_uint8               seq_id;
+} ValSmsTxtRecordT;
+
+#ifdef MTK_CBP_ENCRYPT_VOICE
+typedef enum
+{
+    VAL_SMS_MSG_TYPE_CALL_KEY_REQ= 0,
+    VAL_SMS_MSG_TYPE_CALL_KEY_RSP,
+    VAL_SMS_MSG_TYPE_CALLED_ENCRYPT_IND,
+    VAL_SMS_MSG_TYPE_CALLED_KEY_REQ,
+    VAL_SMS_MSG_TYPE_CALLED_KEY_RSP,
+    VAL_SMS_MSG_TYPE_ERROR_IND,
+    VAL_SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE	,
+    VAL_SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE_RSP,
+    VAL_SMS_MSG_TYPE_KMC_PUBLIC_KEY_UPDATE_CNF,
+    VAL_SMS_MSG_TYPE_REMOTE_CONTROL_INS	,
+    VAL_SMS_MSG_TYPE_REMOTE_CONTROL_INS_RSP,
+    VAL_SMS_MSG_TYPE_INITIAL,
+}ValSpeSmsMsgTypeT;
+
+typedef  struct
+{
+  kal_uint8          mode;
+  kal_uint8          calledNum[11];
+  kal_uint8          calledBytes;
+} ValCryptSmsCallKeyInfoT;
+
+typedef  struct
+{
+   kal_uint8       rspType;
+   kal_uint8       result;
+} ValCryptRcInsRspInfoT;
+#endif
+
+
+#endif
+/**Log information: D:\ClearCase\pchen_vtui2\HZREF\cp\inc\valsmsdefine.h@@\main\vtui2_plus\2 2008-05-07 07:13:18 GMT pchen
+** HZTP#0000**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory\2 2008-08-05 08:38:03 GMT dwang
+** HREF#0000
+|Merge vtui2_plus**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory\3 2008-08-12 06:39:10 GMT pchen
+** HREF#1445**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory\4 2008-10-23 05:56:27 GMT pchen
+** HREF#1445**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory\5 2008-12-01 13:19:35 GMT ltian
+** HREF#1445**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory\6 2009-03-06 08:03:57 GMT pchen
+** HREF#1445**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory\7 2009-03-10 09:05:38 GMT pchen
+** HREF#1445**/
+/**Log information: \main\vtui2_5x\sms_contact_refactory_1\1 2009-03-20 01:29:03 GMT yfan
+** HREF#1580**/
+/**Log information: \main\helios_dev\touchflow\1 2009-06-05 06:27:24 GMT yfan
+** HREF#1580**/
+/**Log information: \main\helios_dev\touchflow\2 2009-06-05 06:27:45 GMT yfan
+** HREF#1580**/
+/**Log information: \main\helios_dev\touchflow\touchflow_pchen_href8751\1 2009-11-16 08:13:58 GMT pchen
+** HREF#8751 **/
+/**Log information: \main\helios_dev\touchflow\3 2009-11-16 09:16:34 GMT dwang
+** HREF#8751**/
+/**Log information: \main\VTUI3\2 2010-01-11 12:32:21 GMT qwu
+** HREF#10125**/
+/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_nicholaszhao_href17384\1 2011-07-04 08:34:21 GMT nicholaszhao
+** HREF#17384**/
+/**Log information: \main\CBP7FeaturePhone\3 2011-07-12 09:42:01 GMT marszhang
+** HREF#17384**/
+