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

brd_ident.c (2609B)


      1 /* 
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  *
      7  * File:        brd_ident.c
      8  * Purpose:     Stack application board identifier functions
      9  */
     10 
     11 #include <sal/core/libc.h>
     12 #include <bcm/error.h>
     13 #include <appl/cpudb/brd_ident.h>
     14 
     15 typedef struct {
     16     char *name;
     17     CPUDB_BOARD_ID id;
     18 } CPUDB_BOARD_ID_MAP;
     19 
     20 static CPUDB_BOARD_ID_MAP board_id_map[] = {
     21     { "cfm_xgs1", cpudb_board_id_cfm_xgs1 },
     22     { "cfm_xgs2", cpudb_board_id_cfm_xgs2 },
     23     { "draco_b2b", cpudb_board_id_draco_b2b },
     24     { "galahad", cpudb_board_id_galahad },
     25     { "guenevere", cpudb_board_id_guenevere },
     26     { "lancelot", cpudb_board_id_lancelot },
     27     { "lm24g", cpudb_board_id_lm24g },
     28     { "lm2x", cpudb_board_id_lm2x },
     29     { "lm6x", cpudb_board_id_lm6x },
     30     { "lm_xgs1_6x", cpudb_board_id_lm_xgs1_6x },
     31     { "lm_xgs2_48g", cpudb_board_id_lm_xgs2_48g },
     32     { "lm_xgs2_6x", cpudb_board_id_lm_xgs2_6x },
     33     { "lm_xgs3_12x", cpudb_board_id_lm_xgs3_12x },
     34     { "lm_xgs3_48g", cpudb_board_id_lm_xgs3_48g },
     35     { "lynxalot", cpudb_board_id_lynxalot },
     36     { "magnum", cpudb_board_id_magnum },
     37     { "merlin", cpudb_board_id_merlin },
     38     { "sdk_xgs2_12g", cpudb_board_id_sdk_xgs2_12g },
     39     { "sdk_xgs3_12g", cpudb_board_id_sdk_xgs3_12g },
     40     { "sdk_xgs3_24g", cpudb_board_id_sdk_xgs3_24g },
     41     { "sl24f2g", cpudb_board_id_sl24f2g },
     42     { "tucana", cpudb_board_id_tucana },
     43     { "white_knight", cpudb_board_id_white_knight },
     44     { "cfm_xgs3", cpudb_board_id_cfm_xgs3 },
     45     { "lm_56800_12x", cpudb_board_id_lm_56800_12x },
     46     { "sdk_xgs3_48f", cpudb_board_id_sdk_xgs3_48f},
     47     { "sdk_xgs3_48g", cpudb_board_id_sdk_xgs3_48g},
     48     { "sdk_xgs3_20x", cpudb_board_id_sdk_xgs3_20x},
     49     { "sdk_xgs3_16h", cpudb_board_id_sdk_xgs3_16h},
     50     { "sdk_xgs3_48g5g", cpudb_board_id_sdk_xgs3_48g5g},
     51     { "sdk_xgs3_48g2", cpudb_board_id_sdk_xgs3_48g2}
     52 };
     53 
     54 int cpudb_board_id_get(const char *idstring, CPUDB_BOARD_ID *board_id)
     55 {
     56     int i;
     57 
     58     for ( i=0; i<COUNTOF(board_id_map); i++ ) {
     59         if (!sal_strcmp(idstring, board_id_map[i].name)) {
     60             *board_id = board_id_map[i].id;
     61             return BCM_E_NONE;
     62         }
     63     }
     64     return BCM_E_NOT_FOUND;
     65 }
     66 
     67 int cpudb_board_idstr_get(CPUDB_BOARD_ID board_id, char **board_idstr)
     68 {
     69     int i;
     70 
     71     for ( i=0; i<COUNTOF(board_id_map); i++ ) {
     72         if (board_id == board_id_map[i].id) {
     73             *board_idstr = board_id_map[i].name;
     74             return BCM_E_NONE;
     75         }
     76     }
     77     return BCM_E_NOT_FOUND;
     78 }
     79