Add toolchain and mbtk source

Change-Id: Ie12546301367ea59240bf23d5e184ad7e36e40b3
diff --git a/mbtk/include/ql/ql_cell_locator.h b/mbtk/include/ql/ql_cell_locator.h
new file mode 100755
index 0000000..4244f82
--- /dev/null
+++ b/mbtk/include/ql/ql_cell_locator.h
@@ -0,0 +1,116 @@
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @file ql_cell_locator.h
+  @brief Common API
+*/
+/*-----------------------------------------------------------------------------------------------*/
+/*-------------------------------------------------------------------------------------------------
+  Copyright (c) 2018 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
+  Quectel Wireless Solution Proprietary and Confidential.
+-------------------------------------------------------------------------------------------------*/
+/*-------------------------------------------------------------------------------------------------
+  EDIT HISTORY
+  This section contains comments describing changes made to the file.
+  Notice that changes are listed in reverse chronological order.
+  $Header: $
+  when       who          what, where, why
+  --------   ---          ----------------------------------------------------------
+  20190321   baron.qian  Created .
+-------------------------------------------------------------------------------------------------*/
+#ifdef __cplusplus
+ extern "C" {
+#endif
+#ifndef __QL_CELL_LOCATOR_H__
+#define __QL_CELL_LOCATOR_H__
+
+/**/
+#define LOCATOR_MAX_ADDRESS_SIZE (256)
+#define LOCATOR_MAX_ERR_MSG_SIZE (256)
+
+
+typedef enum {
+    Q_LOC_ADDR_UTF8 = 0,
+    Q_LOC_ADDR_GBK,
+    Q_LOC_ADDR_ASCII,
+    Q_LOC_ADDR_NUM,
+}QUECLOCATOR_CHARSET;
+
+typedef struct {
+    int err_code;
+    char err_msg[LOCATOR_MAX_ERR_MSG_SIZE];
+} ql_cell_err;
+
+typedef struct {
+    /*longtitude*/
+    double lon;
+    /*latitude*/
+    double lat;
+    /*accuracy*/
+    unsigned short accuracy;
+    /*address charset, not support yet*/
+    QUECLOCATOR_CHARSET charset;
+    /*address info, not support yet*/
+    unsigned char addrinfo[LOCATOR_MAX_ADDRESS_SIZE];
+    /*address length, not support yet*/
+    unsigned short addrlen;
+    /*result*/
+    ql_cell_err err;
+} ql_cell_resp;
+
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief cell locator init function, when you want to use cell locator, call this function first!
+  @return if success return 0, else return -1
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_cell_locator_init();
+
+
+int ql_cell_locator_release();
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief set locator query server and port, server length must be less than 255 bytes.
+  @param[in] server the query server ip address
+  @param[in] port the query server port 
+  @return if success return 0, else return -1
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_cell_locator_set_server(const char *server, unsigned short port);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief set locator query timeout, the value must between 1-300 [seconds]
+  @param[in] timeout value of query timeout
+  @return if success return 0, else return -1
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_cell_locator_set_timeout(unsigned short timeout);
+
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief set locator query token, token length must be 16 bytes. the token Used to verify that 
+         the client accessing the service is valid.
+  @param[in] token string of token which want to be setted.
+  @param[in] length of token string.
+  @return if success return 0, else return -1
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_cell_locator_set_token(const char *token, int len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief perform cell locator query 
+  @param[out] resp include query result or set the error_msg and error_code
+  @return if success return 0, else return -1
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_cell_locator_perform(ql_cell_resp *resp);
+
+
+#endif /* !__QL_CELL_LOCATOR_H__ */
+#ifdef __cplusplus
+} 
+#endif