| .\" |
| .\" This file and its contents are supplied under the terms of the |
| .\" Common Development and Distribution License ("CDDL"), version 1.0. |
| .\" You may only use this file in accordance with the terms of version |
| .\" 1.0 of the CDDL. |
| .\" |
| .\" A full copy of the text of the CDDL should have accompanied this |
| .\" source. A copy of the CDDL is also available via the Internet at |
| .\" http://www.illumos.org/license/CDDL. |
| .\" |
| .\" |
| .\" Copyright 2015 Joyent, Inc. |
| .\" |
| .Dd May 11, 2016 |
| .Dt PSYSENTRY 3PROC |
| .Os |
| .Sh NAME |
| .Nm Psysentry , |
| .Nm Psysexit |
| .Nd set system call entry and exit actions |
| .Sh LIBRARY |
| .Lb libproc |
| .Sh SYNOPSIS |
| .In libproc.h |
| .Ft int |
| .Fo Psysentry |
| .Fa "struct ps_prochandle *P" |
| .Fa "int which" |
| .Fa "int stop" |
| .Fc |
| .Ft int |
| .Fo Psysexit |
| .Fa "struct ps_prochandle *P" |
| .Fa "int which" |
| .Fa "int stop" |
| .Fc |
| .Sh DESCRIPTION |
| The |
| .Fn Psysentry |
| and |
| .Fn Psysexit |
| functions controls what actions the process handle |
| .Fa P |
| should take upon executing a system call. |
| .Pp |
| The system allows a process to be stopped on both entry and exit of a |
| system call. |
| For information on the state of the process when it is stopped due to system |
| call tracing, see the |
| .Sy PCSENTRY |
| and |
| .Sy PCSEXIT |
| sections of |
| .Xr proc 4 . |
| .Pp |
| The value of the |
| .Fa stop |
| parameter controls whether or not the system call listed in |
| .Fa which |
| causes the process to stop. |
| A value of non-zero indicates the process should stop; |
| a value of 0 indicates it should not. |
| .Pp |
| The value of |
| .Fa which |
| indicates which system call the change applies to. |
| A value of 0 applies to all system calls. |
| Note, the system does not supply a stable mapping from system call names to |
| identifiers. |
| .Pp |
| These functions only apply to actively running processes. |
| They do not function on handles that refer to core files, zombie processes, |
| or ELF objects. |
| .Sh RETURN VALUES |
| Upon successful completion, the |
| .Fn Psysentry |
| and |
| .Fn Psysexit |
| functions return the previous disposition of the system call -- |
| .Sy 0 |
| if it was not set to stop and |
| .Sy 1 |
| if it was -- |
| and the system call state is updated. |
| Otherwise, |
| .Sy -1 |
| is returned, |
| .Dv errno |
| is updated with the error that occurred, and the system call state is |
| not updated. |
| .Sh ERRORS |
| The |
| .Fn Psysentry |
| and |
| .Fn Psysexit |
| functions will fail if: |
| .Bl -tag -width Er |
| .It Er EINVAL |
| The value of |
| .Fa which |
| is invalid, e.g. it is less than zero or greater than the largest defined |
| system call. |
| .It Er ENOENT |
| The handle |
| .Fa P |
| refers to a process that is a zombie, a core file, or an ELF object. |
| .El |
| .Sh INTERFACE STABILITY |
| .Sy Uncommitted |
| .Pp |
| Note, while the |
| .Fn Psysentry |
| and |
| .Fn Psysexit |
| functions are uncommitted, the mapping of system calls to system call |
| numbers is |
| .Sy Not-an-Interface |
| and may change at any time. |
| .Sh MT-LEVEL |
| See |
| .Sy LOCKING |
| in |
| .Xr libproc 3LIB . |
| .Sh SEE ALSO |
| .Xr libproc 3LIB , |
| .Xr proc 4 , |
| .Xr attributes 5 |