pld_driver_t -> struct pld_driver
[fw/openocd] / src / pld / pld.h
index e4cfc07157859b06dee56ea7e8281ccf48d44dcf..2b88d9dae5fcd2bf9818a882e8e3f05bc55c94e5 100644 (file)
 
 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;
 
-extern int pld_register_commands(struct command_context_s *cmd_ctx);
-extern int pld_init(struct command_context_s *cmd_ctx);
-extern pld_device_t *get_pld_device_by_num(int num);
+int pld_register_commands(struct command_context_s *cmd_ctx);
+
+int pld_init(struct command_context_s *cmd_ctx);
+
+pld_device_t *get_pld_device_by_num(int num);
 
 #define ERROR_PLD_DEVICE_INVALID       (-1000)
 #define ERROR_PLD_FILE_LOAD_FAILED     (-1001)