| LIBPROC(3LIB) | Interface Libraries | LIBPROC(3LIB) | 
libproc — process
    control library
Process Control Library (libproc, -lproc)
  
  #include <libproc.h>
The libproc library provides consumers a
    general series of interfaces to inspect and control both live processes and
    core files. It is intended for introspection tools such as debuggers by
    providing a high-level interface to the /proc file system
    (proc(5)).
The libproc library provides interfaces
    that focus on:
The libproc library can be used to
    manipulate running processes and to create new ones. To manipulate an
    existing process first
    grab it
    with the
    Pgrab()
    function. A process is generally stopped as a side effect of grabbing it.
    Callers must exercise caution, as if they do not use the library correctly,
    or they terminate unexpectedly, a process may remain stopped.
Unprivileged users may only grab their own processes. Users with the privilege {PRIV_PROC_OWNER} may manipulate processes that they do not own; however, additional restrictions as described in privileges(7) apply.
In addition, the
    Pcreate()
    and Pxcreate() functions may be used to create
    processes which are always controlled by the library.
The libproc library has the ability to
    open and interpret core files produced by processes on the system. Process
    core dump generation is controlled by the
    coreadm(8) command. In addition, the
    library has the ability to understand and interpret core dumps generated by
    Linux kernel and can provide a subset of its functionality on such core
    files, provided the original binary is also present.
Not all functions in the libproc library
    are valid for core files. In general, none of the commands which manipulate
    the current state of a process or thread or that try to force system calls
    on a victim process will work. Furthermore several of the information and
    iteration interfaces are limited based on the data that is available in the
    core file. For example, if the core file is of a process that omits the
    frame pointer, the ability to iterate the stack will be limited.
Use the
    Pgrab_core()
    or Pfgrab_core() function to open a core file. Use
    the Pgrab_file() function to open an ELF object
    file. This is useful for obtaining information stored in ELF headers and
    sections.
Many of the operations in the library rely on debug information being present in a process and its associated libraries. The library leverages symbol table information, CTF data (ctf(5)) sections, and frame unwinding information based on the use of an ABI defined frame pointer, e.g. %ebp and %rbp on x86 systems.
Some software providers strip programs of this information or build their executables such that the information will not be present in a core dump. To deal with this fact, the library is able to consume information that is not present in the core file or the running process. It can both consume it from the underlying executable and it also supports finding it from related ELF objects that are linked to it via the .gnu_debuglink and the .note.gnu.build-id ELF sections.
The libproc library provides the ability
    to iterate over the following aspects of a process or core file:
The libproc library allows the caller to
    force system calls to be executed in the context of the running process.
    This can be used both as a tool for introspection, allowing one to get
    information outside its current context as well as performing modifications
    to a process.
These functions run in the context of the calling process. This is often an easier way of getting non-exported information about a process from the system. For example, the pfiles(1) command uses this interface to get more detailed information about a process's open file descriptors, which it would not have access to otherwise.
The shared object libproc.so.1 provides the public interfaces defined below. See Intro(3) for additional information on shared object interfaces. Functions are organized into categories that describe their purpose. Individual functions are documented in their own manual pages.
The following routines are related to creating library handles, grabbing cores, processes, and threads, and releasing those resources.
| Lfree | Lgrab | 
| Lgrab_error | Pcreate | 
| Pcreate_agent | Pcreate_callback | 
| Pcreate_error | Pdestroy_agent | 
| Pfgrab_core | Pfree | 
| Pgrab | Pgrab_core | 
| Pgrab_error | Pgrab_file | 
| Pgrab_ops | Prelease | 
| Preopen | Pxcreate | 
The following routines obtain information about a process and allow manipulation of the process itself.
The following routines obtain information about a thread and allow manipulation of the thread itself.
| Plwp_alt_stack | Plwp_freexregs | 
| Plwp_getfpregs | Plwp_getname | 
| Plwp_getpsinfo | Plwp_getregs | 
| Plwp_getspymaster | Plwp_main_stack | 
| Plwp_getxregs | Plwp_setfpregs | 
| Plwp_setregs | Plwp_setxregs | 
| Plwp_stack | 
The following routines are used to inject specific system calls and have them run in the context of a process.
These routines are used to iterate over the contents of a process.
The following routines are utilities that are useful to consumers of the library.
The following routines are specific to the x86, 32-bit and 64-bit,
    versions of the libproc library.
