
// Copyright (c) 2020, ARM Limited.
//
//    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.

/*
 *   Filename:     src/debug_types.h
 *   Description:
 *    Defines fundamental debugger datatypes for the functional model
 */

#ifndef DEBUG_TYPES_H_
#define DEBUG_TYPES_H_

#ifdef __cplusplus
extern "C"
{
#endif

    // Debug verbosity mask
    typedef enum func_debug_verbosity_e
    {
        DEBUG_VERB_NONE  = 0x00,
        DEBUG_VERB_INFO  = 0x01,    // Informational debugging messages
        DEBUG_VERB_IFACE = 0x02,    // Interface debugging support
        DEBUG_VERB_LOW   = 0x04,    // Low, medium, and high levels of debug printout
        DEBUG_VERB_MED   = 0x08,
        DEBUG_VERB_HIGH  = 0x10
    } func_debug_verbosity_e;

    // Generated debug modes enumeration
    typedef enum func_debug_mode_e
    {
        DEBUG_NONE = 0x0,
#define DEBUG_MODE(NAME, BIT) DEBUG_##NAME = (1UL << BIT),
#include "debug_modes.def"
#undef DEBUG_MODE
        DEBUG_ALL = 0xffffffffffffffffUL
    } func_debug_mode_e;

#define DEBUG_INST_ALL 0xffffffffffffffffUL

#ifdef __cplusplus
}
#endif

#endif
