summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/command.h6
-rw-r--r--lib/command_graph.h2
-rw-r--r--lib/xref.h2
3 files changed, 9 insertions, 1 deletions
diff --git a/lib/command.h b/lib/command.h
index b002e79f09..6acaa450c2 100644
--- a/lib/command.h
+++ b/lib/command.h
@@ -239,7 +239,11 @@ struct cmd_node {
.attr = attrs, \
.daemon = dnum, \
.name = #cmdname, \
- };
+ .xref = XREF_INIT(XREFT_DEFUN, NULL, #funcname), \
+ }; \
+ XREF_LINK(cmdname.xref); \
+ /* end */
+
#define DEFUN_CMD_FUNC_DECL(funcname) \
static int funcname(const struct cmd_element *, struct vty *, int, \
diff --git a/lib/command_graph.h b/lib/command_graph.h
index 179e104a57..09824460e6 100644
--- a/lib/command_graph.h
+++ b/lib/command_graph.h
@@ -31,6 +31,7 @@
#include "memory.h"
#include "vector.h"
#include "graph.h"
+#include "xref.h"
#ifdef __cplusplus
extern "C" {
@@ -105,6 +106,7 @@ struct cmd_element {
struct cmd_token *[]);
const char *name; /* symbol name for debugging */
+ struct xref xref;
};
/* text for <cr> command */
diff --git a/lib/xref.h b/lib/xref.h
index 9b5bcffc01..29c68820fd 100644
--- a/lib/xref.h
+++ b/lib/xref.h
@@ -29,6 +29,8 @@ enum xref_type {
XREFT_THREADSCHED = 0x100,
XREFT_LOGMSG = 0x200,
+
+ XREFT_DEFUN = 0x300,
};
/* struct xref is the "const" part; struct xrefdata is the writable part. */