Abstracts the extended NAND command handling to allow the function
signature to be controlled by __COMMAND_HANDLER.
-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;
/* 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)
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));
+#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);
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;
-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;
#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);
#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);
#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);
#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)