Print this page
12046 Provide /proc/<PID>/fdinfo/
*** 26,35 ****
--- 26,36 ----
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
/*
* Copyright 2018 Joyent, Inc.
+ * Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
*/
#ifndef _SYS_PROC_PRDATA_H
#define _SYS_PROC_PRDATA_H
*** 129,138 ****
--- 130,141 ----
PR_WATCH, /* /proc/<pid>/watch */
PR_CURDIR, /* /proc/<pid>/cwd */
PR_ROOTDIR, /* /proc/<pid>/root */
PR_FDDIR, /* /proc/<pid>/fd */
PR_FD, /* /proc/<pid>/fd/nn */
+ PR_FDINFODIR, /* /proc/<pid>/fdinfo */
+ PR_FDINFO, /* /proc/<pid>/fdinfo/nn */
PR_OBJECTDIR, /* /proc/<pid>/object */
PR_OBJECT, /* /proc/<pid>/object/xxx */
PR_LWPDIR, /* /proc/<pid>/lwp */
PR_LWPIDDIR, /* /proc/<pid>/lwp/<lwpid> */
PR_LWPCTL, /* /proc/<pid>/lwp/<lwpid>/lwpctl */
*** 286,296 ****
* list_t listhead;
* struct my *mp;
*
* pr_iol_initlist(&listhead, sizeof (*mp), n);
* while (whatever) {
! * mp = pr_iol_newbuf(&listhead, sizeof (*mp);
* ...
* error = ...
* }
*
* When done, depending on whether copyout() or uiomove() is supposed to
--- 289,299 ----
* list_t listhead;
* struct my *mp;
*
* pr_iol_initlist(&listhead, sizeof (*mp), n);
* while (whatever) {
! * mp = pr_iol_newbuf(&listhead, sizeof (*mp));
* ...
* error = ...
* }
*
* When done, depending on whether copyout() or uiomove() is supposed to
*** 311,320 ****
--- 314,324 ----
extern void pr_iol_initlist(list_t *head, size_t itemsize, int nitems);
extern void * pr_iol_newbuf(list_t *head, size_t itemsize);
extern int pr_iol_copyout_and_free(list_t *head, caddr_t *tgt, int errin);
extern int pr_iol_uiomove_and_free(list_t *head, uio_t *uiop, int errin);
+ extern void pr_iol_freelist(list_t *);
#if defined(_SYSCALL32_IMPL)
extern int prwritectl32(vnode_t *, struct uio *, cred_t *);
extern void prgetaction32(proc_t *, user_t *, uint_t, struct sigaction32 *);
*** 345,354 ****
--- 349,360 ----
extern int pr_nice(proc_t *, int, cred_t *);
extern void pr_setentryexit(proc_t *, sysset_t *, int);
extern int pr_set(proc_t *, long);
extern int pr_unset(proc_t *, long);
extern void pr_sethold(prnode_t *, sigset_t *);
+ extern file_t *pr_getf(proc_t *, uint_t, short *);
+ extern void pr_releasef(proc_t *, uint_t);
extern void pr_setfault(proc_t *, fltset_t *);
extern int prusrio(proc_t *, enum uio_rw, struct uio *, int);
extern int prwritectl(vnode_t *, struct uio *, cred_t *);
extern int prlock(prnode_t *, int);
extern void prunmark(proc_t *);