1 /* 2 * FreeRTOS+TCP <DEVELOPMENT BRANCH> 3 * Copyright (C) 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 * 5 * SPDX-License-Identifier: MIT 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy of 8 * this software and associated documentation files (the "Software"), to deal in 9 * the Software without restriction, including without limitation the rights to 10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 11 * the Software, and to permit persons to whom the Software is furnished to do so, 12 * subject to the following conditions: 13 * 14 * The above copyright notice and this permission notice shall be included in all 15 * copies or substantial portions of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 * 24 * http://aws.amazon.com/freertos 25 * http://www.FreeRTOS.org 26 */ 27 28 #ifndef TCP_MEM_STATS_H 29 30 #define TCP_MEM_STATS_H 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 typedef enum xTCP_MEMORY 37 { 38 tcpSOCKET_TCP, 39 tcpSOCKET_UDP, 40 tcpSOCKET_SET, 41 tcpSEMAPHORE, 42 tcpRX_STREAM_BUFFER, 43 tcpTX_STREAM_BUFFER, 44 tcpNETWORK_BUFFER, 45 } TCP_MEMORY_t; 46 47 #if ( ipconfigUSE_TCP_MEM_STATS != 0 ) 48 49 void vTCPMemStatCreate( TCP_MEMORY_t xMemType, 50 void * pxObject, 51 size_t uxSize ); 52 53 void vTCPMemStatDelete( void * pxObject ); 54 55 void vTCPMemStatClose( void ); 56 57 #define iptraceMEM_STATS_CREATE( xMemType, pxObject, uxSize ) \ 58 vTCPMemStatCreate( xMemType, pxObject, uxSize ) 59 60 #define iptraceMEM_STATS_DELETE( pxObject ) \ 61 vTCPMemStatDelete( pxObject ) 62 63 #define iptraceMEM_STATS_CLOSE() \ 64 vTCPMemStatClose() 65 #else /* if ( ipconfigUSE_TCP_MEM_STATS != 0 ) */ 66 67 /* The header file 'IPTraceMacroDefaults.h' will define the default empty macro's. */ 68 69 #endif /* ipconfigUSE_TCP_MEM_STATS != 0 */ 70 71 #ifdef __cplusplus 72 } /* extern "C" */ 73 #endif 74 75 #endif /* TCP_MEM_STATS_H */ 76