hash.h (1889B)
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 * This file contains Hash module definitions internal to the BCM library. 8 */ 9 10 11 #ifndef _BCM_INT_HASH_H 12 #define _BCM_INT_HASH_H 13 14 #include <bcm/types.h> 15 #include <soc/drv.h> 16 #include <bcm/hash.h> 17 18 /* Hash flex bin operation bookkeeping structure */ 19 typedef struct { 20 int initialized; 21 SHR_BITDCL *entry_bmp; /* TCAM entry usage bit map */ 22 uint16 *bin_obj_arr; /* software bin object id for each bin */ 23 } bcmi_hash_flex_bin_info_t; 24 25 extern bcmi_hash_flex_bin_info_t bcmi_hash_flex_bin_info[BCM_MAX_NUM_UNITS]; 26 27 extern int _bcm_esw_hash_sync(int unit); 28 extern int bcmi_td3_hash_flex_bin_sync(int unit); 29 extern int bcmi_td3_hash_flex_field_name_get (int unit, uint32 field_id, 30 bcm_hash_flex_object_t *object, int *size, char *field_name); 31 extern int bcmi_td3_hash_flex_field_id_get (int unit, 32 bcm_hash_flex_object_t object, const char *field_name, 33 uint32 *field_id); 34 extern int bcmi_td3_hash_flex_bin_traverse(int unit, uint32 option, 35 bcm_hash_flex_bin_traverse_cb cb, void *user_data); 36 extern int bcmi_td3_hash_flex_bin_get (int unit, 37 bcm_hash_flex_bin_config_t *cfg, int num_bins, 38 bcm_hash_flex_bin_cmd_t *bin_cmd, int num_fields, 39 bcm_hash_flex_field_t *flex_field); 40 extern int bcmi_td3_hash_flex_bin_delete_all( int unit); 41 extern int bcmi_td3_hash_flex_bin_delete( int unit, int entry_id); 42 extern int bcmi_td3_hash_flex_bin_add (int unit, 43 bcm_hash_flex_bin_config_t *cfg, int num_bins, 44 bcm_hash_flex_bin_cmd_t *bin_cmd, int num_fields, 45 bcm_hash_flex_field_t *flex_field); 46 extern int bcmi_td3_hash_flex_bin_init (int unit); 47 48 #endif /* !_BCM_INT_HASH_H */