doc/ck_bag: Add ck_bag documentation.

ck_pring
Abel Mathew 12 years ago
parent f02b87cd65
commit 5ca4e884bd

@ -0,0 +1,64 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_ALLOCATOR_SET
.Sh NAME
.Nm ck_bag_allocator_set
.Nd specify ck_bag memory allocation functions
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_allocator_set "struct ck_malloc *m, size_t alloc_overhead"
.Sh DESCRIPTION
The
.Fn ck_bag_allocator_set
function initializes the memory allocation functions used by the ck_bag
implementation according to the function pointers specified by the structure
pointed to by the
.Fa allocator
argument. it is mandatory that this function is called before any other ck_bag operations.
.Sh RETURN VALUES
.Fn ck_bag_allocator_set
returns a value of true, otherwise returns a value of false to indicate failure.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,63 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_BLOCK_COUNT 3
.Sh NAME
.Nm ck_bag_block_count
.Nd determine the number of entries in a ck_bag_block
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft uint16_t
.Fn ck_bag_block_count "struct ck_bag_block *block"
.Sh DESCRIPTION
The
.Fn ck_bag_block_count
function will return the number of entries in a ck_bag_block pointed to by the
.Fa block
argument.
.Sh ERRORS
Behavior is undefined if the ck_bag pointed to by the
.Fa bag
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,65 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_BLOCK_NEXT 3
.Sh NAME
.Nm ck_bag_block_next
.Nd extract next pointer from a ck_bag_block
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft struct ck_bag_block *
.Fn ck_bag_block_next "struct ck_bag_block *block"
.Sh DESCRIPTION
The
.Fn ck_bag_block_next
function will return the next pointer extracted from the
.Fa block
argument. On x86_64 platforms, both the number of entries and the next pointer
are stored within a single pointer. For all other platforms, this should be considered
an empty operation.
.Sh ERRORS
Behavior is undefined if
.Fa block
has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,63 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_COUNT 3
.Sh NAME
.Nm ck_bag_count
.Nd determine number of entries in a ck_bag
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft unsigned int
.Fn ck_bag_count "struct ck_bag *bag"
.Sh DESCRIPTION
The
.Fn ck_bag_count
function will return the number of entries in a ck_bag pointed to by the
.Fa bag
argument.
.Sh ERRORS
Behavior is undefined if the ck_bag pointed to by the
.Fa bag
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,68 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_DESTROY 3
.Sh NAME
.Nm ck_bag_destroy
.Nd destroy a ck_bag
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft void
.Fn ck_bag_destroy "struct ck_bag *bag"
.Sh DESCRIPTION
The
.Fn ck_bag_destroy
function will request the underlying allocator, associated with the ck_bag,
to immediately destroy the ck_bag pointed to by the
.Fa bag
argument
.Pp
The user must guarantee that no other threads are accessing the object pointed to by the
.Fa bag
argument when
.Fn ck_bag_destroy
is called.
.Sh ERRORS
This function will not fail.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,88 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_INIT 3
.Sh NAME
.Nm ck_bag_init
.Nd initialize ck_bag
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_init "struct ck_bag *bag, size_t n_cachelines, enum ck_bag_allocation_strategy as"
.Sh DESCRIPTION
The
.Fn ck_bag_init
function will initialize the object pointed to by the
.Fa bag
argument. If the
.Fa n_cachelines
argument is equivalent to CK_BAG_DEFAULT, then the block_size for the bag will
be CK_BAG_PAGESIZE (CK_MD_PAGESIZE). Otherwise, the block_size for the bag will
be n_cachelines * CK_MD_CACHELINE. The block_size, the number of bytes in a
single ck_bag_block, is set on a bag basis.
.Pp
.Fn ck_bag_init
will return false if the calculated block_size is less than the number of bytes
required by block overhead. Block overhead includes any allocator overhead
established from a previous call to the
.Fn ck_bag_allocator_set
function.
.Fn ck_bag_init
will also return false if you have compiled ck to pointer pack
and the number of entries within a block is greater than CK_BAG_MAX_N_ENTRIES.
On x86_64, CK_BAG_MAX_N_ENTRIES is equal to 4096.
.Sh RETURN VALUES
If
.Fn ck_bag_init
returns true then the object pointed to by the
.Fa bag
argument has been initialized. Otherwise, the object pointed to by the
.Fa bag
argument is not a valid ck_bag.
.Sh ERRORS
Behavior is undefined if
.Fa bag
does not point to a valid ck_bag object or if ck_bag_allocator_set has not been
called previously.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,69 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_ITERATOR_INIT 3
.Sh NAME
.Nm ck_bag_iterator_init
.Nd initialize a ck_bag_iterator
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft void
.Fn ck_bag_iterator_init "ck_bag_iterator_t *iterator, ck_bag_t *bag"
.Sh DESCRIPTION
The
.Fn ck_bag_iterator_init
function will initialize the object pointed to by the
.Fa iterator
argument.
.Pp
An iterator is used to iterate through the entries pointed to by the
.Fa bag
argument by using the
.Fn ck_bag_next
function.
.Sh ERRORS
Behavior is undefined if the ck_bag pointed to by the
.Fa bag
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,71 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_MEMBER_SPMC 3
.Sh NAME
.Nm ck_bag_member_spmc
.Nd determine whether a bag contains an entry
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_member_spmc "ck_bag_t *bag, void *entry"
.Sh DESCRIPTION
The
.Fn ck_bag_member_spmc
function will return true if the an item contained within the ck_bag
pointed to by the
.Fa bag
argument is equivalent to the
.Fa entry
argument.
.Sh RETURN VALUES
.Fn ck_bag_member_spmc
returns true if the
.Fa entry
argument was found in the bag, otherwise false.
.Sh ERRORS
Behavior is undefined if the ck_bag pointed to by the
.Fa bag
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,75 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_NEXT 3
.Sh NAME
.Nm ck_bag_next
.Nd iterate to the next entry in the ck_bag
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_next "struct ck_bag_iterator *iterator, void **entry"
.Sh DESCRIPTION
The
.Fn ck_bag_next
function will assign the
.Fa entry
argument the next entry in the ck_bag. It is expected
.Fa iterator
has been initialized using the ck_bag_iterator_init(3) function.
.Sh RETURN VALUES
If
.Fn ck_bag_next
returns true then the object pointed to by
.Fa entry
points to a valid ck_bag entry. If
.Fn ck_bag_next
returns false then the value of
.Fa entry
is undefined.
.Sh ERRORS
Behavior is undefined if the ck_bag_iterator pointed to by the
.Fa iterator
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,71 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_PUT_SPMC 3
.Sh NAME
.Nm ck_bag_put_spmc
.Nd place an item into a bag
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_put_spmc "ck_bag_t *bag, void *entry"
.Sh DESCRIPTION
The
.Fn ck_bag_put_spmc
function will store the
.Fa entry
argument in the ck_bag pointed to by the
.Fa bag
argument. This function is safe in the presence of concurrent
.Fn ck_bag_next
operations.
.Sh RETURN VALUES
Upon completion
.Fn ck_bag_put_spmc
returns true on if the item has been placed within the bag, otherwise false.
.Sh ERRORS
Behavior is undefined if the ck_bag pointed to by the
.Fa bag
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,69 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_REMOVE_SPMC 3
.Sh NAME
.Nm ck_bag_remove_spmc
.Nd remove an entry from a bag
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_remove_spmc "ck_bag_t *bag, void *entry"
.Sh DESCRIPTION
The
.Fn ck_bag_remove_spmc
function will remove the first item equivalent to the value of the
.Fa entry
argument within the ck_bag pointed to by the
.Fa bag
argument.
.Sh RETURN VALUES
Upon completion
.Fn ck_bag_remove_spmc
returns true if an item in the ck_bag was removed, otherwise false on failure.
.Sh ERRORS
Behavior is undefined if
.Fa bag
has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/

