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