Menu Toggle
v2.3.1 (RP2350)
Toggle main menu visibility
Loading...
Searching...
No Matches
cyw43_stats.h
Go to the documentation of this file.
1
/*
2
* This file is part of the cyw43-driver
3
*
4
* Copyright (C) 2019-2022 George Robotics Pty Ltd
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright notice,
10
* this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
* 3. Any redistribution, use, or modification in source or binary form is done
15
* solely for personal benefit and not for any commercial purpose or for
16
* monetary gain.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE LICENSOR AND COPYRIGHT OWNER "AS IS" AND ANY
19
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
* DISCLAIMED. IN NO EVENT SHALL THE LICENSOR OR COPYRIGHT OWNER BE LIABLE FOR
22
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
*
29
* This software is also available for use with certain devices under different
30
* terms, as set out in the top level LICENSE file. For commercial licensing
31
* options please email contact@georgerobotics.com.au.
32
*/
33
38
39
#ifndef CYW43_STATS_H
40
#define CYW43_STATS_H
41
42
#include <stdint.h>
43
44
#if CYW43_USE_STATS
45
46
typedef
enum
cyw43_stat_t_ {
47
CYW43_STAT_F1_RESYNC,
48
CYW43_STAT_BUS_ERROR,
49
CYW43_STAT_SDIO_INT_CLEAR,
50
CYW43_STAT_SPI_INT_CLEAR,
51
CYW43_STAT_SPI_PACKET_AVAILABLE,
52
CYW43_STAT_SLEEP_COUNT,
53
CYW43_STAT_WAKE_COUNT,
54
CYW43_STAT_LWIP_RUN_COUNT,
55
CYW43_STAT_CYW43_RUN_COUNT,
56
CYW43_STAT_PENDSV_RUN_COUNT,
57
CYW43_STAT_PENDSV_DISABLED_COUNT,
58
CYW43_STAT_IRQ_COUNT,
59
CYW43_STAT_PACKET_IN_COUNT,
60
CYW43_STAT_PACKET_OUT_COUNT,
61
CYW43_STAT_LONGEST_IOCTL_TIME,
62
CYW43_STAT_LAST
// Add new ones before this
63
} cyw43_stat_t;
64
65
extern
uint32_t cyw43_stats[CYW43_STAT_LAST];
66
#define CYW43_STAT_INC(A) cyw43_stats[CYW43_STAT_##A]++
67
#define CYW43_STAT_GET(A) cyw43_stats[CYW43_STAT_##A]
68
#define CYW43_STAT_SET(A, B) cyw43_stats[CYW43_STAT_##A] = B
69
#define CYW43_STAT_CLR(A) cyw43_stats[CYW43_STAT_##A] = 0
70
71
#else
72
73
#define CYW43_STAT_INC(A)
74
#define CYW43_STAT_GET(A)
75
#define CYW43_STAT_SET(A, B)
76
#define CYW43_STAT_CLR(A)
77
78
#endif
79
80
void
cyw43_dump_stats(
void
);
81
82
#endif
// CYW43_STATS_H