Merge remote-tracking branch 'origin/master'
[unleashed/lotheac.git] / share / man / man3proc / Pldt.3proc
blobc39a0b6371e4d16e9126c1c4576821f546b4fe5c
1 .\"
2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
5 .\" 1.0 of the CDDL.
6 .\"
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source.  A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
10 .\"
11 .\"
12 .\" Copyright 2015 Joyent, Inc.
13 .\"
14 .Dd May 11, 2016
15 .Dt PLDT 3PROC
16 .Os
17 .Sh NAME
18 .Nm Pldt ,
19 .Nm proc_get_ldt
20 .Nd obtain local descriptor table of a process
21 .Sh SYNOPSIS
22 .Lb libproc
23 .In libproc.h
24 .Ft int
25 .Fo Pldt
26 .Fa "struct ps_prochandle *P"
27 .Fa "struct ssd *pldt"
28 .Fa "int nldt"
29 .Fc
30 .Ft int
31 .Fo proc_get_ldt
32 .Fa "pid_t pid"
33 .Fa "struct ssd *pldt"
34 .Fa "int nldt"
35 .Fc
36 .Sh DESCRIPTION
37 The
38 .Fn Pldt
39 function reads the local descriptor table (LDT) of the process handle
40 .Fa P
41 into the buffer
42 .Fa pldt .
43 Up to
44 .Fa nldt
45 entries will be read.
46 .Pp
47 If either
48 .Fa pldt
50 .Dv NULL
52 .Fa nldt
54 .Fa 0 ,
55 then rather than filling in
56 .Fa pldt ,
57 only the number of entries currently in the LDT is returned.
58 .Pp
59 The buffer
60 .Fa pldt
61 should contain sufficient space for
62 .Fa nldt
63 entries.
64 For example, callers could allocate space as:
65 .Pp
66 .Dl pldt = malloc(sizeof (struct ssd) * nldt);
67 .Pp
68 For more information on the LDT and the
69 .Sy struct ssd ,
70 see
71 .Xr proc 4 .
72 .Pp
73 The
74 .Fn proc_get_ldt
75 function is similar to the
76 .Fn Pldt
77 function; however, rather than reading from a process handle, it reads
78 the
79 .Sy ldt
80 file from the /proc file system for the process
81 .Fa pid .
82 .Sh RETURN VALUES
83 Upon successful completion, the
84 .Fn Pldt
85 and
86 .Fn proc_get_ldt
87 functions return the number of LDT entries written to
88 .Fa pldt .
90 .Fa pldt
92 .Dv NULL
94 .Fa nldt
95 is zero, then no data will be written.
96 Otherwise,
97 .Sy -1
98 is returned.
99 The
100 .Fn Pldt
101 function sets
102 .Sy errno
103 to indicate the error that occurred.
104 .Sh ERRORS
105 For a full list of possible errors see the
106 .Sy DIAGNOSTICS
107 section in
108 .Xr proc 4 .
111 .Fn Pldt
112 function will fail if:
113 .Bl -tag -width Er
114 .It Er ENODATA
115 No LDT information is available in the process handle
116 .Fa P .
118 .Sh ARCHITECTURE
120 .Fn Pldt
122 .Fn proc_get_ldt
123 functions are only available on
124 .Sy x86
125 platforms.
126 .Sh INTERFACE STABILITY
127 .Sy Uncommitted
128 .Sh MT-LEVEL
130 .Sy LOCKING
132 .Xr libproc 3LIB .
133 .Sh SEE ALSO
134 .Xr libproc 3LIB ,
135 .Xr proc 4