1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef __PERF_HELP_H 2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define __PERF_HELP_H 3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct cmdnames { 5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng size_t alloc; 6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng size_t cnt; 7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct cmdname { 8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng size_t len; /* also used for similarity index in help.c */ 9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng char name[FLEX_ARRAY]; 10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng } **names; 11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng}; 12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstatic inline void mput_char(char c, unsigned int num) 14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng{ 15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng while(num--) 16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng putchar(c); 17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng} 18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid load_command_list(const char *prefix, 20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct cmdnames *main_cmds, 21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct cmdnames *other_cmds); 22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid add_cmdname(struct cmdnames *cmds, const char *name, size_t len); 23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng/* Here we require that excludes is a sorted list. */ 24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes); 25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengint is_in_cmdlist(struct cmdnames *c, const char *s); 26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid list_commands(const char *title, struct cmdnames *main_cmds, 27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct cmdnames *other_cmds); 28e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 29e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif /* __PERF_HELP_H */ 30