forked from dnkl/foot
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
771 B
24 lines
771 B
#pragma once |
|
|
|
#include <stddef.h> |
|
|
|
enum async_write_status {ASYNC_WRITE_DONE, ASYNC_WRITE_REMAIN, ASYNC_WRITE_ERR}; |
|
|
|
/* |
|
* Primitive that writes data to a NONBLOCK:ing FD. |
|
* |
|
* _data: points to the beginning of the buffer |
|
* len: total size of the data buffer |
|
* idx: pointer to byte offset into data buffer - writing starts here. |
|
* |
|
* Thus, the total amount of data to write is (len - *idx). *idx is |
|
* updated such that it points to the next unwritten byte in the data |
|
* buffer. |
|
* |
|
* I.e. if the return value is: |
|
* - ASYNC_WRITE_DONE, then the *idx == len. |
|
* - ASYNC_WRITE_REMAIN, then *idx < len |
|
* - ASYNC_WRITE_ERR, there was an error, and no data was written |
|
*/ |
|
enum async_write_status async_write( |
|
int fd, const void *data, size_t len, size_t *idx);
|
|
|