| Pldt | proc_get_ldt | 
The following functions are specific to the SPARC, 32-bit and
    64-bit, versions of the libproc library.
| Plwp_getgwindows | 
The following functions are specific to the 64-bit SPARC version
    of the libproc library.
| Plwp_getasrs | Plwp_setasrs | 
Every process handle that exists in
    libproc has a state. In some cases, such as for core
    files, these states are static. In other cases, such as handles that
    correspond to a running process or a created process, these states are
    dynamic and change based on actions taken in the library. The state can be
    obtained with the Pstate(3PROC)
    function.
The various states are:
PS_RUNPS_STOPThe reason a process is stopped may be obtained through the thread's lwpstatus_t structure read directly from /proc or obtained through the Lstatus(3PROC) function.
PS_LOSTPS_UNDEADPS_DEADPS_IDLEMany functions relating to tracing processes, for
    example Psignal(3PROC),
    Psetsignal(3PROC),
    Psetfault(3PROC),
    Psysentry(3PROC), and others,
    mention that they only act upon
    Active Processes.
    This specifically refers to processes whose state are in
    PS_RUN and PS_STOP. Process
    handles in the other states have no notion of settable tracing flags, though
    core files (type PS_DEAD) may have a read-only
    snapshot of their tracing settings available.
The libproc library uses many types that
    come from the /proc file system
    (proc(5)) and the ELF format
    (elf(3ELF)). However, it also defines
    the following types:
struct ps_prochandle
The struct ps_prochandle is
    an opaque handle to the library and the core element of control for a
    process. Consumers obtain pointers to a handle through the use of the
    Pcreate(),
    Pgrab(), and related functions. When a caller is
    done with a handle, then it should call one of the
    Pfree() and Prelease()
    functions to relinquish the handle, release associated resources, and
    potentially set the process to run again.
struct ps_lwphandle
The struct ps_lwphandle is
    analogous to the struct ps_prochandle, but it
    represents the control of an individual thread, rather than a process.
    Consumers obtain pointers to a handle through the
    Lgrab()
    function and relinquish it with the Lfree()
    function.
core_content_t
The core_content_t is a value which describes the various content types of core files. These are used in functions such as Pcontent(3PROC) and Pgcore(3PROC) to describe and control the types of content that get included. Various content types may be included together through a bitwise-inclusive-OR. The default system core contents are controlled with the coreadm(8) tool. The following table lists the current set of core contents in the system, though the set may increase over time. The string after the macro is the human readable string that corresponds with the constant and is used by coreadm(8), proc_content2str(3PROC), and proc_str2content(3PROC).
CC_CONTENT_STACK
    ("stack")CC_CONTENT_ANON.CC_CONTENT_HEAP
    ("heap")CC_CONTENT_SHFILE
    ("shfile")MAP_SHARED flag).CC_CONTENT_SHANNON
    ("shannon")MAP_SHARED and MAP_ANON
      flags).CC_CONTENT_RODATA
    ("rodata")CC_CONTENT_ANON
    ("anon")CC_CONTENT_SHM
    ("shm")CC_CONTENT_ISM
    ("ism")CC_CONTENT_DISM
    ("dism")CC_CONTENT_CTF
    ("ctf")CC_CONTENT_SYMTAB
    ("symtab")CC_CONTENT_ALL
    ("all")CC_CONTENT_ALL should validate all the expected
      bits are set by an expression such as (c &
      CC_CONTENT_ALL) == CC_CONTENT_ALL.CC_CONTENT_NONE
    ("none")CC_CONTENT_DEFAULT
    ("default")CC_CONTENT_STACK,
      CC_CONTENT_HEAP,
      CC_CONTENT_ISM,
      CC_CONTENT_DISM,
      CC_CONTENT_SHM,
      CC_CONTENT_SHANON,
      CC_CONTENT_TEXT,
      CC_CONTENT_DATA,
      CC_CONTENT_RODATA,
      CC_CONTENT_ANON,
      CC_CONTENT_CTF, and
      CC_CONTENT_SYMTAB. Note that the default may
      change. Comparisons with CC_CONTENT_DEFAULT should validate that all of
      the expected bits are set with an expression such as
      (c & CC_CONTENT_DEFAULT) == CC_CONTENT_DEFAULT.CC_CONTENT_INVALIDprfdinfo_t
