Add toolchain and mbtk source

Change-Id: Ie12546301367ea59240bf23d5e184ad7e36e40b3
diff --git a/mbtk/include/ql/ql_common.h b/mbtk/include/ql/ql_common.h
new file mode 100755
index 0000000..eef054d
--- /dev/null
+++ b/mbtk/include/ql/ql_common.h
@@ -0,0 +1,76 @@
+

+/**  

+  @file

+  ql_common.h

+

+  @brief

+  This file provides the definitions for common functions, and declares the 

+  common functions.

+

+*/

+/*============================================================================

+  Copyright (c) 2017 Quectel Wireless Solution, Co., Ltd.  All Rights Reserved.

+  Quectel Wireless Solution Proprietary and Confidential.

+ =============================================================================*/

+/*===========================================================================

+

+                        EDIT HISTORY FOR MODULE

+

+This section contains comments describing changes made to the module.

+Notice that changes are listed in reverse chronological order.

+

+

+WHEN        WHO            WHAT, WHERE, WHY

+----------  ------------   ----------------------------------------------------

+23/08/2019  Nebula.li      create

+=============================================================================*/

+

+#ifndef __QL_COMMON_H__

+#define __QL_COMMON_H__

+

+#include <sys/types.h>

+#include <unistd.h>

+#include <sys/syscall.h>

+

+#include <libubox/ustream.h>

+#include <libubox/blobmsg_json.h>

+#include <libubox/kvlist.h>

+#include "libubus.h"

+#include "uci_blob.h"

+#include "libubox/uloop.h"

+#include "rilutil.h"

+

+#ifdef __cplusplus

+extern "C" {

+#endif

+

+void Ql_Powerdown(int mode);

+

+int ql_start_main_thread();

+int ql_exit_main_thread();

+int ql_ril_sync_request(unsigned int requestid, const void * data, int len,void* priv,void * cb,int timeout);

+int ql_ril_async_request(unsigned int requestid, const void * data, int len,void* priv,void * cb);

+int ql_ubus_sync_request(char *obj_name, char *method,struct blob_buf *blob_buf,void* priv,void *cb,int timeout);

+int ql_ubus_async_request(char *obj_name, char *method,struct blob_buf *blob_buf,void* priv,void *cb);

+int ql_ubus_subscribe_reg(char *subscriber_name, struct ubus_subscriber *event_obj);

+int ql_ubus_subscribe_remove(char *subscriber_name, struct ubus_subscriber *event_obj);

+

+int atcmd_get_line_num(char * result, int result_len);

+char * atcmd_get_line(char * result, int result_len,int index);

+int atcmd_get_para_num(char * line);

+void atcmd_get_para_value_str(char * line,int index, char *para_value);

+void ql_set_response(struct kvlist *result_list,int reqid, int resp_type, int ret, void *data, int data_len);

+int ql_get_response(struct kvlist *result_list,int reqid, int * resp_type, void *data);

+int kvlist_get_len(struct kvlist *kv, const void *data);

+

+int utf8_to_usc2(unsigned char *utf8_data,int utf8_data_len, unsigned int *usc2_data);

+int usc2_to_utf8(unsigned int *usc2_data, int usc2_data_len, unsigned char *utf8_data);

+

+int set_config_option(const char *package, const char *section, const char *option, const char *value);

+char *get_config_option(char *package, char *section, char *option);

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif
\ No newline at end of file