143051d27SRobert Mustacchi.\" 243051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the 343051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 443051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version 543051d27SRobert Mustacchi.\" 1.0 of the CDDL. 643051d27SRobert Mustacchi.\" 743051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 843051d27SRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 943051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 1043051d27SRobert Mustacchi.\" 1143051d27SRobert Mustacchi.\" 1243051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc. 1343051d27SRobert Mustacchi.\" 14*a7d7cafeSRobert Mustacchi.Dd November 27, 2023 1543051d27SRobert Mustacchi.Dt PROC_LWP_IN_SET 3PROC 1643051d27SRobert Mustacchi.Os 1743051d27SRobert Mustacchi.Sh NAME 1843051d27SRobert Mustacchi.Nm proc_lwp_in_set , 1943051d27SRobert Mustacchi.Nm proc_lwp_range_valid 2043051d27SRobert Mustacchi.Nd test and validate thread ranges 21*a7d7cafeSRobert Mustacchi.Sh LIBRARY 2243051d27SRobert Mustacchi.Lb libproc 23*a7d7cafeSRobert Mustacchi.Sh SYNOPSIS 24*a7d7cafeSRobert Mustacchi.In libproc.h 2543051d27SRobert Mustacchi.Ft int 2643051d27SRobert Mustacchi.Fo proc_lwp_in_set 2743051d27SRobert Mustacchi.Fa "const char *set" 2843051d27SRobert Mustacchi.Fa "lwpid_t lwpid" 2943051d27SRobert Mustacchi.Fc 3043051d27SRobert Mustacchi.Ft int 3143051d27SRobert Mustacchi.Fo proc_lwp_range_valid 3243051d27SRobert Mustacchi.Fa "const char *set" 3343051d27SRobert Mustacchi.Fc 3443051d27SRobert Mustacchi.Sh DESCRIPTION 3543051d27SRobert MustacchiThe 3643051d27SRobert Mustacchi.Fn proc_lwp_in_set 3743051d27SRobert Mustacchiand 3843051d27SRobert Mustacchi.Fn proc_lwp_range_valid 3943051d27SRobert Mustacchifunctions provide means for testing the validity of thread ranges and 4043051d27SRobert Mustacchiwhether a thread is in a range. 4143051d27SRobert Mustacchi.Pp 4243051d27SRobert MustacchiA thread range is a series of one or more series of range identifiers 4372d3dbb9SYuri Pankovwhich describe a collection of threads. 4472d3dbb9SYuri PankovThese are often used by programs such as 45bbf21555SRichard Lowe.Xr pbind 8 , 4643051d27SRobert Mustacchi.Xr pstack 1 , 4743051d27SRobert Mustacchi.Xr prun 1 , 4843051d27SRobert Mustacchi.Xr pstop 1 , 4943051d27SRobert Mustacchiand others as a means for a user to specify a selection of threads from 5043051d27SRobert Mustacchiinside of a process. 5143051d27SRobert Mustacchi.Pp 5243051d27SRobert MustacchiMore formally, the thread range may be described as: 5343051d27SRobert Mustacchi.Bd -literal -offset indent 5443051d27SRobert Mustacchilwp_range[,lwp_range]* 5543051d27SRobert Mustacchi.Ed 5643051d27SRobert Mustacchi.Pp 5772d3dbb9SYuri PankovAn LWP range may be specified as one of the following four strings. 5872d3dbb9SYuri PankovThe following table shows the string formats and the corresponding set of 5943051d27SRobert Mustacchivalid threads that match it: 6043051d27SRobert Mustacchi.Bl -column -offset indent ".Sy n-m" "n <= lwpid <= m" 6143051d27SRobert Mustacchi.It Sy -n Ta lwpid <= n 6243051d27SRobert Mustacchi.It Sy n-m Ta n <= lwpid <= m 6343051d27SRobert Mustacchi.It Sy n- Ta lwpid >= n 6443051d27SRobert Mustacchi.It Sy n Ta lwpid == n 6543051d27SRobert Mustacchi.El 6643051d27SRobert Mustacchi.Pp 6743051d27SRobert MustacchiFor example, the thread range 6843051d27SRobert Mustacchi.Sy -2,4-5,7,8- 6943051d27SRobert Mustacchimatches thread with IDs 0-2, 4-5, 7, and any thread id 8 or greater. 7043051d27SRobert Mustacchi.Pp 7143051d27SRobert MustacchiThe 7243051d27SRobert Mustacchi.Fn proc_lwp_range_valid 7343051d27SRobert Mustacchifunction determines whether or not the character string 7443051d27SRobert Mustacchi.Fa set 7572d3dbb9SYuri Pankovis a valid thread range based on the rules above. 7672d3dbb9SYuri PankovNote, the empty string, the 7743051d27SRobert Mustacchi.Dv NULL 7843051d27SRobert Mustacchipointer, or otherwise are not valid. 7943051d27SRobert Mustacchi.Pp 8043051d27SRobert MustacchiThe 8143051d27SRobert Mustacchi.Fn proc_lwp_in_set 8243051d27SRobert Mustacchifunction determines whether the thread identifier 8343051d27SRobert Mustacchi.Fa lwpid 8443051d27SRobert Mustacchiis contained in the set described by 8543051d27SRobert Mustacchi.Fa set . 8643051d27SRobert MustacchiIf 8743051d27SRobert Mustacchi.Fa set 8843051d27SRobert Mustacchiis the 8943051d27SRobert Mustacchi.Dv NULL 9043051d27SRobert Mustacchipointer, then every thread matches the set. 9143051d27SRobert Mustacchi.Sh RETURN VALUES 9243051d27SRobert MustacchiUpon successful completion, the 9343051d27SRobert Mustacchi.Fa proc_lwp_in_set 9443051d27SRobert Mustacchifunction returns 9543051d27SRobert Mustacchi.Sy 1 9643051d27SRobert Mustacchito indicate 9743051d27SRobert Mustacchi.Fa lwpid 9843051d27SRobert Mustacchiis in 9943051d27SRobert Mustacchi.Fa set . 10043051d27SRobert MustacchiOtherwise, 10143051d27SRobert Mustacchi.Sy 0 10243051d27SRobert Mustacchiis returned to indicate that 10343051d27SRobert Mustacchi.Fa lwpid 10443051d27SRobert Mustacchiis not in 10543051d27SRobert Mustacchi.Fa set . 10643051d27SRobert Mustacchi.Pp 10743051d27SRobert MustacchiUpon successful completion, the 10843051d27SRobert Mustacchi.Fa proc_lwp_range_valid 10943051d27SRobert Mustacchifunction returns 11043051d27SRobert Mustacchi.Sy 0 11143051d27SRobert Mustacchito indicate 11243051d27SRobert Mustacchi.Fa set 11372d3dbb9SYuri Pankovis valid. 11472d3dbb9SYuri PankovOtherwise, 11543051d27SRobert Mustacchi.Sy -1 11643051d27SRobert Mustacchiis returned to indicate that the set is invalid. 11743051d27SRobert Mustacchi.Sh INTERFACE STABILITY 11843051d27SRobert Mustacchi.Sy Uncommitted 11943051d27SRobert Mustacchi.Sh MT-LEVEL 12043051d27SRobert Mustacchi.Sy MT-Safe 12143051d27SRobert Mustacchi.Sh SEE ALSO 12243051d27SRobert Mustacchi.Xr libproc 3LIB , 123bbf21555SRichard Lowe.Xr proc 5 124