ISR Pipe

ISR -> userspace pipe. More...

Detailed Description

ISR -> userspace pipe.

Modules

 Read timeouts with ISR pipe
 ISR -> userspace pipe with timeout.
 

Files

file  isrpipe.h
 isrpipe Interface
 

Data Structures

struct  isrpipe_t
 Context structure for isrpipe. More...
 

Macros

#define ISRPIPE_INIT(tsrb_buf)   { .mutex = MUTEX_INIT, .tsrb = TSRB_INIT(tsrb_buf) }
 Static initializer for irspipe.
 

Functions

void isrpipe_init (isrpipe_t *isrpipe, char *buf, size_t bufsize)
 Initialisation function for isrpipe. More...
 
int isrpipe_write_one (isrpipe_t *isrpipe, char c)
 Put one character into the isrpipe's buffer. More...
 
int isrpipe_read (isrpipe_t *isrpipe, char *buf, size_t count)
 Read data from isrpipe (blocking) More...
 

Function Documentation

◆ isrpipe_init()

void isrpipe_init ( isrpipe_t isrpipe,
char *  buf,
size_t  bufsize 
)

Initialisation function for isrpipe.

Parameters
[in]isrpipeisrpipe object to initialize
[in]bufbuffer to use as ringbuffer (must be power of two sized!)
[in]bufsizesize of buf

◆ isrpipe_read()

int isrpipe_read ( isrpipe_t isrpipe,
char *  buf,
size_t  count 
)

Read data from isrpipe (blocking)

Parameters
[in]isrpipeisrpipe object to operate on
[in]bufbuffer to write to
[in]countnumber of bytes to read
Returns
number of bytes read

◆ isrpipe_write_one()

int isrpipe_write_one ( isrpipe_t isrpipe,
char  c 
)

Put one character into the isrpipe's buffer.

Parameters
[in]isrpipeisrpipe object to initialize
[in]ccharacter to add to isrpipe buffer
Returns
0 if character could be added
-1 if buffer was full