/* * Copyright (C) 2007 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. */ #ifdef HAVE_PTHREADS #include #endif #include #include #include #include #include #include #include #include #define LOG_BUF_SIZE 1024 #define LOG_MAIN "log_main" #define LOG_RADIO "log_radio" #define LOG_SYSTEM "log_system" #define LOG_APPS "log_apps" static int log_fds[(int)LOG_ID_MAX] = { -1, -1, -1, -1 }; static int g_debug_level= DLOG_SILENT; static int __dlog_init(log_id_t, log_priority, const char *tag, const char *msg); static int (*write_to_log)(log_id_t, log_priority, const char *tag, const char *msg) = __dlog_init; #ifdef HAVE_PTHREADS static pthread_mutex_t log_init_lock = PTHREAD_MUTEX_INITIALIZER; #endif static int __write_to_log_null(log_id_t log_id, log_priority prio, const char *tag, const char *msg) { return -1; } static int __write_to_log_kernel(log_id_t log_id, log_priority prio, const char *tag, const char *msg) { ssize_t ret; int log_fd; struct iovec vec[3]; if(log_id >= LOG_ID_APPS && prio