source: mainline/uspace/lib/c/include/adt/circ_buf.h@ cd1e3fc0

Last change on this file since cd1e3fc0 was d7f7a4a, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 3 years ago

Replace some license headers with SPDX identifier

Headers are replaced using tools/transorm-copyright.sh only
when it can be matched verbatim with the license header used
throughout most of the codebase.

  • Property mode set to 100644
File size: 813 bytes
Line 
1/*
2 * SPDX-FileCopyrightText: 2017 Jiri Svoboda
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/** @addtogroup libc
8 * @{
9 */
10/** @file Circular buffer
11 */
12
13#ifndef _LIBC_CIRC_BUF_H_
14#define _LIBC_CIRC_BUF_H_
15
16#include <errno.h>
17#include <stddef.h>
18
19/** Circular buffer */
20typedef struct {
21 /** Buffer */
22 void *buf;
23 /** Number of buffer members */
24 size_t nmemb;
25 /** Member size */
26 size_t size;
27 /** Read position */
28 size_t rp;
29 /** Write position */
30 size_t wp;
31 /** Number of used entries */
32 size_t nused;
33} circ_buf_t;
34
35extern void circ_buf_init(circ_buf_t *, void *, size_t, size_t);
36extern size_t circ_buf_nfree(circ_buf_t *);
37extern size_t circ_buf_nused(circ_buf_t *);
38extern errno_t circ_buf_push(circ_buf_t *, const void *);
39extern errno_t circ_buf_pop(circ_buf_t *, void *);
40
41#endif
42
43/** @}
44 */
Note: See TracBrowser for help on using the repository browser.