aarch64: optimize core state detection
[fw/openocd] / src / helper / command.h
index 762356355c39074298838295f194ccb2f527e3d4..bd24156e31af1d27d9ff7af8329d7be11b7bc89d 100644 (file)
  *   GNU General Public License for more details.                          *
  *                                                                         *
  *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
-#ifndef COMMAND_H
-#define COMMAND_H
+#ifndef OPENOCD_HELPER_COMMAND_H
+#define OPENOCD_HELPER_COMMAND_H
 
 #include <jim-nvp.h>
 
@@ -162,13 +160,13 @@ struct command_invocation {
 typedef __COMMAND_HANDLER((*command_handler_t));
 
 struct command {
-       const char *name;
-       const char *help;
-       const char *usage;
+       char *name;
+       char *help;
+       char *usage;
        struct command *parent;
        struct command *children;
        command_handler_t handler;
-       Jim_CmdProc jim_handler;
+       Jim_CmdProc *jim_handler;
        void *jim_handler_data;
        enum command_mode mode;
        struct command *next;
@@ -204,7 +202,7 @@ char *command_name(struct command *c, char delim);
 struct command_registration {
        const char *name;
        command_handler_t handler;
-       Jim_CmdProc jim_handler;
+       Jim_CmdProc *jim_handler;
        void *jim_handler_data;
        enum command_mode mode;
        const char *help;
@@ -353,15 +351,19 @@ int parse_llong(const char *str, long long *ul);
                int parse ## name(const char *str, type * ul)
 
 DECLARE_PARSE_WRAPPER(_uint, unsigned);
+DECLARE_PARSE_WRAPPER(_u64, uint64_t);
 DECLARE_PARSE_WRAPPER(_u32, uint32_t);
 DECLARE_PARSE_WRAPPER(_u16, uint16_t);
 DECLARE_PARSE_WRAPPER(_u8, uint8_t);
 
 DECLARE_PARSE_WRAPPER(_int, int);
+DECLARE_PARSE_WRAPPER(_s64, int64_t);
 DECLARE_PARSE_WRAPPER(_s32, int32_t);
 DECLARE_PARSE_WRAPPER(_s16, int16_t);
 DECLARE_PARSE_WRAPPER(_s8, int8_t);
 
+DECLARE_PARSE_WRAPPER(_target_addr, target_addr_t);
+
 /**
  * @brief parses the string @a in into @a out as a @a type, or prints
  * a command error and passes the error code to the caller.  If an error
@@ -383,6 +385,9 @@ DECLARE_PARSE_WRAPPER(_s8, int8_t);
                } \
        } while (0)
 
+#define COMMAND_PARSE_ADDRESS(in, out) \
+       COMMAND_PARSE_NUMBER(target_addr, in, out)
+
 /**
  * Parse the string @c as a binary parameter, storing the boolean value
  * in @c out.  The strings @c on and @c off are used to match different
@@ -416,4 +421,4 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label);
 void script_debug(Jim_Interp *interp, const char *cmd,
                  unsigned argc, Jim_Obj * const *argv);
 
-#endif /* COMMAND_H */
+#endif /* OPENOCD_HELPER_COMMAND_H */