blob: cbd5fb665ddf8deb4656310782a3e7c39eb49211 [file]
#ifndef _IPXE_COMMAND_H
#define _IPXE_COMMAND_H
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
FILE_SECBOOT ( PERMITTED );
#include <ipxe/tables.h>
/** 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 */