cfg: ftdi icdi enable srst open drain config
[fw/openocd] / src / pld / pld.h
index c6d3c9248feefdc74e2a26a686ef9eb7eaca0c45..eb200f622f72f0d7a55e77b2b7d77267bd523428 100644 (file)
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifndef PLD_H
 #define PLD_H
 
-#include "command.h"
+#include <helper/command.h>
 
-struct pld_device_s;
+struct pld_device;
 
-typedef struct pld_driver_s
-{
-       char *name;
-       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;
+#define __PLD_DEVICE_COMMAND(name) \
+       COMMAND_HELPER(name, struct pld_device *pld)
 
-typedef struct pld_device_s
-{
-       pld_driver_t *driver;
-       void *driver_priv;
-       struct pld_device_s *next;
-} pld_device_t;
+struct pld_driver {
+       const char *name;
+       __PLD_DEVICE_COMMAND((*pld_device_command));
+       const struct command_registration *commands;
+       int (*load)(struct pld_device *pld_device, const char *filename);
+};
 
-int pld_register_commands(struct command_context_s *cmd_ctx);
+#define PLD_DEVICE_COMMAND_HANDLER(name) \
+       static __PLD_DEVICE_COMMAND(name)
+
+struct pld_device {
+       struct pld_driver *driver;
+       void *driver_priv;
+       struct pld_device *next;
+};
 
-int pld_init(struct command_context_s *cmd_ctx);
+int pld_register_commands(struct command_context *cmd_ctx);
 
-pld_device_t *get_pld_device_by_num(int num);
+struct pld_device *get_pld_device_by_num(int num);
 
-#define ERROR_PLD_DEVICE_INVALID       (-1000)
-#define ERROR_PLD_FILE_LOAD_FAILED     (-1001)
+#define ERROR_PLD_DEVICE_INVALID        (-1000)
+#define ERROR_PLD_FILE_LOAD_FAILED      (-1001)
 
-#endif /* PLD_H */
+#endif /* PLD_H */