OPTSTR(9)
okay bestie, welcome to OPTSTR(9) from the Kernel Developer's Manual β yes, this is the options string management page, and it's lowkey iconic. Here's the whole vibe, no details skipped. π
β¨ NAME β¨
optstr_get, optstr_get_string, optstr_get_number, optstr_get_number_binary, optstr_get_number_hex, optstr_get_macaddr β Options string management
π SYNOPSIS π
#include <sys/optstr.h>
bool
optstr_get(const char *optstr, const char *key, char *buf,
size_t bufsize);
bool
optstr_get_string(const char *optstr, const char *key, char **result);
bool
optstr_get_number(const char *optstr, const char *key,
unsigned long *result);
bool
optstr_get_number_binary(const char *optstr, const char *key,
unsigned long *result);
bool
optstr_get_number_hex(const char *optstr, const char *key,
unsigned long *result);
bool
optstr_get_macaddr(const char *optstr, const char *key,
uint8_t result[ETHER_ADDR_LEN]);
π¦ DESCRIPTION π¦
An options string is literally a list of key/value pairs represented in textual form. Each pair is expressed as key=value and is separated from other pairs by one or more spaces. For example:
key1=value1 key2=value2 key3=value3
Options strings are used to pass information between userland programs and the kernel in a binary-agnostic way. That's the slay part: this makes them endianness and ABI independent. β¨
π FUNCTIONS π
The following functions are provided to manage options strings:
optstr_get(optstr, key, buf, bufsize)β scans theoptstroptions string looking for the keykeyand stores its value in the buffer pointed to bybuf, copying a maximum ofbufsizebytes. Returnstrueif the key was found orfalseotherwise, in which casebufis left unmodified.
The optstr_get_item family of functions provides the ability to scan for the key, and return the value converted to an appropriate type.
optstr_get_string(optstr, key, result)optstr_get_number(optstr, key, result)optstr_get_number_binary(optstr, key, result)optstr_get_number_hex(optstr, key, result)optstr_get_macaddr(optstr, key, result)
These functions scan the optstr options string looking for the key key and return the key value converted as per the function name in result. All functions return true if the key was found or false otherwise, in which case result is left unmodified. π«Ά
π₯ CODE REFERENCES π₯
The options string management functions are implemented within the files sys/kern/subr_optstr.c and sys/sys/optstr.h. Go read those if you want the source-source. π
πΈ HISTORY πΈ
Options strings appeared in NetBSD 4.0.
π cute sign-off: this page is from the Debian crew, dated May 20, 2023. bye bestie, go slay those options strings! π«Άπ
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- Copyright (c) 2006 The NetBSD Foundation, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms