xref: /illumos-gate/usr/src/man/man3proc/Pldt.3proc (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
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