1.\" $NetBSD: optstr.9,v 1.4 2008/04/30 13:10:58 martin Exp $ 2.\" 3.\" Copyright (c) 2006 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" 6.\" This code is derived from software contributed to The NetBSD Foundation 7.\" by Julio M. Merino Vidal. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28.\" POSSIBILITY OF SUCH DAMAGE. 29.\" 30.Dd August 11, 2007 31.Dt OPTSTR 9 32.Os 33.Sh NAME 34.Nm optstr_get 35.Nd Options string management 36.Sh SYNOPSIS 37.In sys/optstr.h 38.Ft bool 39.Fn optstr_get "const char *optstr" "const char *key" "char *buf" "size_t bufsize" 40.Sh DESCRIPTION 41An options string is a list of key/value pairs represented in textual form. 42Each pair is expressed as 43.Sq 'key=value' 44and is separated from other pairs by one or more spaces. 45For example: 46.Bd -literal 47key1=value1 key2=value2 key3=value3 48.Ed 49.Pp 50Options strings are used to pass information between userland programs and 51the kernel in a binary-agnostic way. 52This makes them endianness and ABI independent. 53.Sh FUNCTIONS 54The following functions are provided to manage options strings: 55.Bl -tag -width compact 56.It Fn optstr_get "optstr" "key" "buf" "bufsize" 57Scans the 58.Va optstr 59options string looking for the key 60.Va key 61and stores its value in the buffer pointed to by 62.Va buf 63copying a maximum of 64.Va bufsize 65bytes. 66Returns 67.Sq true 68if the key was found or 69.Sq false 70otherwise, in which case 71.Va buf 72is left unmodified. 73.El 74.Sh CODE REFERENCES 75The options string management functions are implemented within the files 76.Pa sys/kern/subr_optstr.c 77and 78.Pa sys/sys/optstr.h . 79.Sh HISTORY 80Options strings appeared in 81.Nx 4.0 . 82