X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fpld%2Fpld.h;h=c089fe6352664effdb91eee3f572e3b4e49e05ad;hp=e4cfc07157859b06dee56ea7e8281ccf48d44dcf;hb=08d4411b59dd8bd0e7d8009003b71d23acbf6eee;hpb=e9297b40b994f071474210e7d9e224d50e25fcaf diff --git a/src/pld/pld.h b/src/pld/pld.h index e4cfc07157..c089fe6352 100644 --- a/src/pld/pld.h +++ b/src/pld/pld.h @@ -15,35 +15,40 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ***************************************************************************/ + #ifndef PLD_H #define PLD_H -#include "command.h" +#include + +struct pld_device; -struct pld_device_s; +#define __PLD_DEVICE_COMMAND(name) \ + COMMAND_HELPER(name, struct pld_device *pld) -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; +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); +}; -typedef struct pld_device_s -{ - pld_driver_t *driver; +#define PLD_DEVICE_COMMAND_HANDLER(name) \ + static __PLD_DEVICE_COMMAND(name) + +struct pld_device { + struct pld_driver *driver; void *driver_priv; - struct pld_device_s *next; -} pld_device_t; + struct pld_device *next; +}; + +int pld_register_commands(struct command_context *cmd_ctx); -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); +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 */