1/****************************************************************************** 2 * $Id: AKFS_Common.h 580 2012-03-29 09:56:21Z yamada.rj $ 3 ****************************************************************************** 4 * 5 * Copyright (C) 2012 Asahi Kasei Microdevices Corporation, Japan 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19#ifndef AKFS_INC_COMMON_H 20#define AKFS_INC_COMMON_H 21 22#ifdef WIN32 23#ifndef _WIN32_WINNT 24#define _WIN32_WINNT 0x0501 25#endif 26 27#include <windows.h> 28#include <stdio.h> 29#include <stdlib.h> 30#include <conio.h> 31#include <stdarg.h> 32#include <crtdbg.h> 33#include "Android.h" 34 35#define DBG_LEVEL DBG_LEVEL4 36#define ENABLE_AKMDEBUG 1 37 38#else 39#include <stdio.h> /* frpintf */ 40#include <stdlib.h> /* atoi */ 41#include <string.h> /* memset */ 42#include <unistd.h> 43#include <stdarg.h> /* va_list */ 44#include <utils/Log.h> /* LOGV */ 45#include <errno.h> /* errno */ 46 47#endif 48 49/*** Constant definition ******************************************************/ 50#define AKM_TRUE 1 /*!< Represents true */ 51#define AKM_FALSE 0 /*!< Represents false */ 52#define AKM_SUCCESS 1 /*!< Represents success */ 53#define AKM_FAIL 0 /*!< Represents fail */ 54 55#undef LOG_TAG 56#define LOG_TAG "AKMD_FS" 57 58#define DBG_LEVEL0 0 /* Critical */ 59#define DBG_LEVEL1 1 /* Notice */ 60#define DBG_LEVEL2 2 /* Information */ 61#define DBG_LEVEL3 3 /* Debug */ 62#define DBG_LEVEL4 4 /* Verbose */ 63 64#ifndef DBG_LEVEL 65#define DBG_LEVEL DBG_LEVEL0 66#endif 67 68#define DATA_AREA01 0x0001 69#define DATA_AREA02 0x0002 70#define DATA_AREA03 0x0004 71#define DATA_AREA04 0x0008 72#define DATA_AREA05 0x0010 73#define DATA_AREA06 0x0020 74#define DATA_AREA07 0x0040 75#define DATA_AREA08 0x0080 76#define DATA_AREA09 0x0100 77#define DATA_AREA10 0x0200 78#define DATA_AREA11 0x0400 79#define DATA_AREA12 0x0800 80#define DATA_AREA13 0x1000 81#define DATA_AREA14 0x2000 82#define DATA_AREA15 0x4000 83#define DATA_AREA16 0x8000 84 85 86/* Debug area definition */ 87#define AKMDATA_DUMP DATA_AREA01 /*<! Dump data */ 88#define AKMDATA_BDATA DATA_AREA02 /*<! BDATA */ 89#define AKMDATA_MAG DATA_AREA03 /*<! Magnetic Field */ 90#define AKMDATA_ACC DATA_AREA04 /*<! Accelerometer */ 91#define AKMDATA_ORI DATA_AREA05 /*<! Orientation */ 92#define AKMDATA_GETINTERVAL DATA_AREA06 93#define AKMDATA_LOOP DATA_AREA07 94#define AKMDATA_DRV DATA_AREA08 95 96#ifndef ENABLE_AKMDEBUG 97#define ENABLE_AKMDEBUG 0 /* Eanble debug output when it is 1. */ 98#endif 99 100#define OPMODE_CONSOLE 0x01 101#define OPMODE_FST 0x02 102 103/***** Debug Level Output *************************************/ 104#if ENABLE_AKMDEBUG 105#define AKMDEBUG(level, format, ...) \ 106 (((level) <= DBG_LEVEL) \ 107 ? (fprintf(stdout, (format), ##__VA_ARGS__)) \ 108 : ((void)0)) 109#else 110#define AKMDEBUG(level, format, ...) 111#endif 112 113/***** Dbg Zone Output ***************************************/ 114#if ENABLE_AKMDEBUG 115#define AKMDATA(flag, format, ...) \ 116 ((((int)flag) & g_dbgzone) \ 117 ? (fprintf(stdout, (format), ##__VA_ARGS__)) \ 118 : ((void)0)) 119#else 120#define AKMDATA(flag, format, ...) 121#endif 122 123/***** Log output ********************************************/ 124#ifdef AKM_LOG_ENABLE 125#define AKM_LOG(format, ...) ALOGD((format), ##__VA_ARGS__) 126#else 127#define AKM_LOG(format, ...) 128#endif 129 130/***** Error output *******************************************/ 131#define AKMERROR \ 132 ((g_opmode & OPMODE_CONSOLE) \ 133 ? (fprintf(stderr, "%s:%d Error.\n", __FUNCTION__, __LINE__)) \ 134 : (ALOGE("%s:%d Error.", __FUNCTION__, __LINE__))) 135 136#define AKMERROR_STR(api) \ 137 ((g_opmode & OPMODE_CONSOLE) \ 138 ? (fprintf(stderr, "%s:%d %s Error (%s).\n", \ 139 __FUNCTION__, __LINE__, (api), strerror(errno))) \ 140 : (ALOGE("%s:%d %s Error (%s).", \ 141 __FUNCTION__, __LINE__, (api), strerror(errno)))) 142 143/*** Type declaration *********************************************************/ 144 145/*** Global variables *********************************************************/ 146extern int g_stopRequest; /*!< 0:Not stop, 1:Stop */ 147extern int g_opmode; /*!< 0:Daemon mode, 1:Console mode. */ 148extern int g_dbgzone; /*!< Debug zone. */ 149 150/*** Prototype of function ****************************************************/ 151 152#endif /* AKMD_INC_AKCOMMON_H */ 153 154