📄 gtmpscbuf.h
字号:
/* gtMpscBuf.h - header file for Mpsc buffer management *//********************************************************************** * * Copyright (c) 2003-2004, Dy 4 Systems All rights reserved. * This Source Code is the Property of Dy 4 Systems Inc. and can * only be used in accordance with Source Code License * Agreement of Dy 4 Systems Inc. dba (doing business as) * CURTISS-WRIGHT CONTROLS EMBEDDED COMPUTING, "CWCEC". * **********************************************************************//* modification history-------------------- 01nov02, deb PTR Initial release*/#ifndef GT_MPSCBUF_H#define GT_MPSCBUF_H#ifdef __cplusplusextern "C" {#endif /******************************** ******** LOCAL STRUCTS ******** *********************************//* device and channel structures */typedef struct { unsigned char * buf; /* location of bytes */ int read; /* index into current read frame */ int write; /* index into current write frame */ int size; /* size of buf */} GT_MPSCBUF_STREAM;typedef struct { unsigned char * buf; /* data */ int size; /* amount of data */ int read; /* used by gtMpscHw */ int maxSize; /* maximum amount of data */} GT_MPSCBUF_FRAME;typedef struct { int size; /* number of frames in the buffer */ int read; /* read frame */ int write; /* write frame */ GT_MPSCBUF_FRAME * frames; /* used in GT_MPSC_FRAME mode */} GT_MPSCBUF_FRAMES; /******************************** ** FUNCTION PROTOTYPES ** *********************************/int gtMpscBufPackedSize( int dataSize, int charSize );int gtMpscBufUnpackedSize( int packedDataSize, int charSize );int gtMpscBufPackBytes( unsigned char * dst, int dstSize,unsigned char * src, int srcSize,int charSize );int gtMpscBufUnpackBytes( unsigned char * dst, int dstSize,unsigned char * src, int srcSize,int charSize );/* frame buffer */int gtMpscBufNumFrames( GT_MPSCBUF_FRAMES * buffer );int gtMpscBufCreateFrames( GT_MPSCBUF_FRAMES * buffer, char ** bufs, int frameSize, int numFrames );int gtMpscBufDeleteFrames( GT_MPSCBUF_FRAMES * buffer );int gtMpscBufReadFrame( GT_MPSCBUF_FRAMES * buffer, char * bytes, int size,int charSize);int gtMpscBufWriteFrame( GT_MPSCBUF_FRAMES * buffer, char * bytes, int size,int charSize);int gtMpscBufReadFrameSize( GT_MPSCBUF_FRAMES * buffer );int gtMpscBufWriteFrameSize( GT_MPSCBUF_FRAMES * buffer );int gtMpscBufWriteFrameByte( GT_MPSCBUF_FRAMES * buffer, unsigned char byte );int gtMpscBufReadFrameByte( GT_MPSCBUF_FRAMES * buffer, unsigned char * byte );void gtMpscBufFlushFrames( GT_MPSCBUF_FRAMES * buffer );/* stream buffer */int gtMpscBufCreateStream( GT_MPSCBUF_STREAM * buffer, int size );void gtMpscBufDeleteStream( GT_MPSCBUF_STREAM * buffer );int gtMpscBufStreamSize( GT_MPSCBUF_STREAM * buffer );int gtMpscBufStreamAvailable( GT_MPSCBUF_STREAM * buffer );int gtMpscBufReadStream( GT_MPSCBUF_STREAM * buffer, char * bytes, int size, unsigned char mask );int gtMpscBufWriteStream( GT_MPSCBUF_STREAM * buffer, char * bytes,int size, unsigned char mask );int gtMpscBufReadStreamByte( GT_MPSCBUF_STREAM * buffer, char * byte );int gtMpscBufWriteStreamByte( GT_MPSCBUF_STREAM * buffer, char byte );void gtMpscBufFlushStream( GT_MPSCBUF_STREAM * buffer ); #ifdef __cplusplus}#endif#endif /* GT_MPSCBUF_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -