init/cutils: move list utility code to cutils from init

Change-Id: I357ceee813700297d8343159f22a07659e768d41
Signed-off-by: Dima Zavin <dima@android.com>
diff --git a/init/list.h b/include/cutils/list.h
similarity index 96%
rename from init/list.h
rename to include/cutils/list.h
index 7b9ef32..eb5a3c8 100644
--- a/init/list.h
+++ b/include/cutils/list.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef _INIT_LIST_H_
-#define _INIT_LIST_H_
+#ifndef _CUTILS_LIST_H_
+#define _CUTILS_LIST_H_
 
 #include <stddef.h>
 
diff --git a/init/devices.c b/init/devices.c
index 43d0ca3..a2f84aa 100644
--- a/init/devices.c
+++ b/init/devices.c
@@ -34,12 +34,12 @@
 #include <asm/page.h>
 #include <sys/wait.h>
 
+#include <cutils/list.h>
 #include <cutils/uevent.h>
 
 #include "devices.h"
 #include "util.h"
 #include "log.h"
-#include "list.h"
 
 #define SYSFS_PREFIX    "/sys"
 #define FIRMWARE_DIR1   "/etc/firmware"
diff --git a/init/init.c b/init/init.c
index 53b8aa5..eab14f6 100755
--- a/init/init.c
+++ b/init/init.c
@@ -33,6 +33,7 @@
 #include <sys/un.h>
 #include <libgen.h>
 
+#include <cutils/list.h>
 #include <cutils/sockets.h>
 #include <cutils/iosched_policy.h>
 #include <private/android_filesystem_config.h>
@@ -42,7 +43,6 @@
 
 #include "devices.h"
 #include "init.h"
-#include "list.h"
 #include "log.h"
 #include "property_service.h"
 #include "bootchart.h"
diff --git a/init/init.h b/init/init.h
index 05cdfaa..2d98c7c 100644
--- a/init/init.h
+++ b/init/init.h
@@ -17,7 +17,7 @@
 #ifndef _INIT_INIT_H
 #define _INIT_INIT_H
 
-#include "list.h"
+#include <cutils/list.h>
 
 #include <sys/stat.h>
 
diff --git a/init/init_parser.c b/init/init_parser.c
index d9d3084..fa813b9 100644
--- a/init/init_parser.c
+++ b/init/init_parser.c
@@ -27,11 +27,11 @@
 #include "parser.h"
 #include "init_parser.h"
 #include "log.h"
-#include "list.h"
 #include "property_service.h"
 #include "util.h"
 
 #include <cutils/iosched_policy.h>
+#include <cutils/list.h>
 
 #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
 #include <sys/_system_properties.h>
diff --git a/init/parser.c b/init/parser.c
index 3c2ec00..48e7aec 100644
--- a/init/parser.c
+++ b/init/parser.c
@@ -3,7 +3,6 @@
 #include <string.h>
 
 #include "parser.h"
-#include "list.h"
 #include "log.h"
 
 #define RAW(x...) log_write(6, x)
diff --git a/init/signal_handler.c b/init/signal_handler.c
index f89d058..b170132 100644
--- a/init/signal_handler.c
+++ b/init/signal_handler.c
@@ -24,9 +24,9 @@
 #include <sys/wait.h>
 #include <cutils/sockets.h>
 #include <cutils/android_reboot.h>
+#include <cutils/list.h>
 
 #include "init.h"
-#include "list.h"
 #include "util.h"
 #include "log.h"
 
diff --git a/init/ueventd_parser.c b/init/ueventd_parser.c
index 0dd8b4d..3e60df5 100644
--- a/init/ueventd_parser.c
+++ b/init/ueventd_parser.c
@@ -22,7 +22,6 @@
 #include "ueventd_parser.h"
 #include "parser.h"
 #include "log.h"
-#include "list.h"
 #include "util.h"
 
 static void parse_line_device(struct parse_state *state, int nargs, char **args);
diff --git a/init/util.c b/init/util.c
index bc24b08..fd4bee2 100755
--- a/init/util.c
+++ b/init/util.c
@@ -34,7 +34,6 @@
 #include <private/android_filesystem_config.h>
 
 #include "log.h"
-#include "list.h"
 #include "util.h"
 
 /*
@@ -156,26 +155,6 @@
     return 0;
 }
 
-void list_init(struct listnode *node)
-{
-    node->next = node;
-    node->prev = node;
-}
-
-void list_add_tail(struct listnode *head, struct listnode *item)
-{
-    item->next = head;
-    item->prev = head->prev;
-    head->prev->next = item;
-    head->prev = item;
-}
-
-void list_remove(struct listnode *item)
-{
-    item->next->prev = item->prev;
-    item->prev->next = item->next;
-}
-
 #define MAX_MTD_PARTITIONS 16
 
 static struct {
diff --git a/libcutils/Android.mk b/libcutils/Android.mk
index e183521..3405dee 100644
--- a/libcutils/Android.mk
+++ b/libcutils/Android.mk
@@ -40,6 +40,7 @@
 	cpu_info.c \
 	load_file.c \
 	klog.c \
+	list.c \
 	open_memstream.c \
 	strdup16to8.c \
 	strdup8to16.c \
diff --git a/libcutils/list.c b/libcutils/list.c
new file mode 100644
index 0000000..e13452d
--- /dev/null
+++ b/libcutils/list.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cutils/list.h>
+
+void list_init(struct listnode *node)
+{
+    node->next = node;
+    node->prev = node;
+}
+
+void list_add_tail(struct listnode *head, struct listnode *item)
+{
+    item->next = head;
+    item->prev = head->prev;
+    head->prev->next = item;
+    head->prev = item;
+}
+
+void list_remove(struct listnode *item)
+{
+    item->next->prev = item->prev;
+    item->prev->next = item->next;
+}