Changeset ac307b2 in mainline for uspace/lib/c/include/adt/circ_buf.h
- Timestamp:
- 2017-11-25T11:12:23Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 98cb5e0d
- Parents:
- f571ca49 (diff), 0851a3d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/adt/circ_buf.h
rf571ca49 rac307b2 1 1 /* 2 * Copyright (c) 20 09Jiri Svoboda2 * Copyright (c) 2017 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 27 27 */ 28 28 29 /** @addtogroup libc ipc29 /** @addtogroup libc 30 30 * @{ 31 31 */ 32 /** @file 33 * @brief Character device interface. 32 /** @file Circular buffer 34 33 */ 35 34 36 #ifndef LIBC_ IPC_CHAR_H_37 #define LIBC_ IPC_CHAR_H_35 #ifndef LIBC_CIRC_BUF_H_ 36 #define LIBC_CIRC_BUF_H_ 38 37 39 #include < ipc/common.h>38 #include <stddef.h> 40 39 41 typedef enum { 42 CHAR_WRITE_BYTE = IPC_FIRST_USER_METHOD 43 } char_request_t; 40 /** Circular buffer */ 41 typedef struct { 42 /** Buffer */ 43 void *buf; 44 /** Number of buffer members */ 45 size_t nmemb; 46 /** Member size */ 47 size_t size; 48 /** Read position */ 49 size_t rp; 50 /** Write position */ 51 size_t wp; 52 /** Number of used entries */ 53 size_t nused; 54 } circ_buf_t; 44 55 45 typedef enum { 46 CHAR_NOTIF_BYTE = IPC_FIRST_USER_METHOD 47 } char_notif_t; 56 extern void circ_buf_init(circ_buf_t *, void *, size_t, size_t); 57 extern size_t circ_buf_nfree(circ_buf_t *); 58 extern size_t circ_buf_nused(circ_buf_t *); 59 extern int circ_buf_push(circ_buf_t *, const void *); 60 extern int circ_buf_pop(circ_buf_t *, void *); 48 61 49 62 #endif
Note:
See TracChangeset
for help on using the changeset viewer.