The prfdinfo_t structure
    is used with the
    Pfdinfo_iter(),
    proc_fdwalk(),
    proc_fdinfowalk() and
    proc_get_fdinfo() functions and describes
    information about a file descriptor. The structure is defined as
  follows:
typedef struct prfdinfo {
    int		pr_fd;		/* file descriptor number */
    mode_t	pr_mode;	/* (see st_mode in stat(2)) */
    ino64_t	pr_ino;		/* inode number */
    off64_t	pr_size;	/* file size */
    off64_t	pr_offset;	/* current offset */
    uid_t	pr_uid;		/* owner's user id */
    gid_t	pr_gid;		/* owner's group id */
    major_t	pr_major;	/* major number of device */
    minor_t	pr_minor;	/* minor number of device */
    major_t	pr_rmajor;	/* major number (if special file) */
    minor_t	pr_rminor;	/* minor number (if special file) */
    int		pr_fileflags;	/* (see F_GETXFL in fcntl(2)) */
    int		pr_fdflags;	/* (see F_GETFD in fcntl(2)) */
    short	pr_locktype;	/* (see F_GETLK in fcntl(2)) */
    pid_t	pr_lockpid;	/* process holding file lock */
    int		pr_locksysid;	/* sysid of locking process */
    pid_t	pr_peerpid;	/* peer process (socket, door) */
    int		pr_filler[25];	/* reserved for future use */
    char	pr_peername[PRFNSZ];	/* peer process name */
#if    __STDC_VERSION__ >= 199901L
    uint8_t	pr_misc[];	/* self describing structures */
else
    uint8_t	pr_misc[1];	/* self describing structures */
#endif
} prfdinfo_t;
The structure has similar information to that found in the stat structure that's used as part of the stat family of system calls, defined in stat(2). The member pr_fd contains the number of the file descriptor of the file. The members pr_mode, pr_uid, pr_gid, pr_ino, and pr_size are the same as the members st_mode, st_uid, st_gid, st_ino, and st_size in the stat structure.
The pr_major and pr_minor members contain the major and minor numbers of the device containing the directory for this file. This is similar to the st_dev member of the stat structure, except that it is broken out into its major and minor components. The pr_rmajor and pr_rminor members are similar in spirit to pr_major and pr_minor; however, they are equivalent to the st_rdev member of the stat structure and thus have meaning for special character and block files.
The pr_offset member contains the current
    seek offset of the file descriptor. The pr_fileflags
    and pr_fdflags members contain the flags that would
    have been returned by a call to
    fcntl(2) with the arguments
    F_GETXFL and F_GETFD
    respectively.
The pr_locktype,
    pr_lockpid, and pr_locksysid
    contain the information that would have been returned by a call to
    fcntl(2) with an argument of
    F_GETLK.
The pr_peerpid and pr_peername members contain the process ID and name of any peer endpoint of a connection-oriented socket or stream fd. This information is the same as that which would be returned by a call to getpeerucred(3C)
The pr_misc member contains miscellaneous additional data relating to the file descriptor. The format of these data is described in proc(5).
prsyminfo_t
The prsyminfo_t
    structure is used with the various symbol look up functions
    Pxlookup_by_name(),
    Pxlookup_by_addr(), and
    Pxlookup_by_addr_resolved() which describes
    additional information about a symbol. The structure is defined as
  follows:
