nand: add NAND_DEVICE_COMMAND_HANDLER macro
authorZachary T Welch <zw@superlucidity.net>
Tue, 10 Nov 2009 08:53:40 +0000 (00:53 -0800)
committerZachary T Welch <zw@superlucidity.net>
Fri, 13 Nov 2009 18:51:46 +0000 (10:51 -0800)
Abstracts the extended NAND command handling to allow the function
signature to be controlled by __COMMAND_HANDLER.

src/flash/davinci_nand.c
src/flash/lpc3180_nand_controller.c
src/flash/mx3_nand.c
src/flash/nand.h
src/flash/orion_nand.c
src/flash/s3c2410_nand.c
src/flash/s3c2412_nand.c
src/flash/s3c2440_nand.c
src/flash/s3c2443_nand.c

index 6ecc60a25dfc8a87f4a94a489ab0c2e7baa3bf83..b3164abfc7947e27b769bbf2bea0967e991d5009 100644 (file)
@@ -629,9 +629,7 @@ static int davinci_read_page_ecc4infix(struct nand_device_s *nand, uint32_t page
        return ERROR_OK;
 }
 
        return ERROR_OK;
 }
 
-static int davinci_nand_device_command(struct command_context_s *cmd_ctx,
-               char *cmd, char **args, int argc,
-               struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(davinci_nand_device_command)
 {
        struct davinci_nand *info;
        target_t *target;
 {
        struct davinci_nand *info;
        target_t *target;
index 4b120779e9f447b518b0692253a77e9e715cade2..41cc33eecd6e016ffd461ecc626ae8f38d90c283 100644 (file)
@@ -29,7 +29,7 @@ static int lpc3180_controller_ready(struct nand_device_s *nand, int timeout);
 
 /* nand device lpc3180 <target#> <oscillator_frequency>
  */
 
 /* nand device lpc3180 <target#> <oscillator_frequency>
  */
-static int lpc3180_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(lpc3180_nand_device_command)
 {
        if (argc < 3)
        {
 {
        if (argc < 3)
        {
index f6a75ef7994719cc1b1d3cb712074450df23296b..a51f8c8d567065e678c0395d20048fabdc876ffd 100644 (file)
@@ -61,9 +61,7 @@ static int imx31_command (struct nand_device_s *nand, uint8_t command);
 static int imx31_address (struct nand_device_s *nand, uint8_t address);
 static int imx31_controller_ready (struct nand_device_s *nand, int tout);
 
 static int imx31_address (struct nand_device_s *nand, uint8_t address);
 static int imx31_controller_ready (struct nand_device_s *nand, int tout);
 
-static int imx31_nand_device_command (struct command_context_s *cmd_ctx,
-                                     char *cmd, char **args, int argc,
-                                     struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(imx31_nand_device_command)
 {
        mx3_nf_controller_t *mx3_nf_info;
        mx3_nf_info = malloc (sizeof (mx3_nf_controller_t));
 {
        mx3_nf_controller_t *mx3_nf_info;
        mx3_nf_info = malloc (sizeof (mx3_nf_controller_t));
index d96e288939750270fd36620c91a60a6fcce48def..57076d54857880d7f404dab59e3b1d61342a06a8 100644 (file)
 
 struct nand_device_s;
 
 
 struct nand_device_s;
 
+#define __NAND_DEVICE_COMMAND(name) \
+               COMMAND_HELPER(name, struct nand_device_s *nand)
+
 typedef struct nand_flash_controller_s
 {
        char *name;
 typedef struct nand_flash_controller_s
 {
        char *name;
-       int (*nand_device_command)(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *nand);
+       __NAND_DEVICE_COMMAND((*nand_device_command));
        int (*register_commands)(struct command_context_s *cmd_ctx);
        int (*init)(struct nand_device_s *nand);
        int (*reset)(struct nand_device_s *nand);
        int (*register_commands)(struct command_context_s *cmd_ctx);
        int (*init)(struct nand_device_s *nand);
        int (*reset)(struct nand_device_s *nand);
@@ -48,6 +51,8 @@ typedef struct nand_flash_controller_s
        int (*nand_ready)(struct nand_device_s *nand, int timeout);
 } nand_flash_controller_t;
 
        int (*nand_ready)(struct nand_device_s *nand, int timeout);
 } nand_flash_controller_t;
 
+#define NAND_DEVICE_COMMAND_HANDLER(name) static __NAND_DEVICE_COMMAND(name)
+
 typedef struct nand_block_s
 {
        uint32_t offset;
 typedef struct nand_block_s
 {
        uint32_t offset;
index 471c562a2399dd61bd591ec449c20b3f8dd83673..b112c9e3dc066e777a17564df13d261675caa882 100644 (file)
@@ -125,9 +125,7 @@ static int orion_nand_register_commands(struct command_context_s *cmd_ctx)
        return ERROR_OK;
 }
 
        return ERROR_OK;
 }
 
-int orion_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                             char **args, int argc,
-                             struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(orion_nand_device_command)
 {
        orion_nand_controller_t *hw;
        uint32_t base;
 {
        orion_nand_controller_t *hw;
        uint32_t base;
index 176a1a416a7be7833b6cf4801df557848221ee03..5badf1a4af8f670365b3f6ce16f36a8a372123d5 100644 (file)
@@ -30,9 +30,7 @@
 
 #include "s3c24xx_nand.h"
 
 
 #include "s3c24xx_nand.h"
 
-static int s3c2410_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                               char **args, int argc,
-                               struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(s3c2410_nand_device_command)
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
index 7b65f84da5409586394017eb12e15d9ccecde1a0..958f013d059842f2e74bcb5ca8c8ed7abcb53bbb 100644 (file)
@@ -30,9 +30,7 @@
 
 #include "s3c24xx_nand.h"
 
 
 #include "s3c24xx_nand.h"
 
-static int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                               char **args, int argc,
-                               struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(s3c2412_nand_device_command)
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
index c6d658d45eeae903193e0c0b44f6c9b7c4238bb0..80020f63def9ed1601f1f34f4554cec7834c8b57 100644 (file)
@@ -31,9 +31,7 @@
 #include "s3c24xx_nand.h"
 
 
 #include "s3c24xx_nand.h"
 
 
-static int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                               char **args, int argc,
-                               struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(s3c2440_nand_device_command)
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
index 6e92021dfd0ea6f6afb267b5f897a8943cc304f2..af7d9a9aa01ce9050070f31fc351bcadf58d558a 100644 (file)
@@ -31,9 +31,7 @@
 #include "s3c24xx_nand.h"
 
 
 #include "s3c24xx_nand.h"
 
 
-static int s3c2443_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
-                               char **args, int argc,
-                               struct nand_device_s *nand)
+NAND_DEVICE_COMMAND_HANDLER(s3c2443_nand_device_command)
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);
 {
        s3c24xx_nand_controller_t *info;
        CALL_S3C24XX_DEVICE_COMMAND(nand, &info);

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)