zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/lib/libnvram/Makefile b/ap/lib/libnvram/Makefile
new file mode 100755
index 0000000..74488eb
--- /dev/null
+++ b/ap/lib/libnvram/Makefile
@@ -0,0 +1,33 @@
+#*******************************************************************************
+# include ZTE library makefile
+#*******************************************************************************
+include $(COMMON_MK)
+
+##############USER COMIZE BEGIN################
+LIB_STATIC = libnvram.a
+LIB_SHARED = libnvram.so
+
+OBJS = nv_api.o cfg_api.o sys_infra.o cfg_api_wrapper.o
+
+CFLAGS += -g
+#LDFLAGS += -lpthread
+##############USER COMIZE END##################
+
+CFLAGS += -I$(APP_DIR)/include
+CFLAGS += -fPIC
+LDFLAGS += -shared
+
+all: $(LIB_STATIC) $(LIB_SHARED)
+
+$(LIB_STATIC) : $(OBJS)
+ $(AR) rcs $(LIB_STATIC) $(OBJS)
+
+$(LIB_SHARED): $(OBJS)
+ $(CC) $(LDFLAGS) -o $@ $^
+
+romfs:
+ $(ROMFSINST) $(LIB_SHARED) /lib/$(LIB_SHARED)
+
+clean:
+ -$(RM) *.a *.o *.so $(LIB_SHARED) $(LIB_STATIC) $(OBJS)
+
diff --git a/ap/lib/libnvram/libnvram.a b/ap/lib/libnvram/libnvram.a
new file mode 100644
index 0000000..4908ccd
--- /dev/null
+++ b/ap/lib/libnvram/libnvram.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram.so b/ap/lib/libnvram/libnvram.so
new file mode 100755
index 0000000..bf47e49
--- /dev/null
+++ b/ap/lib/libnvram/libnvram.so
Binary files differ
diff --git a/ap/lib/libnvram/nv_api.h b/ap/lib/libnvram/nv_api.h
new file mode 100755
index 0000000..53bebca
--- /dev/null
+++ b/ap/lib/libnvram/nv_api.h
@@ -0,0 +1,46 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+*
+* ÎļþÃû³Æ: nv_api.h
+* Îļþ±êʶ: nv_api.h
+* ÄÚÈÝÕªÒª: nv½Ó¿ÚÉùÃ÷Í·Îļþ
+* ʹÓ÷½·¨: #include <nv_api.h>
+*
+* ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/09/20 V1.0 Create ÍõÇæ ´´½¨
+*
+*******************************************************************************/
+#ifndef _NV_API_H
+#define _NV_API_H
+
+/*******************************************************************************
+* Í·Îļþ *
+*******************************************************************************/
+#include "nv_typedef.h"
+
+/*******************************************************************************
+* ºê¶¨Òå *
+*******************************************************************************/
+
+/*******************************************************************************
+* Êý¾ÝÀàÐͶ¨Òå *
+*******************************************************************************/
+
+/*******************************************************************************
+* È«¾Ö±äÁ¿ÉùÃ÷ *
+*******************************************************************************/
+
+/*******************************************************************************
+* È«¾Öº¯ÊýÉùÃ÷ *
+*******************************************************************************/
+int nv_get_item(char * file, char * key, char * buf, int len);
+int nv_set_item(char * file, char * key, char * value, int saveFlag);
+int nv_delete_item(char * file, char * key);
+int nv_clear(char * file);
+int nv_reset(char * file);
+int nv_show(char * file);
+int nv_commit(char * file);
+
+#endif
+
diff --git a/ap/lib/libnvram/nv_typedef.h b/ap/lib/libnvram/nv_typedef.h
new file mode 100755
index 0000000..127fe01
--- /dev/null
+++ b/ap/lib/libnvram/nv_typedef.h
@@ -0,0 +1,94 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+*
+* ÎļþÃû³Æ: nv_typedef.h
+* Îļþ±êʶ: nv_typedef.h
+* ÄÚÈÝÕªÒª: nvͨÓÃÀàÐͶ¨ÒåÍ·Îļþ
+* ʹÓ÷½·¨: #include <nv_typedef.h>
+*
+* ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/09/20 V1.0 Create ÍõÇæ ´´½¨
+*
+*******************************************************************************/
+#ifndef _NV_TYPEDEF_H
+#define _NV_TYPEDEF_H
+
+/*******************************************************************************
+* Í·Îļþ *
+*******************************************************************************/
+#include "softap_api.h"
+/*******************************************************************************
+* ºê¶¨Òå *
+*******************************************************************************/
+
+
+// ÐèÒªºÍÐͺŻúÈ·¶¨
+#define MSG_TYPE_NV 6
+
+#define NV_FS_SHOW "/etc_rw/nv/nvshow"
+#define NV_CHECK_SIZE 4
+
+#define NV_RT2860 "cfg"
+#define NV_RO "ro"
+#define NV_RTDEV "rtdev"
+#define NV_CERT "cert"
+#define NV_WAPI "wapi"
+
+/*******************************************************************************
+* Êý¾ÝÀàÐͶ¨Òå *
+*******************************************************************************/
+enum E_NV_MSG_TYPE
+{
+ MSG_GET = 0,
+ MSG_SET,
+ MSG_UNSET,
+ MSG_CLEAR,
+ MSG_RESET,
+ MSG_SHOW,
+ MSG_COMMIT
+};
+
+enum E_NV_RESULT
+{
+ RESULT_SUCCESS = 0,
+ RESULT_INVAL,
+ RESULT_MALLOC_FAIL,
+ RESULT_NO_ITEM,
+ RESULT_NO_FILE,
+ RESULT_FILE_OPEN_FAIL,
+ RESULT_FILE_WRITE_FAIL,
+ RESULT_FILE_READ_FAIL,
+ RESULT_FAIL
+};
+
+typedef struct
+{
+ long msgType;
+ long pid;
+ int msgIndex;
+ int nvType;
+ int saveflag;
+ char file[NV_MAX_FILE_LEN];
+ char key[NV_MAX_KEY_LEN];
+ char value[NV_MAX_VAL_LEN];
+}T_NV_MSG_INFO;
+
+typedef struct
+{
+ long msgType;
+ int msgIndex;
+ int result;
+ char value[NV_MAX_VAL_LEN];
+}T_NV_MSG_RESULT;
+
+/*******************************************************************************
+* È«¾Ö±äÁ¿ÉùÃ÷ *
+*******************************************************************************/
+
+/*******************************************************************************
+* È«¾Öº¯ÊýÉùÃ÷ *
+*******************************************************************************/
+
+#endif
+