Change in libosmocore[master]: vty: add program specific attributes to VTY commands

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Sep 20 09:57:44 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19667 )

Change subject: vty: add program specific attributes to VTY commands
......................................................................

vty: add program specific attributes to VTY commands

Change-Id: I2c6c7b317b2b28ce70784c0cabd1b913e721be02
Related: SYS#4937
---
M TODO-RELEASE
M include/osmocom/vty/command.h
M include/osmocom/vty/vty.h
3 files changed, 34 insertions(+), 1 deletion(-)

Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/TODO-RELEASE b/TODO-RELEASE
index 3c2a15b..7699aff 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -8,3 +8,5 @@
 # If any interfaces have been removed or changed since the last public release: c:r:0.
 #library	what			description / commit summary line
 libosmogsm	new API			gsm0808_create_sapi_reject_cause() with cause argument
+libosmovty	ABI change		struct cmd_element: add a field for program specific attributes
+libosmovty	ABI change		struct vty_app_info: optional program specific attributes description
diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h
index da8d202..47d2e5f 100644
--- a/include/osmocom/vty/command.h
+++ b/include/osmocom/vty/command.h
@@ -149,7 +149,8 @@
 	unsigned int cmdsize;	/*!< Command index count. */
 	char *config;		/*!< Configuration string */
 	vector subconfig;	/*!< Sub configuration string */
-	unsigned char attr;	/*!< Command attributes */
+	unsigned char attr;	/*!< Command attributes (global) */
+	unsigned int usrattr;	/*!< Command attributes (program specific) */
 };
 
 /*! Command description structure. */
@@ -200,6 +201,16 @@
     .daemon = dnum, \
   };
 
+#define DEFUN_CMD_ELEMENT_ATTR_USRATTR(funcname, cmdname, cmdstr, helpstr, attrs, usrattrs) \
+  static struct cmd_element cmdname = \
+  { \
+    .string = cmdstr, \
+    .func = funcname, \
+    .doc = helpstr, \
+    .attr = attrs, \
+    .usrattr = usrattrs, \
+  };
+
 #define DEFUN_CMD_FUNC_DECL(funcname) \
   static int funcname (struct cmd_element *, struct vty *, int, const char *[]); \
 
@@ -240,6 +251,22 @@
 #define DEFUN_DEPRECATED(funcname, cmdname, cmdstr, helpstr) \
   DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED)
 
+/*! Macro for defining a VTY node and function with global & program specific attributes.
+ *  \param[in] funcname Name of the function implementing the node.
+ *  \param[in] cmdname Name of the command node.
+ *  \param[in] attr Global attributes (see CMD_ATTR_*).
+ *  \param[in] usrattr Program specific attributes.
+ *  \param[in] cmdstr String with syntax of node.
+ *  \param[in] helpstr String with help message of node.
+ */
+#define DEFUN_ATTR_USRATTR(funcname, cmdname, attr, usrattr, cmdstr, helpstr) \
+  DEFUN_CMD_FUNC_DECL(funcname) \
+  DEFUN_CMD_ELEMENT_ATTR_USRATTR(funcname, cmdname, cmdstr, helpstr, attr, usrattr) \
+  DEFUN_CMD_FUNC_TEXT(funcname)
+
+#define DEFUN_USRATTR(funcname, cmdname, usrattr, cmdstr, helpstr) \
+  DEFUN_ATTR_USRATTR(funcname, cmdname, 0, usrattr, cmdstr, helpstr)
+
 /* DEFUN_NOSH for commands that vtysh should ignore */
 #define DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr) \
   DEFUN(funcname, cmdname, cmdstr, helpstr)
diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h
index b63dc3b..fcef08e 100644
--- a/include/osmocom/vty/vty.h
+++ b/include/osmocom/vty/vty.h
@@ -192,6 +192,10 @@
 				" no longer called, ever, and can be left NULL.");
 	/*! Check if the config is consistent before write */
 	int (*config_is_consistent)(struct vty *vty);
+	/*! Description of the application specific VTY attributes (optional). */
+	const char * usr_attr_desc[32];
+	/*! Flag letters of the application specific VTY attributes (optional). */
+	char usr_attr_letters[32];
 };
 
 /* Prototypes. */

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19667
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I2c6c7b317b2b28ce70784c0cabd1b913e721be02
Gerrit-Change-Number: 19667
Gerrit-PatchSet: 10
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200920/e8a805c9/attachment.htm>


More information about the gerrit-log mailing list