prog.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. char * cmd_build(mode cmd_mode, char cmd_option);
  30. char * page_build();
  31. void delay(int delay_time);
  32. //Variables----------------------------------------------------------
  33. char cmd_arr[3];
  34. char page_size = 0x40;
  35. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  36. //Build Command
  37. char * cmd_build(mode cmd_mode, char cmd_option){
  38. cmd_t * cmd_ptr = (cmd_t *)malloc(sizeof(cmd_t));
  39. (*cmd_ptr).mode = frame_mask|cmd_mode;
  40. (*cmd_ptr).opt_lo = frame_mask|(cmd_option&nibble_lo);
  41. (*cmd_ptr).opt_hi = frame_mask|((cmd_option>>4)&nibble_lo);
  42. char * frame_ptr = &((*cmd_ptr).mode);
  43. return frame_ptr;
  44. }
  45. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  46. //Delay in ms
  47. void delay(int delay_time){
  48. clock_t time1 = clock();
  49. while(((clock()-time1)/CLOCKS_PER_SEC)*1000
  50. != (clock_t)delay_time);
  51. }
  52. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  53. //Build Page
  54. char * page_build(){
  55. char page[70];
  56. for(int i=0; i<70; i++){
  57. page[i] = 0xFF;
  58. }
  59. char * page_ptr = &page[0];
  60. return page_ptr;
  61. }