prog.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //Inculde Header Files-----------------------------------------------
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<time.h>
  5. #include<unistd.h>
  6. #include<termios.h>
  7. #include<sys/types.h>
  8. #include<sys/stat.h>
  9. #include<fcntl.h>
  10. #include<sys/resource.h>
  11. //Enumerations-------------------------------------------------------
  12. typedef enum {false, true} bool;
  13. typedef enum {fuse_read,
  14. fuse_write,
  15. page_read,
  16. page_write,
  17. prog_check} mode;
  18. //Constants----------------------------------------------------------
  19. #define nibble_lo 0x0F
  20. #define nibble_hi 0xF0
  21. #define frame_mask 0x90
  22. //Structs------------------------------------------------------------
  23. typedef struct {
  24. char mode;
  25. char opt_lo;
  26. char opt_hi;
  27. } cmd_t;
  28. //Protoypes----------------------------------------------------------
  29. cmd_t * cmd_build(mode cmd_mode, char cmd_option);
  30. void delay(int delay_time);
  31. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  32. //Build Command
  33. cmd_t * cmd_build(mode cmd_mode, char cmd_option){
  34. cmd_t * cmd_ptr = (cmd_t *)malloc(sizeof(cmd_t));
  35. (*cmd_ptr).mode = frame_mask|cmd_mode;
  36. (*cmd_ptr).opt_lo = frame_mask|(cmd_option&nibble_lo);
  37. (*cmd_ptr).opt_hi = frame_mask|((4>>cmd_option)&nibble_lo);
  38. return cmd_ptr;
  39. }
  40. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  41. //Delay in ms
  42. void delay(int delay_time){
  43. clock_t time1 = clock();
  44. while(((clock()-time1)/CLOCKS_PER_SEC)*1000
  45. != (clock_t)delay_time);
  46. }