GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  BUF_RING_ENQUEUE (9)

NAME

buf_ring, buf_ring_alloc, buf_ring_free, buf_ring_enqueue, buf_ring_dequeue_mc, buf_ring_dequeue_sc, buf_ring_count, buf_ring_empty, buf_ring_full, buf_ring_peek, - multi-producer, {single, multi}-consumer lock-less ring buffer

CONTENTS

Synopsis
Description
Return Values
History

SYNOPSIS


.In sys/param.h
.In sys/buf_ring.h struct buf_ring * buf_ring_alloc int count struct malloc_type *type int flags struct mtx *sc_lock void buf_ring_free struct buf_ring *br struct malloc_type *type int buf_ring_enqueue struct buf_ring *br void *buf void * buf_ring_dequeue_mc struct buf_ring *br void * buf_ring_dequeue_sc struct buf_ring *br int buf_ring_count struct buf_ring *br int buf_ring_empty struct buf_ring *br int buf_ring_full struct buf_ring *br void * buf_ring_peek struct buf_ring *br

DESCRIPTION

The buf_ring functions provide a lock-less multi-producer and lock-less multi-consumer as well as single-consumer ring buffer.

The buf_ring_alloc function is used to allocate a buf_ring ring buffer with count slots using malloc_type type and memory flags flags. The single consumer interface is protected by sc_lock.

The buf_ring_free function is used to free a buf_ring. The user is responsible for freeing any enqueued items.

The buf_ring_enqueue function is used to enqueue a buffer to a buf_ring.

The buf_ring_dequeue_mc function is a multi-consumer safe way of dequeueing elements from a buf_ring.

The buf_ring_dequeue_sc function is a single-consumer interface to dequeue elements - requiring the user to serialize accesses with a lock.

The buf_ring_count function returns the number of elements in a buf_ring.

The buf_ring_empty function returns TRUE if the buf_ring is empty, FALSE otherwise.

The buf_ring_full function returns TRUE if no more items can be enqueued, FALSE otherwise.

The buf_ring_peek function returns a pointer to the last element in the buf_ring if the buf_ring is not empty, NULL otherwise.

RETURN VALUES

The buf_ring_enqueue function return ENOBUFS if there are no available slots in the buf_ring.

HISTORY

These functions were introduced in
.Fx 8.0 .
Search for    or go to Top of page |  Section 9 |  Main Index


Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.