summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk1
-rw-r--r--wifiloader/Android.mk17
-rw-r--r--wifiloader/wifiloader.c49
3 files changed, 67 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk
index 45dda93..9cec779 100644
--- a/Android.mk
+++ b/Android.mk
@@ -32,6 +32,7 @@ endif
# Wifi
ifeq ($(BOARD_HAVE_SAMSUNG_WIFI),true)
include $(SAM_ROOT)/macloader/Android.mk
+include $(SAM_ROOT)/wifiloader/Android.mk
endif
ifeq ($(BOARD_VENDOR),samsung)
diff --git a/wifiloader/Android.mk b/wifiloader/Android.mk
new file mode 100644
index 0000000..15c9dc2
--- /dev/null
+++ b/wifiloader/Android.mk
@@ -0,0 +1,17 @@
+ifeq ($(BOARD_HAVE_SAMSUNG_WIFI),true)
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ wifiloader.c
+
+LOCAL_SHARED_LIBRARIES := \
+ liblog libutils
+
+LOCAL_MODULE := wifiloader
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_EXECUTABLE)
+
+endif
diff --git a/wifiloader/wifiloader.c b/wifiloader/wifiloader.c
new file mode 100644
index 0000000..54afdaf
--- /dev/null
+++ b/wifiloader/wifiloader.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2015 Andreas Schneider <asn@cryptomilk.org>
+ *
+ * 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.
+ */
+
+#define LOG_TAG "wifiloader"
+#define LOG_NDEBUG 0
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <cutils/log.h>
+
+#define DEFERRED_INITCALLS "/proc/deferred_initcalls"
+
+int main(void)
+{
+ char buf[8] = { '\0' };
+ FILE *fp;
+ size_t r;
+
+ ALOGD("Trigger initcall of deferred modules\n");
+
+ fp = fopen(DEFERRED_INITCALLS, "r");
+ if (fp == NULL) {
+ ALOGE("Failed to open %s - error: %s\n",
+ DEFERRED_INITCALLS,
+ strerror(errno));
+ return -errno;
+ }
+
+ r = fread(buf, sizeof(buf), 1, fp);
+ fclose(fp);
+
+ ALOGV("%s=%s\n", DEFERRED_INITCALLS, buf);
+
+ return 0;
+}