📄 fifo.h
字号:
#ifndef FIFO_H#define FIFO_H#include "lwip/sys.h"/** How many bytes in fifo */#define FIFOSIZE 2048/** fifo data structure, this one is passed to all fifo functions */typedef struct fifo_t { u8_t data[FIFOSIZE+10]; /* data segment, +10 is a hack probably not needed.. FIXME! */ int dataslot; /* index to next char to be read */ int emptyslot; /* index to next empty slot */ int len; /* len probably not needed, may be calculated from dataslot and emptyslot in conjunction with FIFOSIZE */ sys_sem_t sem; /* semaphore protecting simultaneous data manipulation */ sys_sem_t getSem; /* sepaphore used to signal new data if getWaiting is set */ u8_t getWaiting; /* flag used to indicate that fifoget is waiting for data. fifoput is suposed to clear */ /* this flag prior to signaling the getSem semaphore */} fifo_t;/*** Get a character from fifo* Blocking call.* @param pointer to fifo data structure* @return character read from fifo*/u8_t fifoGet(fifo_t * fifo);/*** Get a character from fifo* Non blocking call.* @param pointer to fifo data structure* @return character read from fifo, or < zero if non was available*/s16_t fifoGetNonBlock(fifo_t * fifo);/*** fifoput is called by the signalhandler when new data has arrived (or some other event is indicated)* fifoput reads directly from the serialport and is thus highly dependent on unix arch at this moment* @param fifo pointer to fifo data structure* @param fd unix file descriptor*/void fifoPut(fifo_t * fifo, int fd);/*** fifoinit initiate fifo* @param fifo pointer to fifo data structure, allocated by the user*/void fifoInit(fifo_t * fifo);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -