blob: 0cbd6c0f8b100f78a38e0ace457d51565c2adc78 [file] [log] [blame]
xjde81d1d2021-11-25 15:01:52 +08001/* Copyright Statement:
2 *
3 * This software/firmware and related documentation ("MediaTek Software") are
4 * protected under relevant copyright laws. The information contained herein
5 * is confidential and proprietary to MediaTek Inc. and/or its licensors.
6 * Without the prior written permission of MediaTek inc. and/or its licensors,
7 * any reproduction, modification, use or disclosure of MediaTek Software,
8 * and information contained herein, in whole or in part, shall be strictly prohibited.
9 */
10/* MediaTek Inc. (C) 2010. All rights reserved.
11 *
12 * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
13 * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
14 * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
15 * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
18 * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
19 * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
20 * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
21 * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
22 * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
23 * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
24 * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
25 * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
26 * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
27 * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
28 * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
29 * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
30 *
31 * The following software/firmware and/or related documentation ("MediaTek Software")
32 * have been modified by MediaTek Inc. All revisions are subject to any receiver's
33 * applicable license agreements with MediaTek Inc.
34 */
35#ifndef YOCTO_COMMON_DATA_H
36#define YOCTO_COMMON_DATA_H
37
38#include <memory>
39#include <vendor-ril/telephony/ril.h>
40#include <binder/Parcel.h>
41#include <log/log.h>
42#include <sys/prctl.h>
43#include <cstdint>
44#include <pthread.h>
45
46#include "powerManager.h"
47#include "rfdesense/RfDesenseTxTest.h"
48#include "framework/lynq_interface.h"
49#include "util/AtLine.h"
50
51#define DEBUG 0
52#define FUNCTION_CALLED(time,msg) printf("%s: %s %s called\n",(time), __func__ ,(msg));
53#define FUNCTION_RETURN(time,msg) printf("%s: %s %s returns\n",(time), __func__ ,(msg));
54
55#define EM_MODE_SUPPORT 1
56#ifdef ATCI_PARSE
57#define ATCI_ENABLE_RESPONSE 1
58#endif
59//#define ENABLE_BLOCK_FEATURE
60#define BLOCK_MARK 0x10000000
61#define RSP_DISP_TOKEN_MARK 0x01000000
62#define ATCI_TOKEN_MARK 0x02000000
63#define RIL_TOKEN_MARK 0x04000000
64#define INIT_TOKEN_MARK 0x08000000
65#define OTHER_TOKEN_MARK 0x20000000;
66#define TOKEN_MODE 0x01000000
67#define INIT 1
68#define UDP 2
69#define ATCI 3
70#define RSPD 4
71#define OTHER 5
72
73#define PROP_DEFAULT_DATA_SIM "persist.vendor.radio.data.sim"
74#define PROP_DEFAULT_DATA_SIM_STATUS "vendor.radio.data.enable"
75#define ATCI_SIM "persist.vendor.service.atci.sim"
76//#define PROP_DATA_ALLOW_STATUS "vendor.ril.data.allow.status"
77
78#define UNSET -1
79
80typedef struct {
81 int requestNumber;
82 void (*dispatchFunction) (android::Parcel &p, struct RequestInfo *pRI);
83 int(*responseFunction) (android::Parcel &p, void *response, size_t responselen);
84} CommandInfo;
85
86typedef struct RequestInfo {
87 int32_t token; //this is not RIL_Token
88 /*mobiletek add*/
89 void *UserToken;
90 /*mobiletek end*/
91 CommandInfo *pCI;
92 struct RequestInfo *p_next;
93 char cancelled;
94 char local; // responses to local commands do not go back to command process
95 RIL_SOCKET_ID socket_id;
96} RequestInfo;
97
98typedef struct {
99 char *name; /* User printable name of the function. */
100 int (*func)(int argc, char *argv[], RIL_SOCKET_ID socket_id, RequestInfo *pRI); /* Function to call to do the job. */
101 char *doc; /* Documentation for this function. */
102 int request;
103} COMMAND;
104
105
106void updateCardStatusV6(RIL_CardStatus_v6 *card_status,int slot);
107char* getAid(int slot);
108
109void update_reg_voice_service_state(int request, char* code, int slot, int32_t token);
110void update_reg_voice_radio_tech(int request, int code, int slot, int32_t token);
111void update_reg_data_service_state(int request, char* code, int slot, int32_t token);
112void update_reg_data_radio_tech(int request, int code, int slot, int32_t token);
113void update_preferred_network_type(int type, int slot);
114void update_call_state(void *response, size_t responselen, int slot);
115
116int is_call_state_idle(int slot);
117int get_preferred_network_type(int slot);
118int get_reg_data_radio_tech(int slot);
119int get_reg_voice_radio_tech(int slot);
120void update_voice_radio_tech(int code, int slot);
121int get_voice_radio_tech(int slot);
122void update_radio_capa(RIL_RadioCapability* cap, int slot);
123RIL_RadioCapability get_radio_capa(int slot);
124std::int32_t GenerateToken(int mode, int request);
125
126void updateRadioStatus(int newValue,RIL_SOCKET_ID soc_id);
127bool isRadioOn(RIL_SOCKET_ID soc_id);
128bool isRadioAvailable(RIL_SOCKET_ID soc_id);
129
130bool isDataConnectEnable(int slot);
131void updataDataConnectState(int slot, bool state);
132const char *radioStateToString(RIL_RadioState);
133const char * rilSocketIdToString(RIL_SOCKET_ID socket_id);
134
135#if EM_MODE_SUPPORT
136typedef void (* netwokInfoNotify)(int type, char *data);
137typedef void (*atCmdResponse)(char *response,int responselen);
138extern RfDesenseTxTest* m_RfDesense;
139
140void registerRadioOn(RfDesenseTxTest* rf);
141void unregisterRadioOn();
142void registerRadioOffOrNotAvailable(RfDesenseTxTest* rf);
143void unregisterRadioOffOrNotAvailable();
144void registerOnUnsolOemHookRaw(RfDesenseTxTest* rf);
145void unregisterOnUnsolOemHookRaw();
146void register_response_oem_hook_raw(RfDesenseTxTest* rf);
147void unregister_response_oem_hook_raw();
148
149bool isFinalResponseErrorEx(char* str);
150
151void set_default_sim_all(int slot_id);
152int get_default_sim_all();
153void set_default_sim_voice(int slot_id);
154int get_default_sim_voice();
155void set_default_sim_data(int slot);
156int get_default_sim_data_for_switch();
157bool isNeedConnect();
158void resetConnect();
159int get_default_sim_data();
160void set_default_sim_sms(int slot_id);
161int get_default_sim_sms();
162void set_default_sim_all_except_data(int slot_id);
163int get_default_sim_all_except_data();
164RequestInfo* creatRILInfoAndInit(int request, int mode, RIL_SOCKET_ID soc_id);
165int get_atci_sim();
166bool mtkItTest(const char* data);
167
168void updateSystemTime(const void *data, int datalen);
169void notifyDataSignal();
170#endif
171#ifdef ECALL_SUPPORT
172void ConvertMsd(const char *msdChar, unsigned char *msd);
173#endif /*ECALL_SUPPORT*/
174namespace android {
175 void initRequestInfo(RequestInfo *pRI, int request, int mode, RIL_SOCKET_ID soc_id);
176 const char * requestToString(int request);
177 const int RspDispFunction(int request,char* arg, RIL_SOCKET_ID socket_id);
178 void requestSMSACKNOWLEDGE(RIL_SOCKET_ID soc_id);
179 void requestAnswer(RIL_SOCKET_ID soc_id);
180 void writeStringToParcel(Parcel &p, const char *s);
181 void RIL_startEventLoop(void);
182 void startATCILoop(void);
183 void startGdbusLoop(void);
184 void startPMLoop(void);
185 void registerForATcmdResponse(atCmdResponse cb);
186 void unregisterNetwork();
187 void registerForNetworkInfo(netwokInfoNotify cb);
188 void unregisterATcmd();
189 int emResultNotify(const char *str);
190 void ATCIRequest(int request, char* reqString, void* t,int argc, char**argv);
191 void startWakupLoop(void);
192}
193
194#endif