00001 #ifndef SCS_IO_QUEUE_H_ 00002 #define SCS_IO_QUEUE_H_ 00003 00004 #include "alt_types.h" 00005 00006 00014 00015 00016 00017 typedef struct { 00018 alt_u8 byte; 00019 } scs_io_read_event_params; 00020 00021 00025 typedef struct { 00026 alt_u32 time; 00027 scs_io_read_event_params params; 00028 } scs_io_event_t; 00029 00030 00032 #define SCS_IO_Q_SIZE 64 00033 00048 typedef struct{ 00049 scs_io_event_t elements[SCS_IO_Q_SIZE]; 00050 int num_e; 00051 int rd_idx; 00052 00053 } scs_io_queue_t; 00054 00055 00059 void scs_init_io_queue(scs_io_queue_t* queue); 00060 00065 void scs_add_io_element(scs_io_queue_t* queue,scs_io_event_t e); 00066 00071 scs_io_event_t scs_remove_io_element(scs_io_queue_t* queue); 00072 00077 int scs_is_io_empty(scs_io_queue_t* queue); 00078 00083 int scs_is_io_full(scs_io_queue_t* queue); 00084 00085 00086 #endif /*SCS_IO_QUEUE_H_*/