typedef struct prsyminfo {
        const char      *prs_object;            /* object name */
        const char      *prs_name;              /* symbol name */
        Lmid_t          prs_lmid;               /* link map id */
        uint_t          prs_id;                 /* symbol id */
        uint_t          prs_table;              /* symbol table id */
} prsyminfo_t;
The member prs_object points to a string that contains the name of the object file, if known, that the symbol comes from. The member prs_name points to the name of the symbol, if known. This may be unknown due to a stripped binary that contains no symbol table. The member prs_lmid indicates the link map identifier that the symbol was found on. For more information on link map identifiers refer to the Linker and Libraries Guide and dlopen(3C).
The members prs_id and
    prs_table can be used to determine both the symbol
    table that the entry came from and which entry in the table it corresponds
    to. If the value of prs_table is
    PR_SYMTAB then it came from the ELF standard symbol
    table. However, if it is instead PR_DYNSYM, then
    that indicates that it comes from the process's dynamic section.
proc_lwp_f
The proc_lwp_f is a
    function pointer type that is used with the
    Plwp_iter()
    function. It is defined as typedef
    int
    proc_lwp_f(void
    *, const lwpstatus_t *);. The first argument is
    a pointer to an argument that the user specifies, while the second has the
    thread's status information and is defined in
    proc(5). For additional information on
    using this type, see
    Plwp_iter(3PROC).
proc_lwp_all_f
The proc_lwp_all_f is a
    function pointer type that is used with the
    Plwp_iter_all()
    function. It is defined as typedef
    int
    proc_lwp_all_f(void
    *, const lwpstatus_t *, const
    lwpsinfo_t *);. The first argument is a pointer to an argument that
    the user specifies. The second and third arguments contain the thread's
    status and thread-specific ps(1)
    information respectively. Both structures are defined in
    proc(5). For additional information on
    using this type, see
    Plwp_iter_all(3PROC).
proc_fdinfowalk_f
The proc_fdinfowalk_f
    is a function pointer type that is used with the
    proc_fdinfowalk()
    function to walk the miscellaneous data items contained within a
    prfdinfo_t structure. It is defined as
    typedef int
    proc_fdinfowalk_f(uint_t,
    const void *, size_t,
    void *);. The first argument contains the type of the
    miscellaneous information being presented, the second and third provide a
    pointer to the associated data and the length of that data. The final
    argument is a pointer to an argument that the user specifies. For more
    information on using this, see
    proc_fdinfowalk(3PROC).
proc_fdwalk_f
The proc_fdwalk_f is a
    function pointer type that is used with the
    proc_fdwalk()
    function. It is defined as typedef
    int
    proc_fdwalk_f(const
    prfdinfo_t *, void *);. The first argument
    contains the file descriptor information. The
    prfdinfo_t
    structure is defined in proc(5). The
    final argument is a pointer to an argument that the user specifies. For more
    information on using this, see
    proc_fdwalk(3PROC).
proc_walk_f
The proc_walk_f is a function
    pointer type that is used with the
    proc_walk()
    function. It is defined as typedef
    int
    proc_walk_f(psinfo_t
    *, lwpsinfo_t *, void *);.
    The first argument contains the process
    ps(1) information and the second argument
    contains the representative thread's ps(1)
    information. Both structures are defined in
    proc(5). The final argument is a pointer
    to an argument that the user specifies. For more information on using this,
    see proc_walk(3PROC).
proc_map_f
The proc_map_f is a
    function pointer type that is used with the
    Pmapping_iter(),
    Pmapping_iter_resolved(),
    Pobject_iter(), and
    Pobject_iter_resolved() functions. It is defined as
    typedef int
    proc_map_f(void
    *, const prmap_t *, const char
    *);. The first argument is a pointer to an argument that the user
    specifies. The second argument is describes the mapping information and is
    defined in proc(5). The final argument
    contains the name of the mapping or object file in question. For additional
    information on using this type, see
    Pmapping_iter(3PROC).
proc_env_f
The proc_env_f is a
    function pointer type that is used with the
    Penv_iter()
    function. It is defined as typedef
    int
    proc_env_f(void
    *, struct ps_prochandle *,
    uintptr_t, const char *);. The
    first argument is a pointer to an argument that the user specifies. The
    second argument is a pointer to the struct
    ps_prochandle that the callback was passed to. The third argument is
    the address of the environment variable in the process. The fourth argument
    is the environment variable. Values in the environment follow the convention
    of the form
    variable=value.
    For more information on environment variables see
    exec(2) and
    environ(7). For additional
    information on using this type, see
    Penv_iter(3PROC).
proc_sym_f
The proc_sym_f is a
    function pointer type that is used with the
    Psmbol_iter(),
    Psymbol_iter_by_addr(),
    Psymbol_iter_by_name(), and
    Psymbol_iter_by_lmid() functions. It is defined as
    typedef int
    proc_sym_f(void
    *, const GElf_Sym *, const char
    *);. The first argument is a pointer to an argument that the user
    supplies. The second argument is a pointer to the ELF symbol information in
    a 32-bit and 64-bit neutral form. See
    elf(3ELF) and
    gelf(3ELF) for more information on
    it. The final argument points to a character string that has the name of the
    symbol. For additional information on using this type, see
    Psymbol_iter(3PROC),
    Psymbol_iter_by_addr(3PROC),
    Psymbol_iter_by_name(3PROC),
    and
    Psymbol_iter_by_lmid(3PROC).
proc_xsym_f
The proc_xsym_f is a
    function pointer type that is used with the
    Pxsymbol_iter()
    function. It is defined as typedef
    int
    proc_xsym_f(void
    *, const GElf_Sym *, const char
    *, const prsyminfo_t *);. The first three
    arguments are identical to those of proc_sym_f. The
    final argument contains additional information about the symbol itself. The
    members of the prsyminfo_t are defined earlier in this
    section. For additional information on using this type, see
    Pxsymbol_iter(3PROC).
proc_stack_f
The proc_stack_f is a
    function pointer type that is used with the
    Pstack_iter()
    function. It is defined as typedef
    int
    proc_stack_f(void
    *, prgregset_t, uint_t,
    const long *);. The first argument is a pointer to an
    argument that the user specifies. The second argument's contents are
    platform specific. The registers that contain stack information, usually the
    stack pointer and frame pointer, will be filled in to point to an entry. The
    prgregset_t is defined in
    proc(5).
The third argument contains the number of arguments to the current stack frame and the fourth argument contains an array of addresses that correspond to the arguments to that stack function. The value of the third argument dictates the number of entries in the fourth argument. For additional information on using this type, see Pstack_iter(3PROC).
proc_fdinfo_f
The proc_fdinfo_f is a
    function pointer type that is used with the
    Pfdinfo_iter()
    function. It is defined as typedef
    int
    proc_fdinfo_f(void
    *, prfdinfo_t *);. The first argument is a
    pointer to an argument that the user specifies. The second argument contains
    information about an open file descriptor. The members of the
    prfdinfo_t are defined earlier in this section. For
    additional information on using this type, see
    Pfdinfo_iter(3PROC).
When working with live processes, whether from the Pgrab(3PROC) or Pcreate(3PROC) family of functions, there are some additional considerations. Importantly, if a process calls any of the exec(2) suite of functions, much of the state information that is obtained, particularly that about mappings in the process will be invalid. Callers must ensure that they call Preset_maps(3PROC) when they hold a process handle across an exec. In addition, users of the library should familiarize themselves with the PROGRAMMING NOTES section of the proc(5) manual page, which discusses issues of privileges and security.
The library provides a means for obtaining additional debugging
    information. The output itself is not part of the
    libproc library's stable interface. Setting the
    environment variable LIBPROC_DEBUG to some value
    will print information to standard error. For example,
    LIBPROC_DEBUG=please.
Most functions operate on a handle to a process in the form of a
    struct ps_prochandle *. Unless otherwise indicated,
    the library does not provide any synchronization for different routines that
    are operating on the
    same
    libproc library handle. It is up to the caller to
    ensure that only a single thread is using a handle at any given time.
    Multiple threads may call libproc library routines
    at the same time as long as each thread is using a different handle.
