You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

58 lines
2.3 KiB

  1. /***************************************************************************
  2. * Copyright (C) 2007 by Pavel Chromy *
  3. * chromy@asix.cz *
  4. * *
  5. * This program is free software; you can redistribute it and/or modify *
  6. * it under the terms of the GNU General Public License as published by *
  7. * the Free Software Foundation; either version 2 of the License, or *
  8. * (at your option) any later version. *
  9. * *
  10. * This program is distributed in the hope that it will be useful, *
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of *
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
  13. * GNU General Public License for more details. *
  14. * *
  15. * You should have received a copy of the GNU General Public License *
  16. * along with this program; if not, write to the *
  17. * Free Software Foundation, Inc., *
  18. * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
  19. ***************************************************************************/
  20. #ifndef BITQ_H
  21. #define BITQ_H
  22. #include "commands.h"
  23. typedef struct bitq_interface_s
  24. {
  25. /* functions enqueueing low level IO requests
  26. */
  27. int (*out)(int tms, int tdi, int tdo_req);
  28. int (*flush)(void);
  29. int (*sleep)(unsigned long us);
  30. int (*reset)(int trst, int srst);
  31. /* delayed read of requested TDO data,
  32. * the input shall be checked after call to any enqueuing function
  33. */
  34. int (*in_rdy)(void);
  35. int (*in)(void);
  36. } bitq_interface_t;
  37. typedef struct bitq_state_s
  38. {
  39. jtag_command_t *cmd; /* command currently processed */
  40. int field_idx; /* index of field currently being processed */
  41. int bit_pos; /* position of bit curently being processed */
  42. int status; /* processing status */
  43. } bitq_state_t;
  44. extern bitq_interface_t *bitq_interface;
  45. extern int bitq_execute_queue(void);
  46. extern void bitq_cleanup(void);
  47. #endif /* BITQ_H */