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