• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  *    this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice,
11  *    this list of conditions and the following disclaimer in the documentation
12  *    and/or other materials provided with the distribution.
13  * 3. The name of the author may not be used to endorse or promote products
14  *    derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
19  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
25  * OF SUCH DAMAGE.
26  *
27  * This file is part of the lwIP TCP/IP stack.
28  *
29  */
30 
31 #ifndef __LWIP_PERF_H__
32 #define __LWIP_PERF_H__
33 
34 #include "lwip/arch.h"
35 #include "lwip/opt.h"
36 #include "lwip/def.h"
37 
38 #if defined (__cplusplus) && __cplusplus
39 extern "C" {
40 #endif
41 
42 /* PERF_START and PERF_STOP are called in code so its kept as empty here always */
43 #define PERF_START    /* null definition */
44 #define PERF_STOP(x)  /* null definition */
45 
46 #if LWIP_PERF
47 
48 void
49 perf_print(u32_t start_ms, u32_t end_ms, char *key);
50 
51 #define LWIP_PERF_DECLARATION u32_t start_ms, end_ms
52 #define LWIP_PERF_START  start_ms = sys_now()
53 #define LWIP_PERF_STOP(x) do { \
54   end_ms = sys_now(); \
55   perf_print(start_ms, end_ms, x); \
56 } while (0)
57 
58 void
59 perf_init(void *data);
60 
61 void
62 perf_fini(void *data);
63 
64 #endif /* LWIP_PERF */
65 
66 #if defined (__cplusplus) && __cplusplus
67 }
68 #endif
69 
70 #endif /* __LWIP_PERF_H__ */
71 
72