#ifndef _IPXE_COMMAND_H #define _IPXE_COMMAND_H FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); FILE_SECBOOT ( PERMITTED ); #include /** A command-line command */ struct command { /** Name of the command */ const char *name; /** * Function implementing the command * * @v argc Argument count * @v argv Argument list * @ret rc Return status code */ int ( * exec ) ( int argc, char **argv ); }; #define COMMANDS __table ( struct command, "commands" ) #define __command( name ) __table_entry ( COMMANDS, _C2 ( 01., name ) ) #define COMMAND( name, exec ) \ struct command name ## _command __command ( name ) = { \ #name, exec \ } extern char * concat_args ( char **args ); #endif /* _IPXE_COMMAND_H */