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.\" 1443051d27SRobert Mustacchi.Dd May 11, 2016 1543051d27SRobert Mustacchi.Dt PLDT 3PROC 1643051d27SRobert Mustacchi.Os 1743051d27SRobert Mustacchi.Sh NAME 1843051d27SRobert Mustacchi.Nm Pldt , 1943051d27SRobert Mustacchi.Nm proc_get_ldt 2043051d27SRobert Mustacchi.Nd obtain local descriptor table of a process 21ab618543SJohn Levon.Sh LIBRARY 2243051d27SRobert Mustacchi.Lb libproc 23ab618543SJohn Levon.Sh SYNOPSIS 2443051d27SRobert Mustacchi.In libproc.h 2543051d27SRobert Mustacchi.Ft int 2643051d27SRobert Mustacchi.Fo Pldt 2743051d27SRobert Mustacchi.Fa "struct ps_prochandle *P" 2843051d27SRobert Mustacchi.Fa "struct ssd *pldt" 2943051d27SRobert Mustacchi.Fa "int nldt" 3043051d27SRobert Mustacchi.Fc 3143051d27SRobert Mustacchi.Ft int 3243051d27SRobert Mustacchi.Fo proc_get_ldt 3343051d27SRobert Mustacchi.Fa "pid_t pid" 3443051d27SRobert Mustacchi.Fa "struct ssd *pldt" 3543051d27SRobert Mustacchi.Fa "int nldt" 3643051d27SRobert Mustacchi.Fc 3743051d27SRobert Mustacchi.Sh DESCRIPTION 3843051d27SRobert MustacchiThe 3943051d27SRobert Mustacchi.Fn Pldt 4043051d27SRobert Mustacchifunction reads the local descriptor table (LDT) of the process handle 4143051d27SRobert Mustacchi.Fa P 4243051d27SRobert Mustacchiinto the buffer 4343051d27SRobert Mustacchi.Fa pldt . 4443051d27SRobert MustacchiUp to 4543051d27SRobert Mustacchi.Fa nldt 4643051d27SRobert Mustacchientries will be read. 4743051d27SRobert Mustacchi.Pp 4843051d27SRobert MustacchiIf either 4943051d27SRobert Mustacchi.Fa pldt 5043051d27SRobert Mustacchiis 5143051d27SRobert Mustacchi.Dv NULL 5243051d27SRobert Mustacchior 5343051d27SRobert Mustacchi.Fa nldt 5443051d27SRobert Mustacchiis 5543051d27SRobert Mustacchi.Fa 0 , 5643051d27SRobert Mustacchithen rather than filling in 5743051d27SRobert Mustacchi.Fa pldt , 5843051d27SRobert Mustacchionly the number of entries currently in the LDT is returned. 5943051d27SRobert Mustacchi.Pp 6043051d27SRobert MustacchiThe buffer 6143051d27SRobert Mustacchi.Fa pldt 6243051d27SRobert Mustacchishould contain sufficient space for 6343051d27SRobert Mustacchi.Fa nldt 6472d3dbb9SYuri Pankoventries. 6572d3dbb9SYuri PankovFor example, callers could allocate space as: 6643051d27SRobert Mustacchi.Pp 6743051d27SRobert Mustacchi.Dl pldt = malloc(sizeof (struct ssd) * nldt); 6843051d27SRobert Mustacchi.Pp 6943051d27SRobert MustacchiFor more information on the LDT and the 7043051d27SRobert Mustacchi.Sy struct ssd , 7143051d27SRobert Mustacchisee 72*bbf21555SRichard Lowe.Xr proc 5 . 7343051d27SRobert Mustacchi.Pp 7443051d27SRobert MustacchiThe 7543051d27SRobert Mustacchi.Fn proc_get_ldt 7643051d27SRobert Mustacchifunction is similar to the 7743051d27SRobert Mustacchi.Fn Pldt 7843051d27SRobert Mustacchifunction; however, rather than reading from a process handle, it reads 7943051d27SRobert Mustacchithe 8043051d27SRobert Mustacchi.Sy ldt 8143051d27SRobert Mustacchifile from the /proc file system for the process 8243051d27SRobert Mustacchi.Fa pid . 8343051d27SRobert Mustacchi.Sh RETURN VALUES 8443051d27SRobert MustacchiUpon successful completion, the 8543051d27SRobert Mustacchi.Fn Pldt 8643051d27SRobert Mustacchiand 8743051d27SRobert Mustacchi.Fn proc_get_ldt 8843051d27SRobert Mustacchifunctions return the number of LDT entries written to 8943051d27SRobert Mustacchi.Fa pldt . 9043051d27SRobert MustacchiIf 9143051d27SRobert Mustacchi.Fa pldt 9243051d27SRobert Mustacchiis 9343051d27SRobert Mustacchi.Dv NULL 9443051d27SRobert Mustacchior 9543051d27SRobert Mustacchi.Fa nldt 9672d3dbb9SYuri Pankovis zero, then no data will be written. 9772d3dbb9SYuri PankovOtherwise, 9843051d27SRobert Mustacchi.Sy -1 9972d3dbb9SYuri Pankovis returned. 10072d3dbb9SYuri PankovThe 10143051d27SRobert Mustacchi.Fn Pldt 10243051d27SRobert Mustacchifunction sets 10343051d27SRobert Mustacchi.Sy errno 10443051d27SRobert Mustacchito indicate the error that occurred. 10543051d27SRobert Mustacchi.Sh ERRORS 10643051d27SRobert MustacchiFor a full list of possible errors see the 10743051d27SRobert Mustacchi.Sy DIAGNOSTICS 10843051d27SRobert Mustacchisection in 109*bbf21555SRichard Lowe.Xr proc 5 . 11043051d27SRobert Mustacchi.Pp 11143051d27SRobert MustacchiThe 11243051d27SRobert Mustacchi.Fn Pldt 11343051d27SRobert Mustacchifunction will fail if: 11443051d27SRobert Mustacchi.Bl -tag -width Er 11543051d27SRobert Mustacchi.It Er ENODATA 11643051d27SRobert MustacchiNo LDT information is available in the process handle 11743051d27SRobert Mustacchi.Fa P . 11843051d27SRobert Mustacchi.El 11943051d27SRobert Mustacchi.Sh ARCHITECTURE 12043051d27SRobert MustacchiThe 12143051d27SRobert Mustacchi.Fn Pldt 12243051d27SRobert Mustacchiand 12343051d27SRobert Mustacchi.Fn proc_get_ldt 12443051d27SRobert Mustacchifunctions are only available on 12543051d27SRobert Mustacchi.Sy x86 12643051d27SRobert Mustacchiplatforms. 12743051d27SRobert Mustacchi.Sh INTERFACE STABILITY 12843051d27SRobert Mustacchi.Sy Uncommitted 12943051d27SRobert Mustacchi.Sh MT-LEVEL 13043051d27SRobert MustacchiSee 13143051d27SRobert Mustacchi.Sy LOCKING 13243051d27SRobert Mustacchiin 13343051d27SRobert Mustacchi.Xr libproc 3LIB . 13443051d27SRobert Mustacchi.Sh SEE ALSO 13543051d27SRobert Mustacchi.Xr libproc 3LIB , 136*bbf21555SRichard Lowe.Xr proc 5 137