support.h (3079B)
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: board_int/support.h 8 * Purpose: board support internal library interfaces 9 */ 10 11 #ifndef _BOARD_INT_SUPPORT_H_ 12 #define _BOARD_INT_SUPPORT_H_ 13 14 #include <sal/core/alloc.h> 15 #include <bcm/types.h> 16 #include <bcm/init.h> 17 #include <bcm/trunk.h> 18 19 #include <board/board.h> 20 #include <board/support.h> 21 22 #include <bcm_int/common/trunk.h> 23 24 /* Board tree */ 25 26 typedef struct board_tree_driver_s { 27 int num_connection; 28 board_connection_t *connection; 29 void *user_data; 30 int (*info)(int unit, int *modid, bcm_trunk_chip_info_t *ti, 31 void *user_data); 32 int (*edge)(int unit, bcm_trunk_chip_info_t *ti, 33 bcm_trunk_add_info_t *ta, void *user_data); 34 int (*vertex)(int unit, int modid, bcm_gport_t port, void *user_data); 35 } board_tree_driver_t; 36 37 typedef int (*board_connection_sp_cb_t)(board_connection_t *conn, 38 void *user_data); 39 40 extern int board_tree_connect(board_tree_driver_t *tree_driver); 41 42 extern int board_connection_stack_ports(int max_num, 43 board_connection_t *connection, 44 int *actual); 45 extern int board_connection_add_internal_stack_ports(int count, 46 board_connection_t *connection); 47 48 extern int board_connection_connected_stack_port_traverse(int count, 49 board_connection_t *connection, 50 board_connection_sp_cb_t func, 51 void *user_data); 52 53 /* LED */ 54 extern int board_led_program_write(int unit, int len, uint8 *pgm); 55 extern int board_led_program_read(int unit, int maxlen, 56 uint8 *pgm, int *actual); 57 extern int board_led_data_write(int unit, int len, uint8 *data); 58 extern int board_led_data_read(int unit, int maxlen, uint8 *data, int *actual); 59 extern int board_led_enable_set(int unit, int value); 60 extern int board_led_enable_get(int unit, int *value); 61 extern int board_led_status_get(int unit, int ctl, int *value); 62 63 extern int board_led_init(int unit, int offset, int len, uint8 *pgm); 64 extern int board_led_deinit(int unit); 65 66 67 extern int board_device_reset(int unit); 68 extern int board_device_info(int unit, bcm_info_t *info); 69 extern int board_num_devices(void); 70 extern int board_device_modid_max(int unit); 71 72 extern int board_connections_alloc(board_driver_t *driver, 73 board_connection_t **connection, 74 int *actual); 75 76 extern int board_connection_gport_stackable(bcm_gport_t gport); 77 78 extern int board_probe_get(int max_num, bcm_info_t *info, int *actual); 79 80 81 /* Conveniences */ 82 #define ALLOC(size) sal_alloc(size, (char *)FUNCTION_NAME()) 83 #define FREE(ptr) sal_free(ptr) 84 85 86 #endif /* _BOARD_INT_SUPPORT_H_ */