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

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_ */