bus.h 842 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef BUS_H
  2. #define BUS_H
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <stdint.h>
  6. #define BUS_TIMEOUT 1000000
  7. void write_pin(int pin, int value);
  8. int read_pin(int pin);
  9. void init_read_pin(int d, int clk, int ack);
  10. void init_write_pin(int d, int clk, int ack);
  11. void free_fifo(int d, int clk, int ack);
  12. typedef struct
  13. {
  14. int t;
  15. int q;
  16. char buffer[1024];
  17. } file_t;
  18. typedef struct
  19. {
  20. int data;
  21. int clk;
  22. int ack;
  23. int ismaster;
  24. file_t buffer;
  25. } bus_t;
  26. void bus_init_recv (bus_t* bus, int d, int clk, int ack);
  27. void bus_init_send (bus_t* bus, int d, int clk, int ack);
  28. void* bus_send_thread (void* _bus);
  29. void* bus_recv_thread (void* _bus);
  30. void bus_write (bus_t* bus, const void* x, int length);
  31. void bus_write_sync (bus_t* bus, const void* x, int length);
  32. void bus_read (bus_t* bus, void* x, int length);
  33. #endif