[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/include/netotherapi.h b/ap/app/include/netotherapi.h
new file mode 100755
index 0000000..4df92ef
--- /dev/null
+++ b/ap/app/include/netotherapi.h
@@ -0,0 +1,250 @@
+/**
+* @file netotherapi.h
+* @brief Public APIs of Sanechips , linux network external interface
+*
+* Copyright (C) 2017 Sanechips Technology Co., Ltd.
+* @author Linxu Gebin
+* @defgroup si_id Sanechips
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License version 2 as
+* published by the Free Software Foundation.
+*************************************************************************
+*/
+
+#ifndef __NETOTHERAPI_H__
+#define __NETOTHERAPI_H__
+#include "zxic_list.h"
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+/*******************************************************************************
+ * Macro definitions *
+******************************************************************************/
+
+#define WAKE_LOCK_PATH "/sys/power/wake_lock"
+#define WAKE_UNLOCK_PATH "/sys/power/wake_unlock"
+
+
+
+#define PROC_IF_STATISTIC "/proc/net/dev"
+#define TXBYTE 0 //·¢ËÍÊý¾Ý
+#define TXPACKET 1
+#define RXBYTE 2 //½ÓÊÕÊý¾Ý
+#define RXPACKET 3
+
+#define PC_MAX_NUM 100
+#define DEV_NAME_LEN 50
+#define TIMER_GETHOSTBYNAME_ID 62
+
+#define safe_free(x) do { if(x) {free(x); x=NULL;} } while(0)
+
+/* Used to retry syscalls that can return EINTR. */
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(exp) ({ \
+ typeof (exp) _rc; \
+ do{ \
+ _rc = (exp); \
+ }while((_rc == -1) && (errno == EINTR)); \
+ _rc; })
+#endif
+
+/*******************************************************************************
+ * Type definitions *
+ ******************************************************************************/
+
+struct pc_info {
+ unsigned char mac_addr[6];
+ char dev_name[DEV_NAME_LEN];
+};
+struct pc_node {
+ unsigned int num;
+ struct pc_info info[PC_MAX_NUM];
+};
+
+
+/**
+* @brief ÄÚÍøÐÅÏ¢
+* @param mac mac µØÖ·
+* @param ip ip µØÖ·
+* @param hostname Ö÷»úÃû
+* @param dev_name É豸Ãû
+* @param time_remain µ±Ç°Ê±¼äµ½ÉÏÒ»¸üиÃÉ豸ÐÅÏ¢¼ä¸ôʱ¼ä
+* @param time_last ×î½üÒ»´Î¸üÐÂʱ¼äµã
+* @note ÎÞ
+*/
+typedef struct LAN_INFO {
+ unsigned char mac[6];
+ unsigned long ip;
+ char host_name[32];
+ char dev_name[32];
+ unsigned long time_remain;
+ unsigned long time_last;
+} LAN_INFO_t;
+
+/**
+* @brief ÄÚÍøÐÅÏ¢Á´±í
+* @param list_head Á´±íÍ·½Úµã
+* @param lan_info lÄÚÍøÐÄÏ¢
+* @note ÎÞ
+*/
+typedef struct LAN_INFO_LIST {
+ struct list_head list;
+ LAN_INFO_t lan_info;
+} LAN_INFO_LIST_t;
+
+/**
+* @brief dhcp server´æ´¢µÄleaseÎļþ½á¹¹Ìå
+* @param expires expires
+* @param ip ip µØÖ·
+* @param mac mac µØÖ·
+* @param host_nameÖ÷»úÃû
+* @param pad
+*/
+typedef struct _DHCPOFFERADDRNET {
+ unsigned long expires;
+ unsigned long ip;
+ unsigned char mac[6];
+ unsigned char host_name[20];
+ unsigned char pad[2];
+} DHCPOFFERADDRNET;
+
+/**
+* @brief dhcp ÐÅÏ¢Á´±í
+* @param list Á´±íÍ·½Úµã
+* @param dhcp_info dhcp ÐÅÏ¢
+*/
+typedef struct _DHCPOFFERADDR_LIST {
+ struct list_head list;
+ DHCPOFFERADDRNET dhcp_info;
+} DHCPOFFERADDR_LIST_t;
+/**
+* @brief dhcp gethostbynameÐÅÏ¢
+* @param time ³¬Ê±Ê±¼ä£¬µ¥Î»ÎªºÁÃë
+* @param ¶ÓÁкÅ
+*/
+struct gethostbyname_info{
+ int time;
+ char name[HOSTNAME_LEN];
+ int msg_id;
+};
+
+
+/*******************************************************************************
+ * Global function declarations *
+ ******************************************************************************/
+
+/**
+* @brief ´Ódhcpd.leasesÎļþÖлñÈ¡dhcpÐÅÏ¢
+* @param dhcp_list_info dhcp ÐÅÏ¢Á´±í
+* @return ³É¹¦ ·µ»Ø 0, ʧ°Ü·µ»Ø-1
+*/
+int zte_get_mac_list_from_lease(struct list_head *dhcp_list_info);
+
+/**
+* @brief É豸ÐÅÏ¢
+* @param mypc_node É豸ÐÅÏ¢Á´±í
+* @param info information
+* @return ³É¹¦ ·µ»Ø 0, ʧ°Ü·µ»Ø-1
+*/
+int get_dev_list(struct pc_node* mypc_node);
+
+/**
+* @brief ±£´æÐÅÏ¢µ½Îļþ
+* @param filename ÎļþÃû
+* @param info ÐèÒª±£´æµÄÐÅÏ¢
+* @return ÎÞ
+*/
+void save_file(char *filename, char* info);
+
+/**
+* @brief дÐÅÏ¢µ½Îļþ
+* @param filename ÎļþÃû
+* @param info ÐèҪдµÄÐÅÏ¢
+* @return ÎÞ
+*/
+void file_write(char *filename, char *info);
+
+/**
+* @brief ÊÍ·ÅdhcpÐÅÏ¢Á´±í
+* @param dhcp_info_list dhcpÁ´±íÍ·½áµã
+* @return ÎÞ
+*/
+void free_dhcp_list(struct list_head * dhcp_info_list);
+
+/**
+* @brief ÊÍ·ÅÄÚÍøÐÅÏ¢Á´±í
+* @param dhcp_info_list ÄÚÍøÐÅÏ¢Á´±íÍ·½áµã
+* @return ÎÞ
+*/
+void free_laninfo_list(struct list_head * dhcp_info_list);
+
+/**
+* @brief »ñÈ¡É豸ÐÅÏ¢
+* @param interface ÍøÂçÉ豸Ãû
+* @param type Êý¾ÝÀàÐÍ
+* @return ³É¹¦·µ»Ø0£¬Ê§°Ü·Å»Ø-1
+*/
+int getIfStatistic(char *interface, int type, unsigned long long *result_data);
+
+/**
+ * @brief »ñÈ¡wakelockËø
+ * @param lockId wakelockËøID
+ * @return ³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø-1£»
+ */
+int set_wake_lock(const char *lockId);
+
+/**
+ * @brief »ñÈ¡wakelock³¬Ê±Ëø
+ * @param lockId wakelockËøID
+ * @param interval ³¬Ê±Ê±¼ä£¬µ¥Î»: Ãë
+ * @return ³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø-1£»
+ */
+int set_wake_lock_timeout(const char *lockId, unsigned long interval);
+
+/**
+ * @brief ÊÍ·ÅwakelockËø
+ * @param lockId wakelockËøID
+ * @return ³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø-1£»
+ */
+int set_wake_unlock(const char *lockId);
+
+
+int get_lan_info_list(struct list_head *file_list_info);
+
+/**
+ * @brief ÉêÇëÄÚ´æ
+ * @param size ÉêÇëÄÚ´æ´óС
+ * @param is_assert£¬ÉêÇëʧ°ÜÊÇ·ñassert
+ * @return ÉêÇë³É¹¦·µ»ØÉêÇëÄÚ´æµØÖ·£»Ê§°Ü·µ»ØNULL
+ */
+void *safe_malloc(int size, BOOL is_assert);
+
+unsigned long time_sec();
+
+
+/**
+* @brief »ñȡָ¶¨Ïß³ÌÃûµÄpidºÅ
+* @param pidNameΪ½ø³ÌÃû
+* @return ³É¹¦·µ»Ø½ø³ÌºÅpid_tÀàÐÍÖ¸Õë
+* @note µ÷Óøú¯Êý»ñÈ¡·µ»ØÖµ£¬Ê¹ÓúóÒ»¶¨ÒªÊͷŸÃÄÚ´æ¿Õ¼ä
+*/
+pid_t* find_pid_by_name(char *pidName);
+
+/**
+* @brief ¾ßÓг¬Ê±´¦ÀíµÄgethostbyname
+* @param name url
+* @param time ³¬Ê±Ê±³¤,µ¥Î»:Ãë, 0¾ÍÊDZê×¼µÄgethostbyname¹¦ÄÜ
+* @return hostÐÅÏ¢
+* @Note: ͬһ½ø³ÌͬʱֻÄܵ÷ÓÃÒ»´Î¸Ã½Ó¿Ú
+*/
+struct hostent *gethostbyname_t(const char *name, int time);
+
+/**
+* @±¾µØ¼¤»î»ñÈ¡dns½Ó¿Ú£¬²»ÒÀÀµÂ·ÓÉ£¬·µ»ØÖµÎªu32ÀàÐÍipµØÖ·
+*/
+unsigned long gethostbyname_l(char *hostname,char* dev_name);
+
+#endif
+
+#endif /* __NETOTHERAPI_H__ */