prog.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //Inculde Header Files-----------------------------------------------
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<errno.h>
  5. #include<sys/time.h>
  6. #include<unistd.h>
  7. #include<termios.h>
  8. #include<sys/types.h>
  9. #include<sys/stat.h>
  10. #include<fcntl.h>
  11. #include<sys/resource.h>
  12. #include<pthread.h>
  13. #include<signal.h>
  14. //Enumerations-------------------------------------------------------
  15. typedef enum {false, true} bool;
  16. typedef enum {idle,
  17. prog_enable,
  18. page_read,
  19. page_write,
  20. prog_check} mode;
  21. //Constants----------------------------------------------------------
  22. #define nibble_lo 0x0F
  23. #define nibble_hi 0xF0
  24. #define frame_mask 0x90
  25. #define page_size 64
  26. //Structs------------------------------------------------------------
  27. typedef struct {
  28. char mode;
  29. char opt_lo;
  30. char opt_hi;
  31. } cmd_t;
  32. //Makros-------------------------------------------------------------
  33. #define error_handler(err_no, err_str) \
  34. errno = err_no; \
  35. perror(err_str); \
  36. exit(EXIT_FAILURE);
  37. //Protoypes----------------------------------------------------------
  38. void * signal_thread(void * arg_ptr);
  39. void set_timer(int sec, int usec);
  40. char * cmd_build(mode cmd_mode, char cmd_option);
  41. char * page_build(char size);
  42. unsigned char * page_mask(char * page_build_ptr, int page_end);
  43. int page_get(FILE * input_stream, int page_pos);
  44. //Global Variables---------------------------------------------------
  45. char cmd_arr[3];
  46. bool timer_state;
  47. unsigned char page_buf[64];