| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- //Inculde Header Files-----------------------------------------------
- #include<stdlib.h>
- #include<stdio.h>
- #include<errno.h>
- #include<sys/time.h>
- #include<unistd.h>
- #include<termios.h>
- #include<sys/types.h>
- #include<sys/stat.h>
- #include<fcntl.h>
- #include<sys/resource.h>
- #include<pthread.h>
- #include<signal.h>
- //Enumerations-------------------------------------------------------
- typedef enum {false, true} bool;
- typedef enum {idle,
- prog_enable,
- page_read,
- page_write,
- prog_check} mode;
- //Constants----------------------------------------------------------
- #define nibble_lo 0x0F
- #define nibble_hi 0xF0
- #define frame_mask 0x90
- #define page_size 64
- //Structs------------------------------------------------------------
- typedef struct {
- char mode;
- char opt_lo;
- char opt_hi;
- } cmd_t;
- //Makros-------------------------------------------------------------
- #define error_handler(err_no, err_str) \
- errno = err_no; \
- perror(err_str); \
- exit(EXIT_FAILURE);
- //Protoypes----------------------------------------------------------
- void * signal_thread(void * arg_ptr);
- void set_timer(int sec, int usec);
- char * cmd_build(mode cmd_mode, char cmd_option);
- char * page_build(char size);
- unsigned char * page_mask(char * page_build_ptr, int page_end);
- int page_get(FILE * input_stream, int page_pos);
- //Global Variables---------------------------------------------------
- char cmd_arr[3];
- bool timer_state;
- unsigned char page_buf[64];
|