Each individual function notes its MT-Level section. The MT-Level of a routine that matches the above description will refer to this manual page. If it does not, then it refers to the standard attributes in attributes(7).
While the library is considered an uncommitted interface, and is still evolving, changes that break compatibility have been uncommon and this trend is expected to continue. It is documented to allow consumers, whether part of illumos or outside of it, to understand the library and make use of it with the understanding that changes may occur which break both source and binary compatibility.
gcore(1), mdb(1), proc(1), ps(1), exec(2), fcntl(2), stat(2), Intro(3), dlopen(3C), elf(3ELF), ctf(5), proc(5), attributes(7), environ(7), privileges(7), coreadm(8)
Linkers and Libraries Guide.
Lfree(3PROC), Lgrab(3PROC), Lgrab_error(3PROC), Pcreate(3PROC), Pcreate_agent(3PROC), Pcreate_callback(3PROC), Pcreate_error(3PROC), Pdestroy_agent(3PROC), Pfgrab_core(3PROC), Pfree(3PROC), Pgrab(3PROC), Pgrab_core(3PROC), Pgrab_error(3PROC), Pgrab_file(3PROC), Pgrab_ops(3PROC), Prelease(3PROC), Preopen(3PROC), Pxcreate(3PROC)
Paddr_to_ctf(3PROC), Paddr_to_loadobj(3PROC), Paddr_to_map(3PROC), Paddr_to_text_map(3PROC), Pasfd(3PROC), Pclearfault(3PROC), Pclearsig(3PROC), Pcontent(3PROC), Pcred(3PROC), Pctlfd(3PROC), Pcwd(3PROC), Pcwd_free(3PROC), Pdelbkpt(3PROC), Pdelwapt(3PROC), Pdstop(3PROC), Pexecname(3PROC), Pfault(3PROC), Pfgcore(3PROC), Pgcore(3PROC), Pgetareg(3PROC), Pgetauxval(3PROC), Pgetauxvec(3PROC), Pgetenv(3PROC), Pisprocdir(3PROC), Pissyscall_prev(3PROC), Plmid(3PROC), Plmid_to_loadobj(3PROC), Plmid_to_map(3PROC), Plookup_by_addr(3PROC), Plookup_by_name(3PROC), Plwp_alt_stack(3PROC), Plwp_getfpregs(3PROC), Plwp_getpsinfo(3PROC), Plwp_getregs(3PROC), Plwp_getspymaster(3PROC), Plwp_main_stack(3PROC), Plwp_setfpregs(3PROC), Plwp_setregs(3PROC), Plwp_stack(3PROC), Pname_to_ctf(3PROC), Pname_to_loadobj(3PROC), Pname_to_map(3PROC), Pobjname(3PROC), Pobjname_resolved(3PROC), Pplatform(3PROC), Ppltdest(3PROC), Ppriv(3PROC), Ppsinfo(3PROC), Pputareg(3PROC), Prd_agent(3PROC), Pread(3PROC), Pread_string(3PROC), Preset_maps(3PROC), Psecflags(3PROC), Psetbkpt(3PROC), Psetcred(3PROC), Psetfault(3PROC), Psetflags(3PROC), Psetpriv(3PROC), Psetrun(3PROC), Psetsignal(3PROC), Psetsysentry(3PROC), Psetsysexit(3PROC), Psetwapt(3PROC), Psetzoneid(3PROC), Psignal(3PROC), Pstate(3PROC), Pstatus(3PROC), Pstop(3PROC), Pstopstatus(3PROC), Psync(3PROC), Psysentry(3PROC), Psysexit(3PROC), Puname(3PROC), Pupanic(3PROC), Pupanic_free(3PROC), Punsetflags(3PROC), Pupdate_maps(3PROC), Pupdate_syms(3PROC), Pwait(3PROC), Pwrite(3PROC), Pxecbkpt(3PROC), Pxecwapt(3PROC), Pxlookup_by_addr(3PROC), Pxlookup_by_addr_resolved(3PROC), Pxlookup_by_name(3PROC), Pzonename(3PROC), Pzonepath(3PROC), Pzoneroot(3PROC)
Lalt_stack(3PROC), Lclearfault(3PROC), Lclearsig(3PROC), Lctlfd(3PROC), Ldstop(3PROC), Lgetareg(3PROC), Lmain_stack(3PROC), Lprochandle(3PROC), Lpsinfo(3PROC), Lputareg(3PROC), Lsetrun(3PROC), Lstack(3PROC), Lstate(3PROC), Lstatus(3PROC), Lstop(3PROC), Lsync(3PROC), Lwait(3PROC), Lxecbkpt(3PROC), Lxecwapt(3PROC)
pr_access(3PROC), pr_close(3PROC), pr_creat(3PROC), pr_door_info(3PROC), pr_exit(3PROC), pr_fcntl(3PROC), pr_fstat(3PROC), pr_fstat64(3PROC), pr_fstatvfs(3PROC), pr_getitimer(3PROC), pr_getpeername(3PROC), pr_getpeerucred(3PROC), pr_getprojid(3PROC), pr_getrctl(3PROC), pr_getrlimit(3PROC), pr_getrlimit64(3PROC), pr_getsockname(3PROC), pr_getsockopt(3PROC), pr_gettaskid(3PROC), pr_getzoneid(3PROC), pr_ioctl(3PROC), pr_link(3PROC), pr_llseek(3PROC), pr_lseek(3PROC), pr_lstat(3PROC), pr_lstat64(3PROC), pr_memcntl(3PROC), pr_meminfo(3PROC), pr_mmap(3PROC), pr_munmap(3PROC), pr_open(3PROC), pr_processor_bind(3PROC), pr_rename(3PROC), pr_setitimer(3PROC), pr_setrctl(3PROC), pr_setrlimit(3PROC), pr_setrlimit64(3PROC), pr_settaskid(3PROC), pr_sigaction(3PROC), pr_stat(3PROC), pr_stat64(3PROC), pr_statvfs(3PROC), pr_unlink(3PROC), pr_waitid(3PROC),
Penv_iter(3PROC), Plwp_iter(3PROC), Plwp_iter_all(3PROC), Pmapping_iter(3PROC), Pmapping_iter_resolved(3PROC), Pobject_iter(3PROC), Pobject_iter_resolved(3PROC), Pstack_iter(3PROC), Psymbol_iter(3PROC), Psymbol_iter_by_addr(3PROC), Psymbol_iter_by_lmid(3PROC), Psymbol_iter_by_name(3PROC), Pxsymbol_iter(3PROC), Pfdinfo_iter(3PROC)
Perror_printf(3PROC), proc_arg_grab(3PROC), proc_arg_psinfo(3PROC), proc_arg_xgrab(3PROC), proc_arg_xpsinfo(3PROC), proc_content2str(3PROC), proc_dmodelname(3PROC), proc_finistdio(3PROC), proc_fltname(3PROC), proc_fltset2str(3PROC), proc_flushstdio(3PROC), proc_get_auxv(3PROC), proc_get_cred(3PROC), proc_get_fdinfo(3PROC), proc_get_lwpsinfo(3PROC), proc_get_lwpstatus(3PROC), proc_get_priv(3PROC), proc_get_psinfo(3PROC), proc_get_status(3PROC), proc_initstdio(3PROC), proc_lwp_in_set(3PROC), proc_lwp_range_valid(3PROC), proc_signame(3PROC), proc_sigset2str(3PROC), proc_str2content(3PROC), proc_str2flt(3PROC), proc_str2fltset(3PROC), proc_str2sig(3PROC), proc_str2sigset(3PROC), proc_str2sys(3PROC), proc_str2sysset(3PROC), proc_sysname(3PROC), proc_sysset2str(3PROC), proc_unctrl_psinfo(3PROC), proc_fdinfowalk(3PROC), proc_fdwalk(3PROC), proc_walk(3PROC)
Pldt(3PROC), proc_get_ldt(3PROC),
Plwp_getgwindows(3PROC), Plwp_getxregs(3PROC), Plwp_setxregs(3PROC),
| May 10, 2024 | OmniOS |