blob: 6e0edf5d44608fde6df1ddd316f28e97e51c7ed8 [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/*******************************************************************************
2 * Copyright (C) 2007, ZTE Corporation.
3 *
4 * File Name:
5 * File Mark:
6 * Description:
7 * Others:
8 * Version: 1.0
9 * Date: 2020-12-30
10 * History 1:
11 * Date:
12 * Version:
13 * Author:
14 * Modification:
15 * History 2:
16 ********************************************************************************/
17
18
19
20#define MBIM_OPEN_MSG 0x00000001
21#define MBIM_CLOSE_MSG 0x00000002
22#define MBIM_COMMAND_MSG 0x00000003
23#define MBIM_HOST_ERROR_MSG 0x00000004
24#define MBIM_OPEN_DONE 0x80000001
25#define MBIM_CLOSE_DONE 0x80000002
26#define MBIM_COMMAND_DONE 0x80000003
27#define MBIM_FUNCTION_ERROR_MSG 0x80000004
28#define MBIM_INDICATE_STATUS_MSG 0x80000007
29
30
31#define MBIM_CID_DEVICE_CAPS 1
32#define MBIM_CID_SUBSCRIBER_READY_STATUS 2
33#define MBIM_CID_RADIO_STATE 3
34#define MBIM_CID_PIN 4
35#define MBIM_CID_PIN_LIST 5
36#define MBIM_CID_HOME_PROVIDER 6
37#define MBIM_CID_PREFERRED_PROVIDERS 7
38#define MBIM_CID_VISIBLE_PROVIDERS 8
39#define MBIM_CID_REGISTER_STATE 9
40#define MBIM_CID_PACKET_SERVICE 10
41#define MBIM_CID_SIGNAL_STATE 11
42#define MBIM_CID_CONNECT 12
43#define MBIM_CID_PROVISIONED_CONTEXTS 13
44#define MBIM_CID_SERVICE_ACTIVATION 14
45#define MBIM_CID_IP_CONFIGURATION 15
46#define MBIM_CID_DEVICE_SERVICES 16
47#define MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST 19
48#define MBIM_CID_PACKET_STATISTICS 20
49#define MBIM_CID_NETWORK_IDLE_HINT 21
50#define MBIM_CID_EMERGENCY_MODE 22
51#define MBIM_CID_IP_PACKET_FILTERS 23
52#define MBIM_CID_MULTICARRIER_PROVIDERS 24
53#define MBIM_CID_SMS_CONFIGURATION 1
54#define MBIM_CID_SMS_READ 2
55#define MBIM_CID_SMS_SEND 3
56#define MBIM_CID_SMS_DELETE 4
57#define MBIM_CID_SMS_MESSAGE_STORE_STATUS 5
58#define MBIM_CID_USSD 1
59#define MBIM_CID_PHONEBOOK_CONFIGURATION 1
60#define MBIM_CID_PHONEBOOK_READ 2
61#define MBIM_CID_PHONEBOOK_DELETE 3
62#define MBIM_CID_PHONEBOOK_WRITE 4
63#define MBIM_CID_STK_PAC 1
64#define MBIM_CID_STK_TERMINAL_RESPONSE 2
65#define MBIM_CID_STK_ENVELOPE 3
66#define MBIM_CID_AKA_AUTH 1
67#define MBIM_CID_AKAP_AUTH 2
68#define MBIM_CID_SIM_AUTH 3
69#define MBIM_CID_DSS_CONNECT 1
70
71
72#define MBIM_UUID_LEN 16
73
74typedef struct mbim_indicate_status_msg_type
75{
76 u32 MessageType;
77 u32 MessageLength;
78 u32 TransactionId;
79 u32 TotalFragments;
80 u32 CurrentFragment;
81 u8 DeviceServiceId[MBIM_UUID_LEN];
82 u32 CID;
83 u32 InformationBufferLength;
84 u32 InformationBuffer;
85} mbim_indicate_status_msg_type;
86
87typedef struct mbim_open_msg_type
88{
89 __le32 MessageType;
90 __le32 MessageLength;
91 __le32 TransactionId;
92 __le32 MaxControlTransfer;
93} mbim_open_msg_type;
94
95
96typedef struct mbim_close_msg_type
97{
98 __le32 MessageType;
99 __le32 MessageLength;
100 __le32 TransactionId;
101} mbim_close_msg_type;
102
103
104typedef struct mbim_command_msg_type
105{
106 u32 MessageType;
107 u32 MessageLength;
108 u32 TransactionId;
109 u32 TotalFragments;
110 u32 CurrentFragment;
111 u8 DeviceServiceId[MBIM_UUID_LEN];
112 u32 CID;
113 u32 Commandtype;
114 u32 InformationBufferLength;
115 u32 InformationBuffer;
116} mbim_command_msg_type;
117
118
119
120
121struct mbim_ncm_info{
122 uint16_t nth_block_len ;
123 //uint16_t ndp_head_len ;
124 uint16_t ndp_datagram_off ;
125 uint16_t ndp_datagram_len ;
126
127};
128
129struct mbim_ntb_aligned_info
130{
131
132 uint16_t wNdpInDivisor;
133 uint16_t wNdpInPayloadRemainder;
134 uint16_t wNdpInAlignment;
135 uint16_t wNdpOutDivisor;
136 uint16_t wNdpOutPayloadRemainder;
137 uint16_t wNdpOutAlignment;
138} ;
139
140int mbim_register(void (*resp_avail)(void *v), void *v);
141int mbim_get_nth16_and_ndp16_size(void);
142int mbim_ncm16_and_ndp16_init(char * buf ,int len);
143int mbim_fill_ncm16_vary_head_info(char *buf ,struct mbim_ncm_info *info);
144int mbim_get_first_ndp16_offset(struct usb_request *req);
145int mbim_get_next_datagram_fragment(struct usb_request *req ,int prev_ndp_off, int* cur_first_datagram ,int *next_ndp);
146int mbim_get_reverse_head_size() ;
147int mbim_get_trans_buffer_size(void);
148
149
150
151
152
153
154
155
156
157
158
159
160