zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/mbim.h b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/mbim.h
new file mode 100755
index 0000000..6e0edf5
--- /dev/null
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/mbim.h
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Copyright (C) 2007, ZTE Corporation.
+ *
+ * File Name:
+ * File Mark:
+ * Description:
+ * Others:
+ * Version: 1.0
+ * Date: 2020-12-30
+ * History 1:
+ * Date:
+ * Version:
+ * Author:
+ * Modification:
+ * History 2:
+ ********************************************************************************/
+
+
+
+#define MBIM_OPEN_MSG 0x00000001
+#define MBIM_CLOSE_MSG 0x00000002
+#define MBIM_COMMAND_MSG 0x00000003
+#define MBIM_HOST_ERROR_MSG 0x00000004
+#define MBIM_OPEN_DONE 0x80000001
+#define MBIM_CLOSE_DONE 0x80000002
+#define MBIM_COMMAND_DONE 0x80000003
+#define MBIM_FUNCTION_ERROR_MSG 0x80000004
+#define MBIM_INDICATE_STATUS_MSG 0x80000007
+
+
+#define MBIM_CID_DEVICE_CAPS 1
+#define MBIM_CID_SUBSCRIBER_READY_STATUS 2
+#define MBIM_CID_RADIO_STATE 3
+#define MBIM_CID_PIN 4
+#define MBIM_CID_PIN_LIST 5
+#define MBIM_CID_HOME_PROVIDER 6
+#define MBIM_CID_PREFERRED_PROVIDERS 7
+#define MBIM_CID_VISIBLE_PROVIDERS 8
+#define MBIM_CID_REGISTER_STATE 9
+#define MBIM_CID_PACKET_SERVICE 10
+#define MBIM_CID_SIGNAL_STATE 11
+#define MBIM_CID_CONNECT 12
+#define MBIM_CID_PROVISIONED_CONTEXTS 13
+#define MBIM_CID_SERVICE_ACTIVATION 14
+#define MBIM_CID_IP_CONFIGURATION 15
+#define MBIM_CID_DEVICE_SERVICES 16
+#define MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST 19
+#define MBIM_CID_PACKET_STATISTICS 20
+#define MBIM_CID_NETWORK_IDLE_HINT 21
+#define MBIM_CID_EMERGENCY_MODE 22
+#define MBIM_CID_IP_PACKET_FILTERS 23
+#define MBIM_CID_MULTICARRIER_PROVIDERS 24
+#define MBIM_CID_SMS_CONFIGURATION 1
+#define MBIM_CID_SMS_READ 2
+#define MBIM_CID_SMS_SEND 3
+#define MBIM_CID_SMS_DELETE 4
+#define MBIM_CID_SMS_MESSAGE_STORE_STATUS 5
+#define MBIM_CID_USSD 1
+#define MBIM_CID_PHONEBOOK_CONFIGURATION 1
+#define MBIM_CID_PHONEBOOK_READ 2
+#define MBIM_CID_PHONEBOOK_DELETE 3
+#define MBIM_CID_PHONEBOOK_WRITE 4
+#define MBIM_CID_STK_PAC 1
+#define MBIM_CID_STK_TERMINAL_RESPONSE 2
+#define MBIM_CID_STK_ENVELOPE 3
+#define MBIM_CID_AKA_AUTH 1
+#define MBIM_CID_AKAP_AUTH 2
+#define MBIM_CID_SIM_AUTH 3
+#define MBIM_CID_DSS_CONNECT 1
+
+
+#define MBIM_UUID_LEN 16
+
+typedef struct mbim_indicate_status_msg_type
+{
+ u32 MessageType;
+ u32 MessageLength;
+ u32 TransactionId;
+ u32 TotalFragments;
+ u32 CurrentFragment;
+ u8 DeviceServiceId[MBIM_UUID_LEN];
+ u32 CID;
+ u32 InformationBufferLength;
+ u32 InformationBuffer;
+} mbim_indicate_status_msg_type;
+
+typedef struct mbim_open_msg_type
+{
+ __le32 MessageType;
+ __le32 MessageLength;
+ __le32 TransactionId;
+ __le32 MaxControlTransfer;
+} mbim_open_msg_type;
+
+
+typedef struct mbim_close_msg_type
+{
+ __le32 MessageType;
+ __le32 MessageLength;
+ __le32 TransactionId;
+} mbim_close_msg_type;
+
+
+typedef struct mbim_command_msg_type
+{
+ u32 MessageType;
+ u32 MessageLength;
+ u32 TransactionId;
+ u32 TotalFragments;
+ u32 CurrentFragment;
+ u8 DeviceServiceId[MBIM_UUID_LEN];
+ u32 CID;
+ u32 Commandtype;
+ u32 InformationBufferLength;
+ u32 InformationBuffer;
+} mbim_command_msg_type;
+
+
+
+
+struct mbim_ncm_info{
+ uint16_t nth_block_len ;
+ //uint16_t ndp_head_len ;
+ uint16_t ndp_datagram_off ;
+ uint16_t ndp_datagram_len ;
+
+};
+
+struct mbim_ntb_aligned_info
+{
+
+ uint16_t wNdpInDivisor;
+ uint16_t wNdpInPayloadRemainder;
+ uint16_t wNdpInAlignment;
+ uint16_t wNdpOutDivisor;
+ uint16_t wNdpOutPayloadRemainder;
+ uint16_t wNdpOutAlignment;
+} ;
+
+int mbim_register(void (*resp_avail)(void *v), void *v);
+int mbim_get_nth16_and_ndp16_size(void);
+int mbim_ncm16_and_ndp16_init(char * buf ,int len);
+int mbim_fill_ncm16_vary_head_info(char *buf ,struct mbim_ncm_info *info);
+int mbim_get_first_ndp16_offset(struct usb_request *req);
+int mbim_get_next_datagram_fragment(struct usb_request *req ,int prev_ndp_off, int* cur_first_datagram ,int *next_ndp);
+int mbim_get_reverse_head_size() ;
+int mbim_get_trans_buffer_size(void);
+
+
+
+
+
+
+
+
+
+
+
+
+