|  | // SPDX-License-Identifier: GPL-2.0 | 
|  | /* | 
|  | * Copyright (c) 2000-2005 Silicon Graphics, Inc. | 
|  | * All Rights Reserved. | 
|  | */ | 
|  | #ifndef __COMMAND_H__ | 
|  | #define __COMMAND_H__ | 
|  |  | 
|  | #include <sys/time.h> | 
|  |  | 
|  | /* | 
|  | * A "oneshot" command ony runs once per command execution. It does | 
|  | * not iterate the command args function callout and so can be used | 
|  | * for functions like "help" that should only ever be run once. | 
|  | */ | 
|  | #define CMD_FLAG_ONESHOT	(1u << 31) | 
|  | #define CMD_FLAG_FOREIGN_OK	(1u << 30) /* command not restricted to XFS */ | 
|  | #define CMD_FLAG_LIBRARY	(1u << 29) /* command provided by libxcmd */ | 
|  |  | 
|  | typedef int (*cfunc_t)(int argc, char **argv); | 
|  | typedef void (*helpfunc_t)(void); | 
|  |  | 
|  | typedef struct cmdinfo { | 
|  | const char	*name; | 
|  | const char	*altname; | 
|  | cfunc_t		cfunc; | 
|  | int		argmin; | 
|  | int		argmax; | 
|  | int		canpush; | 
|  | int		flags; | 
|  | const char	*args; | 
|  | const char	*oneline; | 
|  | helpfunc_t      help; | 
|  | } cmdinfo_t; | 
|  |  | 
|  | extern cmdinfo_t	*cmdtab; | 
|  | extern int		ncmds; | 
|  |  | 
|  | extern void		help_init(void); | 
|  | extern void		quit_init(void); | 
|  |  | 
|  | typedef int (*iterfunc_t)(int index); | 
|  | typedef int (*checkfunc_t)(const cmdinfo_t *ci); | 
|  |  | 
|  | extern void		add_command(const cmdinfo_t *ci); | 
|  | extern void		add_user_command(char *optarg); | 
|  | extern void		add_oneshot_user_command(char *optarg); | 
|  | extern void		add_command_iterator(iterfunc_t func); | 
|  | extern void		add_check_command(checkfunc_t cf); | 
|  |  | 
|  | extern const cmdinfo_t	*find_command(const char *cmd); | 
|  |  | 
|  | extern void		command_loop(void); | 
|  | extern int		command_usage(const cmdinfo_t *ci); | 
|  | extern int		command(const cmdinfo_t *ci, int argc, char **argv); | 
|  |  | 
|  | extern void		report_io_times(const char *verb, struct timeval *t2, | 
|  | long long offset, long long count, | 
|  | long long total, int ops, int compact); | 
|  |  | 
|  | #endif	/* __COMMAND_H__ */ |