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

xgs.h (2345B)


      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:        xgs.h
      8  * Purpose:     Public XGS board driver delarations
      9  */
     10 
     11 #ifndef   _XGS_H_
     12 #define   _XGS_H_
     13 
     14 /* High level XGS board support */
     15 
     16 #include <board/board.h>
     17 
     18 extern char *board_xgs_description(board_driver_t *driver);
     19 extern int board_xgs_probe(board_driver_t *driver, int num,
     20                                   bcm_info_t *info);
     21 extern int board_xgs_start(board_driver_t *driver, uint32 flags);
     22 extern int board_xgs_stop(board_driver_t *driver);
     23 extern int board_xgs_modid_get(board_driver_t *driver,
     24                                       char *name, int *modid);
     25 extern int board_xgs_modid_set(board_driver_t *driver,
     26                                       char *name, int modid);
     27 extern int board_xgs_num_modid_get(board_driver_t *driver,
     28                                           char *name, int *num_modid);
     29 
     30 #define BOARD_DRIVER_ANY_DEVICE 0xffffffff
     31 
     32 #define BOARD_DRIVER_PRIVATE_DATA(driver) \
     33   ((void *)& _ ## driver ## _private_data)
     34 
     35 #define BOARD_DRIVER_STRUCTURE(driver) driver ## _board
     36 
     37 /* Cached device data */
     38 typedef struct board_xgs_device_data_s {
     39     bcm_info_t info;
     40     int modid;
     41     int num_modid;
     42     int modid_mask;
     43 } board_xgs_device_data_t;
     44 
     45 typedef struct board_xgs_data_s {
     46     /* declaration
     47        populated at compile time
     48        do not reorder */
     49     int num_device; /* num_unit? */
     50     int num_supported_device;
     51     uint32 *supported_device;
     52     int num_led_program;
     53     uint8 *led_program;
     54     int led_port_offset; /* this is LED program dependent */
     55     int num_internal_connection;
     56     board_connection_t *internal_connection;
     57 
     58     /* instantiation
     59        populated at run time
     60        no ordering requirements */
     61     char *description;
     62     board_xgs_device_data_t *device; /* size: num_devices */
     63     bcm_gport_t cpu;
     64 } board_xgs_data_t;
     65 
     66 #define ARRAY(a) COUNTOF(a), a
     67 
     68 #define BOARD_XGS_DRIVER(driver) \
     69 board_driver_t BOARD_DRIVER_STRUCTURE(driver) = { \
     70   #driver, \
     71   BOARD_DEFAULT_PRIORITY, \
     72   BOARD_DRIVER_PRIVATE_DATA(driver),\
     73   0,\
     74   NULL,\
     75   0,\
     76   NULL,\
     77   board_xgs_description,\
     78   board_xgs_probe,\
     79   board_xgs_start,\
     80   board_xgs_stop \
     81 }
     82 
     83 
     84 #endif /* _XGS_H_ */