blob: e145a020780c0d5dc03c39b60205bb7d782dfcf7 [file] [log] [blame]
Josh Poimboeuf1843b4e2015-12-15 09:39:40 -06001#ifndef __SUBCMD_HELP_H
2#define __SUBCMD_HELP_H
Ingo Molnar07800602009-04-20 15:00:56 +02003
Josh Poimboeuf2f4ce5e2015-12-15 09:39:38 -06004#include <sys/types.h>
5
Ingo Molnar07800602009-04-20 15:00:56 +02006struct cmdnames {
Ingo Molnarf37a2912009-07-01 12:37:06 +02007 size_t alloc;
8 size_t cnt;
Ingo Molnar07800602009-04-20 15:00:56 +02009 struct cmdname {
10 size_t len; /* also used for similarity index in help.c */
Josh Poimboeuf2f4ce5e2015-12-15 09:39:38 -060011 char name[];
Ingo Molnar07800602009-04-20 15:00:56 +020012 } **names;
13};
14
15static inline void mput_char(char c, unsigned int num)
16{
17 while(num--)
18 putchar(c);
19}
20
21void load_command_list(const char *prefix,
22 struct cmdnames *main_cmds,
23 struct cmdnames *other_cmds);
Ingo Molnarf37a2912009-07-01 12:37:06 +020024void add_cmdname(struct cmdnames *cmds, const char *name, size_t len);
Josh Poimboeuf5feaac22015-12-13 22:18:09 -060025void clean_cmdnames(struct cmdnames *cmds);
26int cmdname_compare(const void *a, const void *b);
27void uniq(struct cmdnames *cmds);
Ingo Molnar07800602009-04-20 15:00:56 +020028/* Here we require that excludes is a sorted list. */
29void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes);
30int is_in_cmdlist(struct cmdnames *c, const char *s);
31void list_commands(const char *title, struct cmdnames *main_cmds,
32 struct cmdnames *other_cmds);
33
Josh Poimboeuf1843b4e2015-12-15 09:39:40 -060034#endif /* __SUBCMD_HELP_H */