/* List of CLI commands, built by constructors */
struct vlib_cli_command_t *next_cli_command;
+ /* Hit counter */
+ u32 hit_counter;
} vlib_cli_command_t;
typedef void (vlib_cli_output_function_t) (uword arg,
u8 * buffer, uword buffer_bytes);
-typedef struct
+typedef struct vlib_cli_main_t
{
/* Vector of all known commands. */
vlib_cli_command_t *commands;
/* Hash table mapping normalized path to index into all_commands. */
uword *command_index_by_path;
- /* Vector of all known parse rules. */
- vlib_cli_parse_rule_t *parse_rules;
+ /* registration list added by constructors */
+ vlib_cli_command_t *cli_command_registrations;
- /* Hash table mapping parse rule name to index into parse_rule vector. */
- uword *parse_rule_index_by_name;
+ /* index vector, to sort commands, etc. */
+ u32 *sort_vector;
- /* Data parsed for rules. */
- void **parse_rule_data;
- /* registration list added by constructors */
- vlib_cli_command_t *cli_command_registrations;
+ /* performance counter callback */
+ void (**perf_counter_cbs)
+ (struct vlib_cli_main_t *, u32 id, int before_or_after);
+ void (**perf_counter_cbs_tmp)
+ (struct vlib_cli_main_t *, u32 id, int before_or_after);
} vlib_cli_main_t;
#ifndef CLIB_MARCH_VARIANT
void vlib_cli_output (struct vlib_main_t *vm, char *fmt, ...);
/* Process CLI input. */
-void vlib_cli_input (struct vlib_main_t *vm,
- unformat_input_t * input,
- vlib_cli_output_function_t * function,
- uword function_arg);
+int vlib_cli_input (struct vlib_main_t *vm,
+ unformat_input_t * input,
+ vlib_cli_output_function_t * function,
+ uword function_arg);
clib_error_t *vlib_cli_register (struct vlib_main_t *vm,
vlib_cli_command_t * c);