int bcm_flexctr_action_create(int unit, int options, bcm_flexctr_action_t *action, uint32 *stat_counter_id);
int bcm_flexctr_action_destroy(int unit, uint32 stat_counter_id);
int bcm_flexctr_action_get(int unit, uint32 stat_counter_id, bcm_flexctr_action_t *action);
void bcm_flexctr_action_t_init(bcm_flexctr_action_t *action);
int bcm_flexctr_action_traverse(int unit, bcm_flexctr_action_traverse_cb trav_fn, void *user_data);
int bcm_flexctr_block_create(int unit, bcm_flexctr_block_t *block, uint32 *block_id);
int bcm_flexctr_block_destroy(int unit, uint32 block_id);
int bcm_flexctr_block_get(int unit, uint32 block_id, bcm_flexctr_block_t *block);
void bcm_flexctr_block_t_init(bcm_flexctr_block_t *block);
int bcm_flexctr_block_traverse(int unit, bcm_flexctr_block_traverse_cb trav_fn, void *user_data);
int bcm_flexctr_cleanup(int unit);
int bcm_flexctr_egr_drop_reason_val_get(int unit, bcm_flexctr_egr_drop_reason_t drop_reason, uint16 *drop_reason_value); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_global_stat_attach(int unit, uint32 stat_counter_id);
int bcm_flexctr_global_stat_detach(int unit, uint32 stat_counter_id);
int bcm_flexctr_global_stat_id_multi_get(int unit, int array_size, uint32 *stat_counter_id_array, int *count);
int bcm_flexctr_group_action_create(int unit, int options, bcm_flexctr_group_action_t *group_action, uint32 *group_stat_counter_id);
int bcm_flexctr_group_action_destroy(int unit, uint32 group_stat_counter_id);
int bcm_flexctr_group_action_get(int unit, uint32 group_stat_counter_id, bcm_flexctr_group_action_t *group_action);
void bcm_flexctr_group_action_t_init(bcm_flexctr_group_action_t *group_action);
int bcm_flexctr_group_action_traverse(int unit, bcm_flexctr_group_action_traverse_cb trav_fn, void *user_data);
int bcm_flexctr_init(int unit);
int bcm_flexctr_object_info_get(int unit, bcm_flexctr_object_t object, bcm_flexctr_object_info_t *info);
void bcm_flexctr_object_info_t_init(bcm_flexctr_object_info_t *obj_info);
int bcm_flexctr_object_overlay_multi_get(int unit, bcm_flexctr_object_t object, int array_size, bcm_flexctr_object_t *overlay_object_array, int *count);
int bcm_flexctr_packet_attribute_map_add(int unit, int profile_id, bcm_flexctr_packet_attribute_map_t *attr_map, uint32 offset_value);
int bcm_flexctr_packet_attribute_map_delete(int unit, int profile_id, bcm_flexctr_packet_attribute_map_t *attr_map);
int bcm_flexctr_packet_attribute_map_delete_all(int unit, int profile_id);
void bcm_flexctr_packet_attribute_map_entry_t_init(bcm_flexctr_packet_attribute_map_entry_t *attr_map_entry);
int bcm_flexctr_packet_attribute_map_get(int unit, int profile_id, bcm_flexctr_packet_attribute_map_t *attr_map, uint32 *offset_value);
void bcm_flexctr_packet_attribute_map_t_init(bcm_flexctr_packet_attribute_map_t *attr_map);
int bcm_flexctr_packet_attribute_map_traverse(int unit, int profile_id, bcm_flexctr_packet_attribute_map_traverse_cb trav_fn, void *user_data);
int bcm_flexctr_packet_attribute_profile_create(int unit, int options, bcm_flexctr_packet_attribute_profile_t *attr_profile, int *profile_id);
int bcm_flexctr_packet_attribute_profile_destroy(int unit, int profile_id);
int bcm_flexctr_packet_attribute_profile_get(int unit, int profile_id, bcm_flexctr_packet_attribute_profile_t *attr_profile);
void bcm_flexctr_packet_attribute_profile_t_init(bcm_flexctr_packet_attribute_profile_t *attr_profile);
int bcm_flexctr_packet_attribute_profile_traverse(int unit, bcm_flexctr_packet_attribute_profile_traverse_cb trav_fn, void *user_data);
void bcm_flexctr_packet_attribute_selector_t_init(bcm_flexctr_packet_attribute_selector_t *attr_selector);
int bcm_flexctr_pool_counter_id_multi_get(int unit, bcm_flexctr_pool_info_t *pool_info, int array_size, uint32 *counter_id_array, int *count);
void bcm_flexctr_pool_info_t_init(bcm_flexctr_pool_info_t *pool_info);
int bcm_flexctr_quantization_create(int unit, int options, bcm_flexctr_quantization_t *quantization, uint32 *quant_id);
int bcm_flexctr_quantization_destroy(int unit, uint32 quant_id);
int bcm_flexctr_quantization_get(int unit, uint32 quant_id, bcm_flexctr_quantization_t *quantization);
void bcm_flexctr_quantization_t_init(bcm_flexctr_quantization_t *quantization);
int bcm_flexctr_quantization_traverse(int unit, bcm_flexctr_quantization_traverse_cb trav_fn, void *user_data);
int bcm_flexctr_resource_count_get(int unit, bcm_flexctr_resource_type_t type, int *count);
int bcm_flexctr_resource_count_set(int unit, bcm_flexctr_resource_type_t type, int count);
int bcm_flexctr_second_pass_ingress_action_mask_get(int unit, int profile_id, uint32 stat_counter_id, int *mask); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_second_pass_ingress_action_mask_get_all(int unit, int profile_id, int array_size, uint32 *stat_counter_id_array, int *count); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_second_pass_ingress_action_mask_set(int unit, int profile_id, uint32 stat_counter_id, int mask); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_stat_bulk_direct_add(int unit, uint32 stat_counter_id); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_stat_bulk_direct_delete(int unit, uint32 stat_counter_id); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_stat_bulk_direct_get(int unit, uint32 stat_counter_id, bcm_flexctr_counter_value_t *ctr_val, uint32 *num_entries); /* not in OpenBCM 6.5.27 */
int bcm_flexctr_stat_get(int unit, uint32 stat_counter_id, uint32 num_entries, uint32 *counter_indexes, bcm_flexctr_counter_value_t *counter_values);
int bcm_flexctr_stat_set(int unit, uint32 stat_counter_id, uint32 num_entries, uint32 *counter_indexes, bcm_flexctr_counter_value_t *counter_values);
int bcm_flexctr_stat_sync_get(int unit, uint32 stat_counter_id, uint32 num_entries, uint32 *counter_indexes, bcm_flexctr_counter_value_t *counter_values);
int bcm_flexctr_trigger_enable_get(int unit, uint32 stat_counter_id, int *enable);
int bcm_flexctr_trigger_enable_set(int unit, uint32 stat_counter_id, int enable);