@ -0,0 +1,80 @@
.\"
.\" Copyright 2012 Abel P. Mathew
.\" Copyright 2012 Samy Al Bahra.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"
.Dd July 16th, 2012
.Dt CK_BAG_SET_SPMC 3
.Sh NAME
.Nm ck_bag_set_spmc
.Nd Replace the first occurence of a value in a bag. Insert value into the bag if value didn't previously exist.
.Sh LIBRARY
Concurrency Kit (libck, \-lck)
.Sh SYNOPSIS
.In ck_bag.h
.Ft bool
.Fn ck_bag_set_spmc "ck_bag_t *bag, void *compare, void *update"
.Sh DESCRIPTION
The
.Fn ck_bag_set_spmc
function will find the first occurence of the
.Fa compare
argument in the ck_bag pointed to by the
.Fa bag
argument and replace this entry with the value passed in by the
.Fa update
argument. If the no entries in the
.Fa bag
are equal to the
.Fa compare
argument, then a new entry with the value of
.Fa update
will placed in the bag.
This function is safe in the presence of concurrent
.Fn ck_bag_next
operations.
.Sh RETURN VALUES
Upon completion
.Fn ck_bag_set_spmc
returns true on success, false on failure.
.Sh ERRORS
Behavior is undefined if the ck_bag pointed to by the
.Fa bag
argument has not been initialized.
.Sh SEE ALSO
.Xr ck_bag_allocator_set(3),
.Xr ck_bag_block_next(3),
.Xr ck_bag_destroy(3),
.Xr ck_bag_iterator_init(3),
.Xr ck_bag_next(3),
.Xr ck_bag_remove_spmc(3),
.Xr ck_bag_block_count(3),
.Xr ck_bag_count(3),
.Xr ck_bag_init(3),
.Xr ck_bag_member_spmc(3),
.Xr ck_bag_put_spmc(3),
.Xr ck_bag_set_spmc(3)
.Pp
Additional information available at http://concurrencykit.org/
Loading…
Cancel
Save