/****************************************************************************** * $Id: AKFS_Common.h 580 2012-03-29 09:56:21Z yamada.rj $ ****************************************************************************** * * Copyright (C) 2012 Asahi Kasei Microdevices Corporation, Japan * * 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. */ #ifndef AKFS_INC_COMMON_H #define AKFS_INC_COMMON_H #ifdef WIN32 #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #endif #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <stdarg.h> #include <crtdbg.h> #include "Android.h" #define DBG_LEVEL DBG_LEVEL4 #define ENABLE_AKMDEBUG 1 #else #include <stdio.h> /* frpintf */ #include <stdlib.h> /* atoi */ #include <string.h> /* memset */ #include <unistd.h> #include <stdarg.h> /* va_list */ #include <utils/Log.h> /* LOGV */ #include <errno.h> /* errno */ #endif /*** Constant definition ******************************************************/ #define AKM_TRUE 1 /*!< Represents true */ #define AKM_FALSE 0 /*!< Represents false */ #define AKM_SUCCESS 1 /*!< Represents success */ #define AKM_FAIL 0 /*!< Represents fail */ #undef LOG_TAG #define LOG_TAG "AKMD_FS" #define DBG_LEVEL0 0 /* Critical */ #define DBG_LEVEL1 1 /* Notice */ #define DBG_LEVEL2 2 /* Information */ #define DBG_LEVEL3 3 /* Debug */ #define DBG_LEVEL4 4 /* Verbose */ #ifndef DBG_LEVEL #define DBG_LEVEL DBG_LEVEL0 #endif #define DATA_AREA01 0x0001 #define DATA_AREA02 0x0002 #define DATA_AREA03 0x0004 #define DATA_AREA04 0x0008 #define DATA_AREA05 0x0010 #define DATA_AREA06 0x0020 #define DATA_AREA07 0x0040 #define DATA_AREA08 0x0080 #define DATA_AREA09 0x0100 #define DATA_AREA10 0x0200 #define DATA_AREA11 0x0400 #define DATA_AREA12 0x0800 #define DATA_AREA13 0x1000 #define DATA_AREA14 0x2000 #define DATA_AREA15 0x4000 #define DATA_AREA16 0x8000 /* Debug area definition */ #define AKMDATA_DUMP DATA_AREA01 /*<! Dump data */ #define AKMDATA_BDATA DATA_AREA02 /*<! BDATA */ #define AKMDATA_MAG DATA_AREA03 /*<! Magnetic Field */ #define AKMDATA_ACC DATA_AREA04 /*<! Accelerometer */ #define AKMDATA_ORI DATA_AREA05 /*<! Orientation */ #define AKMDATA_GETINTERVAL DATA_AREA06 #define AKMDATA_LOOP DATA_AREA07 #define AKMDATA_DRV DATA_AREA08 #ifndef ENABLE_AKMDEBUG #define ENABLE_AKMDEBUG 0 /* Eanble debug output when it is 1. */ #endif #define OPMODE_CONSOLE 0x01 #define OPMODE_FST 0x02 /***** Debug Level Output *************************************/ #if ENABLE_AKMDEBUG #define AKMDEBUG(level, format, ...) \ (((level) <= DBG_LEVEL) \ ? (fprintf(stdout, (format), ##__VA_ARGS__)) \ : ((void)0)) #else #define AKMDEBUG(level, format, ...) #endif /***** Dbg Zone Output ***************************************/ #if ENABLE_AKMDEBUG #define AKMDATA(flag, format, ...) \ ((((int)(flag)) & g_dbgzone) \ ? (fprintf(stdout, (format), ##__VA_ARGS__)) \ : ((void)0)) #else #define AKMDATA(flag, format, ...) #endif /***** Log output ********************************************/ #ifdef AKM_LOG_ENABLE #define AKM_LOG(format, ...) ALOGD((format), ##__VA_ARGS__) #else #define AKM_LOG(format, ...) #endif /***** Error output *******************************************/ #define AKMERROR \ ((g_opmode & OPMODE_CONSOLE) \ ? (fprintf(stderr, "%s:%d Error.\n", __FUNCTION__, __LINE__)) \ : (ALOGE("%s:%d Error.", __FUNCTION__, __LINE__))) #define AKMERROR_STR(api) \ ((g_opmode & OPMODE_CONSOLE) \ ? (fprintf(stderr, "%s:%d %s Error (%s).\n", \ __FUNCTION__, __LINE__, (api), strerror(errno))) \ : (ALOGE("%s:%d %s Error (%s).", \ __FUNCTION__, __LINE__, (api), strerror(errno)))) /*** Type declaration *********************************************************/ /*** Global variables *********************************************************/ extern int g_stopRequest; /*!< 0:Not stop, 1:Stop */ extern int g_opmode; /*!< 0:Daemon mode, 1:Console mode. */ extern int g_dbgzone; /*!< Debug zone. */ /*** Prototype of function ****************************************************/ #endif /* AKMD_INC_AKCOMMON_H */