bus.h 815 B

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