merlin16_usr_includes.h (5037B)
1 /************************************************************************************** 2 * File Name : merlin16_usr_includes.h * 3 * Created On : 05/07/2014 * 4 * Created By : Kiran Divakar * 5 * Description : Header file which includes all required std libraries and macros * 6 * Revision : * 7 * * 8 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 9 * 10 * Copyright 2007-2019 Broadcom Inc. All rights reserved. * 11 * No portions of this material may be reproduced in any form without * 12 * the written permission of: * 13 * Broadcom Corporation * 14 * 5300 California Avenue * 15 * Irvine, CA 92617 * 16 * * 17 * All information contained in this document is Broadcom Corporation * 18 * company private proprietary, and trade secret. * 19 */ 20 21 /** @file merlin16_usr_includes.h 22 * Header file which includes all required std libraries and macros 23 */ 24 25 /* The user is expected to replace the macro definitions with their required implementation */ 26 27 #ifndef MERLIN16_API_USR_INCLUDES_H 28 #define MERLIN16_API_USR_INCLUDES_H 29 30 /* Standard libraries that can be replaced by your custom libraries */ 31 #ifdef _MSC_VER 32 /* Enclose all standard headers in a pragma to remove warings for MS compiler */ 33 #pragma warning( push, 0 ) 34 #endif 35 #ifdef NON_SDK 36 #include <stdint.h> 37 #include <string.h> 38 #include <stdio.h> 39 #endif 40 41 #ifdef _MSC_VER 42 #pragma warning( pop ) 43 #endif 44 45 /* Redefine macros according your compiler requirements */ 46 #ifdef NON_SDK 47 # define USR_PRINTF(paren_arg_list) ((void)usr_logger_write paren_arg_list) 48 #define USR_VPRINTF(paren_arg_list) ((void)usr_logger_verbose_write paren_arg_list) 49 #define USR_CSVPRINTF(paren_arg_list) ((void)usr_logger_csv_write paren_arg_list) 50 51 #define USR_MEMSET(mem, val, num) memset(mem, val, num) 52 #define USR_STRLEN(string) strlen(string) 53 #define USR_STRNCAT(str1, str2, num) strncat(str1, str2, num) 54 #define USR_STRCPY(str1, str2) strcpy(str1, str2) 55 #define USR_STRCMP(str1, str2) strcmp(str1, str2) 56 #define USR_STRNCMP(str1, str2, num) strncmp(str1, str2, num) 57 #define USR_SPRINTF(paren_arg_list) ((void)sprintf paren_arg_list) 58 #define USR_UINTPTR uintptr_t 59 60 #ifdef SERDES_API_FLOATING_POINT 61 #define USR_DOUBLE double 62 #else 63 #define USR_DOUBLE int 64 #define double undefined 65 #define float undefined 66 #endif 67 68 /* Implementation specific macros below */ 69 #ifdef SRDS_API_ALL_FUNCTIONS_HAVE_ACCESS_STRUCT 70 # ifndef NO_VARIADIC_MACROS 71 #define usr_logger_write(...) logger_write(sa__, -1,__VA_ARGS__) 72 # endif 73 #define USR_DELAY_MS(stuff) merlin16_delay_ms(sa__,stuff) 74 #define USR_DELAY_US(stuff) merlin16_delay_us(sa__,stuff) 75 #define USR_DELAY_NS(stuff) merlin16_delay_ns(sa__,stuff) 76 #else 77 # ifndef NO_VARIADIC_MACROS 78 #define usr_logger_write(...) logger_write(0,__VA_ARGS__) 79 #define usr_logger_verbose_write(...) logger_write(1,__VA_ARGS__) 80 #define usr_logger_csv_write(...) csv_write(__VA_ARGS__) 81 # endif 82 #define USR_DELAY_MS(stuff) merlin16_delay_ms(stuff) 83 #define USR_DELAY_US(stuff) merlin16_delay_us(stuff) 84 #define USR_DELAY_NS(stuff) merlin16_delay_ns(stuff) 85 #endif 86 87 #else 88 #define USR_PRINTF(stuff) PHYMOD_DEBUG_ERROR(stuff) 89 #define USR_MEMSET(mem, val, num) PHYMOD_MEMSET(mem, val, num) 90 #define USR_STRLEN(string) PHYMOD_STRLEN(string) 91 #define USR_STRCAT(str1, str2) PHYMOD_STRCAT(str1, str2) 92 #define USR_STRNCAT(str1, str2, num) PHYMOD_STRNCAT(str1, str2, num) 93 #define USR_STRCPY(str1, str2) PHYMOD_STRCPY(str1, str2) 94 #define USR_STRCMP(str1, str2) PHYMOD_STRCMP(str1, str2) 95 #define USR_STRNCMP(str1, str2, num) PHYMOD_STRNCMP(str1, str2, num) 96 #define USR_SPRINTF PHYMOD_SPRINTF 97 98 #define USR_DELAY_MS(stuff) merlin16_delay_ms(stuff) 99 #define USR_DELAY_US(stuff) merlin16_delay_us(stuff) 100 #define USR_DELAY_NS(stuff) merlin16_delay_ns(stuff) 101 102 typedef unsigned long int uintptr_t; 103 #endif 104 105 #define USR_UINTPTR uintptr_t 106 #ifdef SERDES_API_FLOATING_POINT 107 #define USR_DOUBLE double 108 #else 109 #define USR_DOUBLE int 110 #define double undefined 111 #define float undefined 112 #endif 113 #ifndef UINT16_MAX 114 #define UINT16_MAX 0xFFFFU 115 #endif 116 #ifndef UINT32_MAX 117 #define UINT32_MAX 0xFFFFFFFFU 118 #endif 119 120 #endif