156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * File: 456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * eas_report.c 556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Contents and purpose: 756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This file contains the debug message handling routines for the EAS library. 856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * These routines should be modified as needed for your system. 956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Copyright 2005 Sonic Network Inc. 117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project 127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License. 147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at 157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and 227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License. 2356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 2456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Revision Control: 2656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Revision: 659 $ 2756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Date: 2007-04-24 13:36:35 -0700 (Tue, 24 Apr 2007) $ 2856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 3056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _lint 3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "lint_stdlib.h" 3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else 3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include <stdlib.h> 3556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include <stdio.h> 3656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include <stdarg.h> 3756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 3856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_report.h" 4056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksstatic int severityLevel = 9999; 4256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* debug file */ 4456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksstatic FILE *debugFile = NULL; 4556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksint flush = 0; 4656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef _NO_DEBUG_PREPROCESSOR 4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* structure should have an #include for each error message header file */ 5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksS_DEBUG_MESSAGES debugMessages[] = 5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef UNIFIED_DEBUG_MESSAGES 5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_config_msgs.h" 5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_host_msgs.h" 5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_hostmm_msgs.h" 5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_math_msgs.h" 5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_midi_msgs.h" 6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_mixer_msgs.h" 6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_pcm_msgs.h" 6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_public_msgs.h" 6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_smf_msgs.h" 6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_wave_msgs.h" 6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_voicemgt_msgs.h" 6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _FM_SYNTH 6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_fmsynth_msgs.h" 6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_fmengine_msgs.h" 7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WT_SYNTH 7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_wtsynth_msgs.h" 7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_wtengine_msgs.h" 7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _ARM_TEST_MAIN 7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "arm_main_msgs.h" 7956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 8056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 8156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _EAS_MAIN 8256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_main_msgs.h" 8356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 8456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 8556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _EAS_MAIN_IPC 8656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_main_ipc_msgs.h" 8756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 8856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 8956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _METRICS_ENABLED 9056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_perf_msgs.h" 9156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 9256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 9356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _COMPRESSOR_ENABLED 9456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_compressor_msgs.h" 9556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 9656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 9756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _ENHANCER_ENABLED 9856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_enhancer_msgs.h" 9956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 10056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 10156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WOW_ENABLED 10256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_wow_msgs.h" 10356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 10456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 10556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _SMAF_PARSER 10656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_smaf_msgs.h" 10756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 10856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 10956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _OTA_PARSER 11056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_ota_msgs.h" 11156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 11256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _IMELODY_PARSER 11456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_imelody_msgs.h" 11556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 11656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WAVE_PARSER 11856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_wavefile_msgs.h" 11956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 12056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 12156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined(_CMX_PARSER) || defined(_MFI_PARSER) 12256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_cmf_msgs.h" 12356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 12456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 12556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined(_CMX_PARSER) || defined(_MFI_PARSER) || defined(_WAVE_PARSER) 12656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_imaadpcm_msgs.h" 12756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 12856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 12956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else 13056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_debugmsgs.h" 13156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 13256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 13356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* denotes end of error messages */ 13456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 0,0,0 } 13556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}; 13656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 13756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 13856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_ReportEx() 13956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 14056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This is the error message handler. The default handler outputs error 14156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * messages to stdout. Modify this as needed for your system. 14256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 14356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 14456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksvoid EAS_ReportEx (int severity, unsigned long hashCode, int serialNum, ...) 14556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 14656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_list vargs; 14756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks int i; 14856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 14956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /* check severity level */ 15056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (severity > severityLevel) 15156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks return; 15256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 15356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /* find the error message and output to stdout */ 15456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /*lint -e{661} we check for NULL pointer - no fence post error here */ 15556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks for (i = 0; debugMessages[i].m_pDebugMsg; i++) 15656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 15756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if ((debugMessages[i].m_nHashCode == hashCode) && 15856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks (debugMessages[i].m_nSerialNum == serialNum)) 15956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 16056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /*lint -e{826} <allow variable args> */ 16156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_start(vargs, serialNum); 16256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (debugFile) 16356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 16456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks vfprintf(debugFile, debugMessages[i].m_pDebugMsg, vargs); 16556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (flush) 16656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks fflush(debugFile); 16756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 16856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks else 16956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 17056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks vprintf(debugMessages[i].m_pDebugMsg, vargs); 17156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 17256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_end(vargs); 17356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks return; 17456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 17556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 17656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks printf("Unrecognized error: Severity=%d; HashCode=%lu; SerialNum=%d\n", severity, hashCode, serialNum); 17756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} /* end EAS_ReportEx */ 17856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 17956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else 18056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 18156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_Report() 18256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 18356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This is the error message handler. The default handler outputs error 18456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * messages to stdout. Modify this as needed for your system. 18556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 18656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 18756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksvoid EAS_Report (int severity, const char *fmt, ...) 18856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 18956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_list vargs; 19056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 19156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /* check severity level */ 19256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (severity > severityLevel) 19356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks return; 19456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 19556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /*lint -e{826} <allow variable args> */ 19656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_start(vargs, fmt); 19756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (debugFile) 19856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 19956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks vfprintf(debugFile, fmt, vargs); 20056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (flush) 20156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks fflush(debugFile); 20256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 20356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks else 20456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 20556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks vprintf(fmt, vargs); 20656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 20756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_end(vargs); 20856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} /* end EAS_Report */ 20956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 21056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 21156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_ReportX() 21256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 21356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This is the error message handler. The default handler outputs error 21456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * messages to stdout. Modify this as needed for your system. 21556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 21656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 21756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksvoid EAS_ReportX (int severity, const char *fmt, ...) 21856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 21956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_list vargs; 22056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 22156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /* check severity level */ 22256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (severity > severityLevel) 22356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks return; 22456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 22556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks /*lint -e{826} <allow variable args> */ 22656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_start(vargs, fmt); 22756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (debugFile) 22856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 22956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks vfprintf(debugFile, fmt, vargs); 23056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks if (flush) 23156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks fflush(debugFile); 23256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 23356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks else 23456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks { 23556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks vprintf(fmt, vargs); 23656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks } 23756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks va_end(vargs); 23856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} /* end EAS_ReportX */ 23956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 24056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 24156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 24256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_SetDebugLevel() 24356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 24456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Sets the level for debug message output 24556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 24656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 24756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 24856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksvoid EAS_SetDebugLevel (int severity) 24956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 25056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks severityLevel = severity; 25156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} /* end EAS_SetDebugLevel */ 25256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 25356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 25456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_SetDebugFile() 25556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 25656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Redirect debugger output to the specified file. 25756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 25856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 25956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksvoid EAS_SetDebugFile (void *file, int flushAfterWrite) 26056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 26156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks debugFile = (FILE*) file; 26256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks flush = flushAfterWrite; 26356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} /* end EAS_SetDebugFile */ 26456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 265