openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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