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 November 27, 2023
15.Dt PR_SETRLIMIT 3PROC
16.Os
17.Sh NAME
18.Nm pr_setrlimit ,
19.Nm pr_setrlimit64
20.Nd inject setrlimit system call into victim process
21.Sh LIBRARY
22.Lb libproc
23.Sh SYNOPSIS
24.In libproc.h
25.Ft int
26.Fo pr_setrlimit
27.Fa "struct ps_prochandle *P"
28.Fa "int resource"
29.Fa "const struct rlimit *rlp"
30.Fc
31.Ft int
32.Fo pr_setrlimit64
33.Fa "struct ps_prochandle *P"
34.Fa "int resource"
35.Fa "struct rlimit64 *rlp"
36.Fc
37.Sh DESCRIPTION
38The
39.Fn pr_setrlimit
40function injects the
41.Xr setrlimit 2
42system call into the target process
43.Fa P
44by means of the agent LWP.
45If the process handle
46.Fa P
47is the value
48.Dv NULL
49then this will be equivalent to calling
50.Xr setrlimit 2
51on the currently running process.
52.Pp
53The arguments
54.Fa resource
55and
56.Fa rlp
57have the same meaning as in
58.Xr setrlimit 2 .
59See
60.Xr setrlimit 2
61for the full description and purpose of the
62.Sy setrlimit
63system call and its arguments.
64.Pp
65The
66.Fn pr_setrlimit
67function only works on active processes.
68Process handles that correspond to core files, zombie processes, or ELF objects
69do not support system call injection.
70.Pp
71The
72.Fn pr_setrlimit64
73function is equivalent to
74.Fn pr_setrlimit ;
75however, rather than having the rlimit information be subject to the data model
76of the target process, they always provide 64-bit rlimit information.
77See
78.Xr lf64 7
79for more information.
80.Sh RETURN VALUES
81Upon successful completion, the
82.Fn pr_setrlimit
83function's return value is that described in
84.Xr setrlimit 2 .
85Otherwise,
86.Sy -1
87is returned and
88.Sy errno
89is set to
90.Er ENOSYS
91to indicate that the system call could not be injected.
92.Sh ERRORS
93For the full list of errors see the
94.Sy ERRORS
95section in
96.Xr setrlimit 2 .
97.Pp
98The
99.Fn pr_setrlimit
100function will fail if:
101.Bl -tag -width Er
102.It Er ENOSYS
103An error occurred while trying to invoke the agent LWP and inject a
104system call in the process handle
105.Fa P
106or the process handle
107.Fa P
108does not support system call injection.
109.El
110.Sh INTERFACE STABILITY
111.Sy Uncommitted
112.Sh MT-LEVEL
113See
114.Sy LOCKING
115in
116.Xr libproc 3LIB .
117.Sh SEE ALSO
118.Xr setrlimit 2 ,
119.Xr libproc 3LIB ,
120.Xr proc 5 ,
121.Xr lf64 7
122