use COMMAND_HELPER for command helper functions
authorZachary T Welch <zw@superlucidity.net>
Tue, 10 Nov 2009 11:12:21 +0000 (03:12 -0800)
committerZachary T Welch <zw@superlucidity.net>
Fri, 13 Nov 2009 18:51:45 +0000 (10:51 -0800)
Define the numerous helpers that inherit command handler parameters
using the COMMAND_HELPER macro.

src/jtag/parport.c
src/server/server.c
src/server/server.h
src/target/arm11.c
src/target/etm.c
src/target/target.c

index cee7a16956c44d910f0220e1cc618db016835404..a18b3f6afc1f5419f760bcafeea1d29f8d4a1994 100644 (file)
@@ -462,9 +462,7 @@ COMMAND_HANDLER(parport_handle_write_on_exit_command)
        return ERROR_OK;
 }
 
-static int
-parport_handle_parport_toggling_time_command(struct command_context_s *cmd_ctx,
-               char *cmd, char **args, int argc)
+COMMAND_HANDLER(parport_handle_parport_toggling_time_command)
 {
        if (argc == 1) {
                uint32_t ns;
index c000b7c25e7fb3f45ff965e9dc8a60b65322938a..ada0a6024dfc5b23a2ef302fe028394a77f78b9c 100644 (file)
@@ -551,8 +551,7 @@ int server_register_commands(command_context_t *context)
 }
 
 
-int server_port_command(struct command_context_s *cmd_ctx,
-               char *cmd, char **args, int argc, unsigned short *out)
+SERVER_PORT_COMMAND()
 {
        switch (argc) {
        case 0:
index d4f1b6b5a5ce47627253aec0a78713a777acef16..abb501d4629cb1df59b4f41147d12db9b00f0d02 100644 (file)
@@ -81,8 +81,16 @@ int server_loop(command_context_t *command_context);
 
 int server_register_commands(command_context_t *context);
 
-int server_port_command(struct command_context_s *cmd_ctx,
-               char *cmd, char **args, int argc, unsigned short *port);
+/**
+ * Defines an extended command handler function declaration to enable
+ * access to (and manipulation of) the server port number.
+ * Call server_port like a normal COMMAND_HANDLER with an extra @a out parameter
+ * to receive the specified port number.
+ */
+#define SERVER_PORT_COMMAND() \
+               COMMAND_HELPER(server_port_command, unsigned short *out)
+
+SERVER_PORT_COMMAND();
 
 extern int server_use_pipes;
 
index 098b0afa31c539916317c68fafe4133e92cb75dd..949c947596712c0ba839856112ec567746d2b75a 100644 (file)
@@ -1991,8 +1991,7 @@ static int arm11_build_reg_cache(target_t *target)
        return ERROR_OK;
 }
 
-static int arm11_handle_bool(struct command_context_s *cmd_ctx,
-               char *cmd, char **args, int argc, bool * var, char * name)
+static COMMAND_HELPER(arm11_handle_bool, bool *var, char *name)
 {
        if (argc == 0)
        {
@@ -2143,7 +2142,7 @@ static int arm11_mcr(target_t *target, int cpnum,
        return arm11_mrc_inner(target, cpnum, op1, op2, CRn, CRm, &value, false);
 }
 
-static int arm11_handle_etm_read_write(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, bool read)
+static COMMAND_HELPER(arm11_handle_etm_read_write, bool read)
 {
        if (argc != (read ? 2 : 3))
        {
index 0fc924914ff79bb0a059cbf8fb2401c32238d363..df029042e5b5fd25d67f8e542301db61755bf6b4 100644 (file)
@@ -1176,9 +1176,8 @@ static int etmv1_analyze_trace(etm_context_t *ctx, struct command_context_s *cmd
        return ERROR_OK;
 }
 
-static int handle_etm_tracemode_command_update(
-               struct command_context_s *cmd_ctx,
-               char **args, etmv1_tracemode_t *mode)
+static COMMAND_HELPER(handle_etm_tracemode_command_update,
+               etmv1_tracemode_t *mode)
 {
        etmv1_tracemode_t tracemode;
 
@@ -1272,7 +1271,7 @@ COMMAND_HANDLER(handle_etm_tracemode_command)
        case 0:
                break;
        case 4:
-               handle_etm_tracemode_command_update(cmd_ctx, args, &tracemode);
+               handle_etm_tracemode_command_update(cmd_ctx, cmd, args, argc, &tracemode);
                break;
        default:
                command_print(cmd_ctx, "usage: configure trace mode "
index 401f4dfba81ac13ec824781fab76b4424312c4cb..26c20cf389c16f77a9338043561d26b62a2646d6 100644 (file)
@@ -2363,8 +2363,7 @@ COMMAND_HANDLER(handle_mw_command)
 
 }
 
-static int parse_load_image_command_args(struct command_context_s *cmd_ctx,
-               char **args, int argc, image_t *image,
+static COMMAND_HELPER(parse_load_image_command_args, image_t *image,
                uint32_t *min_address, uint32_t *max_address)
 {
        if (argc < 1 || argc > 5)
@@ -2411,7 +2410,7 @@ COMMAND_HANDLER(handle_load_image_command)
        int i;
        image_t image;
 
-       int retval = parse_load_image_command_args(cmd_ctx, args, argc,
+       int retval = parse_load_image_command_args(cmd_ctx, cmd, args, argc,
                        &image, &min_address, &max_address);
        if (ERROR_OK != retval)
                return retval;
@@ -2555,7 +2554,7 @@ COMMAND_HANDLER(handle_dump_image_command)
        return retval;
 }
 
-static int handle_verify_image_command_internal(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, int verify)
+static COMMAND_HELPER(handle_verify_image_command_internal, int verify)
 {
        uint8_t *buffer;
        uint32_t buf_cnt;
@@ -4548,7 +4547,7 @@ COMMAND_HANDLER(handle_fast_load_image_command)
 
        image_t image;
 
-       int retval = parse_load_image_command_args(cmd_ctx, args, argc,
+       int retval = parse_load_image_command_args(cmd_ctx, cmd, args, argc,
                        &image, &min_address, &max_address);
        if (ERROR_OK != retval)
                return retval;

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)