X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fpld%2Fpld.h;h=2b88d9dae5fcd2bf9818a882e8e3f05bc55c94e5;hb=db2086897a581111bb86a0fb49d72b776a9801a9;hp=c6d3c9248feefdc74e2a26a686ef9eb7eaca0c45;hpb=994a63c3fee11b8c65891ead6b03b2b716044541;p=fw%2Fopenocd diff --git a/src/pld/pld.h b/src/pld/pld.h index c6d3c9248..2b88d9dae 100644 --- a/src/pld/pld.h +++ b/src/pld/pld.h @@ -24,17 +24,22 @@ struct pld_device_s; -typedef struct pld_driver_s +#define __PLD_DEVICE_COMMAND(name) \ + COMMAND_HELPER(name, struct pld_device_s *pld) + +struct pld_driver { char *name; + __PLD_DEVICE_COMMAND((*pld_device_command)); int (*register_commands)(struct command_context_s *cmd_ctx); - int (*pld_device_command)(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct pld_device_s *pld_device); - int (*load)(struct pld_device_s *pld_device, char *filename); -} pld_driver_t; + int (*load)(struct pld_device_s *pld_device, const char *filename); +}; + +#define PLD_DEVICE_COMMAND_HANDLER(name) static __PLD_DEVICE_COMMAND(name) typedef struct pld_device_s { - pld_driver_t *driver; + struct pld_driver *driver; void *driver_priv; struct pld_device_s *next; } pld_device_t;