nl_handle_destroy(state->nl_handle);
}
-__COMMAND(NULL, NULL, NULL, 0, 0, CIB_NONE, NULL);
-__COMMAND(NULL, NULL, NULL, 1, 0, CIB_NONE, NULL);
+__COMMAND(NULL, NULL, NULL, 0, 0, 0, CIB_NONE, NULL);
+__COMMAND(NULL, NULL, NULL, 1, 0, 0, CIB_NONE, NULL);
static int cmd_size;
fprintf(stderr, "Commands:\n");
for (cmd = &__start___cmd; cmd < &__stop___cmd;
cmd = (struct cmd *)((char *)cmd + cmd_size)) {
- if (!cmd->handler)
+ if (!cmd->handler || cmd->hidden)
continue;
switch (cmd->idby) {
case CIB_NONE:
int err;
const char *argv0;
- cmd_size = abs((long)&__cmd_NULL1CIB_NONE - (long)&__cmd_NULL0CIB_NONE);
+ cmd_size = abs((long)&__cmd_NULL_1_CIB_NONE_0
+ - (long)&__cmd_NULL_0_CIB_NONE_0);
/* strip off self */
argc--;
argv0 = *argv++;
const char *args;
const enum nl80211_commands cmd;
int nl_msg_flags;
+ int hidden;
const enum command_identify_by idby;
/*
* The handler should return a negative error code,
int argc, char **argv);
};
-#define __COMMAND(sect, name, args, nlcmd, flags, idby, handler) \
- static const struct cmd __cmd_ ## handler ## nlcmd ## idby \
+#define __COMMAND(sect, name, args, nlcmd, flags, hidden, idby, handler)\
+ static const struct cmd \
+ __cmd_ ## handler ## _ ## nlcmd ## _ ## idby ## _ ## hidden \
__attribute__((used)) __attribute__((section("__cmd"))) \
- = { sect, name, args, nlcmd, flags, idby, handler }
+ = { sect, name, args, nlcmd, flags, hidden, idby, handler }
#define COMMAND(section, name, args, cmd, flags, idby, handler) \
- __COMMAND(#section, #name, args, cmd, flags, idby, handler)
+ __COMMAND(#section, #name, args, cmd, flags, 0, idby, handler)
+#define HIDDEN(section, name, args, cmd, flags, idby, handler) \
+ __COMMAND(#section, #name, args, cmd, flags, 1, idby, handler)
#define TOPLEVEL(name, args, cmd, flags, idby, handler) \
- __COMMAND(NULL, #name, args, cmd, flags, idby, handler)
+ __COMMAND(NULL, #name, args, cmd, flags, 0, idby, handler)
extern struct cmd __start___cmd;
extern struct cmd __stop___cmd;