hal_nordic/drivers/nrf_802154/driver/src/nrf_802154_debug_log_codes.h

117 lines
4.8 KiB
C

/*
* Copyright (c) 2019 - 2021, Nordic Semiconductor ASA
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef NRF_802154_DEBUG_LOG_CODES_H_
#define NRF_802154_DEBUG_LOG_CODES_H_
#include "nrf_802154_sl_log.h"
/**
* @brief List of C modules in nRF 802.15.4 Driver, with theirs ID-s
*
* Range of possible values for the 802.15.4 Driver modules has been indicated
* in nrf_802154_sl_log.h (see "Distribution of IDs for Debug Logs" in there)
* Prefix "NRF_802154_DRV_MODULE_ID_" is mandatory here,
* the final part is the module name to be presented by "event_decoder" tool.
*
* @note Certain NRF_802154_DRV_MODULE_ID.. value may be shared
* between alternative implementations of module
* (e.g. random_stdlib/random_zephyr/random_newlib)
* In other cases they must be unique.
* This enum must exist in .elf file to provide metadata for decoder.html tool
* (enum is extracted from .elf in the preparatory stage before using decoder.html)
*/
typedef enum
{
NRF_802154_DRV_MODULE_ID_APPLICATION = 1U,
NRF_802154_DRV_MODULE_ID_CORE = 2U,
NRF_802154_DRV_MODULE_ID_CRITICAL_SECTION = 3U,
NRF_802154_DRV_MODULE_ID_TRX = 4U,
NRF_802154_DRV_MODULE_ID_CSMACA = 5U,
NRF_802154_DRV_MODULE_ID_DELAYED_TRX = 6U,
NRF_802154_DRV_MODULE_ID_ACK_TIMEOUT = 7U,
NRF_802154_DRV_MODULE_ID_TRX_PPI = 8U,
} nrf_802154_drv_modules_list_t;
/**
* @brief List of LOCAL EVENTS generated by module CORE
*
* To define elements of this enum, use
* - syntax: NRF_802154_LOG_LOCAL_EVENT_ID_{m}__{e} = {nID}
* or
* - macro: NRF_802154_LOG_L_EVENT_DEFINE({m},{e},{nID},{p_values})
* where:
* {m} is the name of module
* {e} is the name of local event
* {nID} is numeric ID of local event (unique in module {m})
* {p_values} further enum that defines the set of possible values of parameter for event {e}
*
* Both options (syntax/macro) are equivalent, except that using the macro causes additional
* link creation to {p_values}. See below - currently in the module CORE there is an local
* event SET_STATE, that has id 1 and possible parameter values for this event are as in
* enum radio_state_t
*/
typedef enum
{
NRF_802154_LOG_L_EVENT_DEFINE(CORE, SET_STATE, 1, radio_state_t)
} nrf_802154_drv_local_events_in_CORE_t;
/**
* @brief List of GLOBAL EVENTS generated in 802.15.4 Driver modules
*
* Range of possible values for the 802.15.4 Driver modules has been indicated
* in nrf_802154_sl_log.h (see "Distribution of IDs for Debug Logs" in there)
*/
typedef enum
{
NRF_802154_LOG_GLOBAL_EVENT_ID_RADIO_RESET = 1U
// Possible "RADIO_RESET" parameter values are : 0 (the only possible value)
} nrf_802154_drv_global_events_list_t;
/**
* @brief List of all definitions that are needed for the correct presentation of debug logs
*
* All of the 'typedefs' defined above that are not used anywhere else in the code should occur
* in the union below, to ensure that information about them will appear in the final .elf file
*/
typedef union
{
uint8_t dummy00tag;
nrf_802154_drv_modules_list_t dummy01tag;
nrf_802154_drv_global_events_list_t dummy02tag;
nrf_802154_drv_local_events_in_CORE_t dummy03tag;
} nrf_802154_drv_typedefs_to_save_in_elf_t;
#endif /* NRF_802154_DEBUG_LOG_CODES_H_ */