Eliminate the potential for mismatches between table names and the table entry data type by incorporating the data type into the definition of the table, rather than specifying it explicitly in each table accessor method.
25 lines
491 B
C
25 lines
491 B
C
#ifndef _GPXE_COMMAND_H
|
|
#define _GPXE_COMMAND_H
|
|
|
|
#include <gpxe/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 __table_entry ( COMMANDS, 01 )
|
|
|
|
#endif /* _GPXE_COMMAND_H */
|