.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright © 2002 - Philip Howard - All rights reserved .\" .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU Lesser General Public .\" License as published by the Free Software Foundation; either .\" version 2.1 of the License, or (at your option) any later version. .\" .\" This library is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" Lesser General Public License for more details. .\" .\" You should have received a copy of the GNU Lesser General Public .\" License along with this library; if not, write to the Free Software .\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA .\" .TH vrb_give 3 2002-09-30 vrb "VRB Programmer's Manual" .SH NAME vrb_give - create a new virtual ring buffer .SH LIBRARY .B -lvrb .SH SYNOPSIS .B #include .sp .IB "vrb_p " "vrb_give" "(vrb_p " "vrb" ", size_t " "size" ");" .SH DESCRIPTION .B vrb_give specifies how much data has been placed into the empty portion of the virtual ring buffer by the caller. .sp The caller will have called .B vrb_empty_len(3) and .B vrb_empty_ptr(3) to get the length of empty space in the buffer and a pointer to it, and having placed some data into that space, starting from the pointer obtained and placing no more that the length obtained. .SH ARGUMENTS .IB "vrb_p " vrb .br specifies which virtual ring buffer. .sp .IB "size_t " size .br specifies the length of data that has been placed into the virtual ring buffer empty space by the caller. .SH "RETURN VALUE" .I int .br On success, 0 is returned. On error, -1 is returned. .SH ERRORS If an error is returned, then .I errno will have one of the following values: .TP .B EINVAL An invalid virtual ring buffer pointer was specified. .TP .B ENOSPC The specified length is greater than the empty space in the virtual ring buffer. .SH "SEE ALSO" .BR vrb (3), .BR vrb_capacity (3), .BR vrb_data_len (3), .BR vrb_data_ptr (3), .BR vrb_destroy (3), .BR vrb_get (3), .BR vrb_get_min (3), .BR vrb_init (3), .BR vrb_init_opt (3), .BR vrb_is_empty (3), .BR vrb_is_full (3), .BR vrb_is_not_empty (3), .BR vrb_is_not_full (3), .BR vrb_move (3), .BR vrb_new (3), .BR vrb_new_opt (3), .BR vrb_put (3), .BR vrb_put_all (3), .BR vrb_read (3), .BR vrb_read_min (3), .BR vrb_resize (3), .BR vrb_space_len (3), .BR vrb_space_ptr (3), .BR vrb_take (3), .BR vrb_uninit (3), .BR vrb_write (3), .BR vrb_write_min (3)