[Feature][ZXW-292]merge P56U06 version
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: I922cf7b03b256d7dd5b0a6b73c3eac813f9512eb
diff --git a/ap/app/zte_mdl/zte_mdl.c b/ap/app/zte_mdl/zte_mdl.c
index d93283c..38bb203 100755
--- a/ap/app/zte_mdl/zte_mdl.c
+++ b/ap/app/zte_mdl/zte_mdl.c
@@ -28,6 +28,11 @@
#include <pthread.h>
#include <zte_mdl.h>
+#define PROC_CMDLINE_NO_CONSOLE (0)
+#define PROC_CMDLINE_CONSOLE (1)
+#define STDOUT_BUFFER_SIZE (256)
+#define STDOUT_PATH_DEVNULL "/dev/null"
+
void nvserver_entry(void)
{
nvserver_main(0,NULL);
@@ -99,12 +104,48 @@
//return; //kw 3
}
+void rediect_stdout(void)
+{
+ int fd = 0;
+ FILE *file = NULL;
+ int console = PROC_CMDLINE_NO_CONSOLE;
+ char buffer[STDOUT_BUFFER_SIZE] = {0};
+
+ file = fopen("/proc/cmdline", "r");
+ if (file == NULL) {
+ printf("rediect_stdout: cmdline file read error\n");
+ return;
+ }
+
+ while (fgets(buffer, sizeof(buffer), file) != NULL)
+ {
+ if(strstr(buffer, "console"))
+ {
+ console = PROC_CMDLINE_CONSOLE;
+ break;
+ }
+ }
+
+ if((console == PROC_CMDLINE_NO_CONSOLE)
+ && ((fd = open(STDOUT_PATH_DEVNULL, O_RDWR, 0)) > 0))
+ {
+ (void)dup2(fd, STDIN_FILENO);
+ (void)dup2(fd, STDOUT_FILENO);
+ (void)dup2(fd, STDERR_FILENO);
+
+ setvbuf(stdout, NULL, _IOLBF, 0);
+ if (fd > STDERR_FILENO)
+ (void)close(fd);
+ }
+ fclose(file);
+}
+
int main(int argc, char *argv[])
{
/* nvserver */
pthread_t nvserver_thread_tid;
- //daemon(0, 0);
+ rediect_stdout();
pthread_create(&nvserver_thread_tid, NULL, (void *)nvserver_entry, NULL);
/* zte_drv_serial_ctrl */