1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __SUBCMD_HELP_H 2 #ifndef __SUBCMD_HELP_H 3 #define __SUBCMD_HELP_H 3 #define __SUBCMD_HELP_H 4 4 5 #include <sys/types.h> 5 #include <sys/types.h> 6 #include <stdio.h> 6 #include <stdio.h> 7 7 8 struct cmdnames { 8 struct cmdnames { 9 size_t alloc; 9 size_t alloc; 10 size_t cnt; 10 size_t cnt; 11 struct cmdname { 11 struct cmdname { 12 size_t len; /* also used for s 12 size_t len; /* also used for similarity index in help.c */ 13 char name[]; 13 char name[]; 14 } **names; 14 } **names; 15 }; 15 }; 16 16 17 static inline void mput_char(char c, unsigned 17 static inline void mput_char(char c, unsigned int num) 18 { 18 { 19 while(num--) 19 while(num--) 20 putchar(c); 20 putchar(c); 21 } 21 } 22 22 23 void load_command_list(const char *prefix, 23 void load_command_list(const char *prefix, 24 struct cmdnames *main_cmds, 24 struct cmdnames *main_cmds, 25 struct cmdnames *other_cmds); 25 struct cmdnames *other_cmds); 26 void add_cmdname(struct cmdnames *cmds, const 26 void add_cmdname(struct cmdnames *cmds, const char *name, size_t len); 27 void clean_cmdnames(struct cmdnames *cmds); 27 void clean_cmdnames(struct cmdnames *cmds); 28 int cmdname_compare(const void *a, const void 28 int cmdname_compare(const void *a, const void *b); 29 void uniq(struct cmdnames *cmds); 29 void uniq(struct cmdnames *cmds); 30 /* Here we require that excludes is a sorted l 30 /* Here we require that excludes is a sorted list. */ 31 void exclude_cmds(struct cmdnames *cmds, struc 31 void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes); 32 int is_in_cmdlist(struct cmdnames *c, const ch 32 int is_in_cmdlist(struct cmdnames *c, const char *s); 33 void list_commands(const char *title, struct c 33 void list_commands(const char *title, struct cmdnames *main_cmds, 34 struct cmdnames *other_cmds 34 struct cmdnames *other_cmds); 35 35 36 #endif /* __SUBCMD_HELP_H */ 36 #endif /* __SUBCMD_HELP_H */ 37 37
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.