22
22
#include <grub/lib/arg.h>
23
23
#include <grub/command.h>
24
#include <grub/script_sh.h>
25
26
struct grub_extcmd;
27
struct grub_extcmd_context;
27
typedef grub_err_t (*grub_extcmd_func_t) (struct grub_extcmd *cmd,
29
typedef grub_err_t (*grub_extcmd_func_t) (struct grub_extcmd_context *ctxt,
28
30
int argc, char **args);
30
32
/* The argcmd description. */
38
40
const struct grub_arg_option *options;
44
typedef struct grub_extcmd *grub_extcmd_t;
46
/* Command context for each instance of execution. */
47
struct grub_extcmd_context
49
struct grub_extcmd *extcmd;
42
51
struct grub_arg_list *state;
53
/* Script parameter, if any. */
54
struct grub_script *script;
44
typedef struct grub_extcmd *grub_extcmd_t;
46
grub_extcmd_t grub_register_extcmd (const char *name,
47
grub_extcmd_func_t func,
50
const char *description,
51
const struct grub_arg_option *parser);
53
void grub_unregister_extcmd (grub_extcmd_t cmd);
56
typedef struct grub_extcmd_context *grub_extcmd_context_t;
58
grub_extcmd_t EXPORT_FUNC(grub_register_extcmd) (const char *name,
59
grub_extcmd_func_t func,
60
grub_command_flags_t flags,
62
const char *description,
63
const struct grub_arg_option *parser);
65
grub_extcmd_t EXPORT_FUNC(grub_register_extcmd_prio) (const char *name,
66
grub_extcmd_func_t func,
67
grub_command_flags_t flags,
69
const char *description,
70
const struct grub_arg_option *parser,
73
void EXPORT_FUNC(grub_unregister_extcmd) (grub_extcmd_t cmd);
75
grub_err_t EXPORT_FUNC(grub_extcmd_dispatcher) (struct grub_command *cmd,
76
int argc, char **args,
77
struct grub_script *script);
55
79
#endif /* ! GRUB_EXTCMD_HEADER */