freebsd-skq/sys/sys
marcus 7e24637c24 Add support for displaying a process' current working directory, root
directory, and jail directory within procstat.  While this functionality
is available already in fstat, encapsulating it in the kern.proc.filedesc
sysctl makes it accessible without using kvm and thus without needing
elevated permissions.

The new procstat output looks like:

  PID COMM               FD T V FLAGS    REF  OFFSET PRO NAME
  76792 tcsh              cwd v d --------   -       - -   /usr/src
  76792 tcsh             root v d --------   -       - -   /
  76792 tcsh               15 v c rw------  16    9130 -   -
  76792 tcsh               16 v c rw------  16    9130 -   -
  76792 tcsh               17 v c rw------  16    9130 -   -
  76792 tcsh               18 v c rw------  16    9130 -   -
  76792 tcsh               19 v c rw------  16    9130 -   -

I am also bumping __FreeBSD_version for this as this new feature will be
used in at least one port.

Reviewed by:	rwatson
Approved by:	rwatson
2008-02-09 05:16:26 +00:00
..
_bus_dma.h Break out typedefs from bus_dma.h to _bus_dma.h so that we can get the 2006-09-03 00:26:17 +00:00
_iovec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_lock.h - Re-implement lock profiling in such a way that it no longer breaks 2007-12-15 23:13:31 +00:00
_mutex.h Rename the 'mtx_object', 'rw_object', and 'sx_object' members of mutexes, 2007-03-21 21:20:51 +00:00
_null.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_pthreadtypes.h According to: 2005-05-31 15:18:17 +00:00
_rmlock.h Initial checkin for rmlock (read mostly lock) a multi reader single writer 2007-11-08 14:47:55 +00:00
_rwlock.h Introduce a new rwlocks initialization function: rw_init_flags. 2007-06-26 21:31:56 +00:00
_semaphore.h Const-qualify ksem_timedwait's parameter abstime as it's only passed in. 2005-10-18 11:46:24 +00:00
_sigset.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_sx.h Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
_task.h o eliminate modification of task structures after their run to avoid 2005-04-24 16:52:45 +00:00
_timespec.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
_timeval.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
_types.h Let kernel POSIX timer code and mqueue code to use integer as a resource 2006-03-01 06:29:34 +00:00
aac_ioctl.h
acct.h Increase precision of time values in the process accounting 2007-05-22 06:51:38 +00:00
acl.h Minor white space tweaks in comments. 2007-03-16 13:39:04 +00:00
agpio.h
aio.h Add aio_fsync() prototype. 2006-03-23 08:47:28 +00:00
alq.h Modify the alq(9) alq_open() API to accept a file creation mode, rather 2005-04-16 12:12:27 +00:00
apm.h Add a partition type for ZFS. 2007-10-21 17:29:06 +00:00
assym.h
ata.h Add the magic word 0 value for CFA compliant devices. 2007-12-16 21:18:13 +00:00
bio.h Add a new I/O request - BIO_FLUSH, which basically tells providers below to 2006-10-31 21:11:21 +00:00
bitstring.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
blist.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
buf.h Cleanup lockmgr interface and exported KPI: 2008-01-24 12:34:30 +00:00
bufobj.h Cylinder group bitmaps and blocks containing inode for a snapshot 2007-01-23 10:01:19 +00:00
bus_dma.h Break out typedefs from bus_dma.h to _bus_dma.h so that we can get the 2006-09-03 00:26:17 +00:00
bus.h Add devctl_process_running() so that power management system driver 2008-01-27 16:06:37 +00:00
callout.h Add the function callout_init_rw() to callout facility in order to use 2007-11-20 00:37:45 +00:00
cdefs.h Eliminate compilation warnings due to the use of non-static inlines 2007-12-09 21:00:36 +00:00
cdio.h Boot away another stackgap (one of the lest ones in linuxlator/i386) by 2005-01-30 08:12:37 +00:00
cdrio.h
chio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
clist.h
clock.h Better naming of fattime conversion functions, they do convert to timespec 2006-10-24 10:27:23 +00:00
condvar.h Rename the cv_*wait*() functions to _cv_*wait*() and change their second 2007-03-21 22:22:13 +00:00
conf.h Add a wrapper function that bound checks writes to the dump device. 2008-01-28 19:04:07 +00:00
cons.h Add a cnputs() function to write a string to the console with 2006-11-01 04:54:51 +00:00
consio.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
copyright.h Update to 2008. 2007-12-26 16:45:35 +00:00
cpu.h Add an interface for drivers to be notified of changes to CPU frequency. 2007-03-26 18:03:29 +00:00
ctype.h
dataacq.h
device_port.h Remove code for pre-4.0 versions of FreeBSD. It is there in prior 2005-01-19 01:31:33 +00:00
devicestat.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
digiio.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dir.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
dirent.h o Re-word a comment. 2006-08-16 09:34:56 +00:00
disk.h Implement three new ioctls that can be used with GEOM provider: 2007-05-05 17:02:19 +00:00
disklabel.h Add a file system type for ZFS (FS_ZFS). 2007-12-08 06:47:48 +00:00
diskmbr.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
diskpc98.h Change DOSPTYP_386BSD to 0xc494. 2005-05-08 11:30:26 +00:00
dkstat.h
domain.h Move definition of UNIX domain socket protosw and domain entries from 2006-08-07 12:02:43 +00:00
dvdio.h
elf32.h Convert types 'Elf{32,64}_Nhdr' into aliases of the generic 'Elf_Note' 2006-10-17 05:43:30 +00:00
elf64.h Convert types 'Elf{32,64}_Nhdr' into aliases of the generic 'Elf_Note' 2006-10-17 05:43:30 +00:00
elf_common.h Add extra visibility definitions. 2007-12-02 00:05:18 +00:00
elf_generic.h Implement ELF symbol versioning using GNU semantics. This code aims 2005-12-18 19:43:33 +00:00
elf.h Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the 2007-11-28 21:54:46 +00:00
endian.h
errno.h Add some missing errnos from POSIX. Nothing in FreeBSD generates 2005-04-02 12:33:28 +00:00
eui64.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
event.h When asked to use kqueue, AIO stores its internal state in the 2008-01-24 17:10:19 +00:00
eventhandler.h - Adds event handlers for process_ctor,process_dtor, process_init, 2007-11-15 14:20:07 +00:00
eventvar.h
exec.h Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input 2005-03-23 08:27:59 +00:00
extattr.h Revert/re-make previous commit in a manner that maintains hyphenation of 2007-03-16 19:18:49 +00:00
fbio.h Grab FBTYPE_NOTSUN3 and use it for FBTYPE_PCIMISC. The value matches 2005-05-21 20:40:51 +00:00
fcntl.h Add a new file descriptor type for IPC shared memory objects and use it to 2008-01-08 21:58:16 +00:00
fdcio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
file.h Add a new file descriptor type for IPC shared memory objects and use it to 2008-01-08 21:58:16 +00:00
filedesc.h Revert UF_OPENING workaround for CURRENT. 2007-05-31 11:51:53 +00:00
filio.h Implement SEEK_DATA and SEEK_HOLE extensions to lseek(2) as found in 2007-04-05 21:10:53 +00:00
firmware.h Cleanup and document the implementation of firmware(9) based on 2007-02-15 17:21:31 +00:00
fnv_hash.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
gmon.h Move the PC_TO_I() and KCOUNT() macros so they aren't GUPROF specific 2006-03-29 18:17:03 +00:00
gpt.h First cut at support for booting a GPT labeled disk via the BIOS bootstrap 2007-10-24 21:33:00 +00:00
hash.h Fix a compiler warning so hash.h can be included in the kernel. This changes 2007-04-09 22:55:14 +00:00
iconv.h Fix panic when loading libiconv.ko on sparc64. 2005-09-05 17:03:40 +00:00
imgact_aout.h Capitalize at the start of sentence. 2005-05-08 02:20:10 +00:00
imgact_elf.h Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure 2005-12-26 21:23:57 +00:00
imgact.h - Change process_exec function handlers prototype to include struct 2006-08-15 12:10:57 +00:00
inflate.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
interrupt.h Bring in the reminaing bits to make interrupt filtering work: 2007-05-06 17:02:50 +00:00
ioccom.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
ioctl_compat.h Increase the verbosity of the warning given when this file is used as 2007-04-27 11:19:05 +00:00
ioctl.h Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
ipc.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ipmi.h Update the ipmi(4) driver: 2006-09-22 22:11:29 +00:00
jail.h Implement functionality I called 'jail services'. 2007-04-05 23:19:13 +00:00
joystick.h Comment typo. 2005-01-07 19:31:43 +00:00
kbio.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
kdb.h Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
kenv.h
kernel.h Add a new kernel startup event for DDB services, which will include DDB 2007-12-25 18:36:43 +00:00
kerneldump.h Define a new kernel dump "architecture", TEXTDUMPMAGIC, which is used 2007-12-26 10:57:35 +00:00
kobj.h Fix typo in a comment: DEFINE_CLASSx => DEFINE_CLASS_x. 2006-08-24 21:09:39 +00:00
kse.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ksem.h Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
kthread.h kthread_exit needs no stinkin argument. 2007-10-26 17:03:22 +00:00
ktr.h Axe KTR_ALQ_MASK now that KTR_WITNESS is off unless you hack an #ifdef 2006-01-25 14:57:23 +00:00
ktrace.h Fix typo in comment. 2005-12-26 22:09:09 +00:00
libkern.h strchr() and strrchr() are already present in the kernel, but with less 2007-04-10 21:42:12 +00:00
limits.h Define MQ_PRIO_MAX, it seems it is the only place 2005-12-02 07:45:28 +00:00
linedisc.h
link_aout.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
link_elf.h Add dl_iterate_phdr function prototype and corresponding dl_phdr_info 2007-04-03 18:33:41 +00:00
linker_set.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
linker.h The kernel linker includes a number of utility functions to look up symbol 2007-12-01 19:24:28 +00:00
lock_profile.h Fix tinderbox on sun4v 2007-12-16 06:07:34 +00:00
lock.h Expand lock class with the "virtual" function lc_assert which will offer 2007-11-18 14:43:53 +00:00
lockf.h Correct typo in comment 2007-05-17 16:03:14 +00:00
lockmgr.h Add WITNESS support to lockmgr locking primitive. 2008-02-06 00:37:14 +00:00
mac.h Update comments in mac.h. 2007-02-06 16:24:57 +00:00
malloc.h Eliminate a stale comment concerning contigmalloc(9). 2007-11-10 19:11:51 +00:00
mbpool.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mbuf.h Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
mchain.h Remove macros 2005-09-19 08:07:18 +00:00
md4.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
md5.h Add definitions for MD5_BLOCK_LENGTH, MD5_DIGEST_LENGTH and 2006-03-15 19:47:12 +00:00
mdioctl.h Rename GEOM class kernel module g_md.ko to geom_md.ko for consistency 2005-11-11 11:31:23 +00:00
memrange.h
mman.h Add a new file descriptor type for IPC shared memory objects and use it to 2008-01-08 21:58:16 +00:00
module.h Add a new module_file() function that returns the linker_file_t associated 2006-04-17 19:44:44 +00:00
mount.h When restoring the mount after umount failed, the MNTK_UNMOUNT flag 2007-09-12 16:31:32 +00:00
mouse.h Spell "Kensington Thinking Mouse" correctly. 2006-12-18 18:48:28 +00:00
mqueue.h Last step to make mq_notify conform to POSIX standard, If the process 2005-11-30 05:12:03 +00:00
msg.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
msgbuf.h up the default msgbuf limit to 64k.. a verbose boot on i386 on modern 2006-09-03 00:33:19 +00:00
mtio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
mutex.h Unify assertion flags for all the main primitives using the LA_* underlying 2007-11-19 23:36:47 +00:00
namei.h Add AUDITVNODE[12] flags to namei(), which cause namei() to audit path 2006-02-05 15:42:01 +00:00
nlist_aout.h
param.h Add support for displaying a process' current working directory, root 2008-02-09 05:16:26 +00:00
pciio.h Add ABI backwards compatibility to the FreeBSD 4/5/6 versions of 2007-10-24 20:51:44 +00:00
pcpu.h Add comment to pc_cp_time. 2007-12-14 22:20:10 +00:00
pioctl.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
pipe.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pmc.h Increment major version to mark the ABI change between RELENG_7 and -HEAD. 2008-01-14 06:33:41 +00:00
pmckern.h Kernel and hwpmc(4) support for callchain capture. 2007-12-07 08:20:17 +00:00
pmclog.h Kernel and hwpmc(4) support for callchain capture. 2007-12-07 08:20:17 +00:00
poll.h
posix4.h Update #includes list. 2006-11-11 16:19:12 +00:00
power.h
priority.h Replace (name) with Henric Vestergaard Draboel since it was clear that 2007-01-08 21:21:45 +00:00
priv.h Replace the last susers calls in netinet6/ with privilege checks. 2008-01-24 08:25:59 +00:00
proc.h - Add THREAD_LOCKPTR_ASSERT() to assert that the thread's lock points at 2008-02-07 06:55:38 +00:00
procfs.h
protosw.h soreceive_generic(), and sopoll_generic(). Add new functions sosend(), 2006-07-24 15:20:08 +00:00
ptio.h
ptrace.h Add members pl_sigmask and pl_siglist into ptrace_lwpinfo to get lwp's 2006-02-06 09:41:56 +00:00
queue.h Remove the non-standard and undocumented STAILQ_REMOVE_HEAD_UNTIL() 2006-10-24 11:19:21 +00:00
random.h
reboot.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
refcount.h Add a simple reference count API that is simply a thin wrapper API around 2005-09-27 18:01:33 +00:00
regression.h
resource.h Move the shared cp_time array (counts %sys, %user, %idle etc) to the 2007-11-29 06:34:30 +00:00
resourcevar.h rufetch and calcru sometimes should be called atomically together. 2007-06-09 21:48:44 +00:00
rman.h Add a convenience function rman_init_from_resource for initializing 2006-06-12 04:06:21 +00:00
rmlock.h Add rm_wowned(9) function to test whether the current thread owns an 2007-11-10 15:06:30 +00:00
rtprio.h Replace (name) with Henric Vestergaard Draboel since it was clear that 2007-01-08 21:21:45 +00:00
runq.h - Change types for necent runq additions to u_char rather than int. 2007-02-08 01:52:25 +00:00
rwlock.h Adaptive spinning in write path with readers and writer starvation avoidance. 2008-02-06 01:02:13 +00:00
sbuf.h
sched.h - Garbage collect unused concurrency functions. 2007-06-12 19:49:39 +00:00
select.h Fix FD_ISSET() on LP64 platforms. The FD_ISSET() function/macro is 2006-01-06 22:12:46 +00:00
selinfo.h Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
sem.h Remove extra forward declare of 'struct sem'. 2006-11-07 18:56:48 +00:00
sema.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
semaphore.h
serial.h o Don't make the SER_INT_* defines visible to userland. They 2006-03-30 17:24:42 +00:00
sf_buf.h Introduce two new options, "CPU private" and "no wait", to sf_buf_alloc(). 2004-11-08 00:43:46 +00:00
shm.h Change the data type of the upper shared memory limits from a signed 2005-08-06 07:20:18 +00:00
sigio.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
signal.h Correct the visibility macro surrounding SIGSYS. 2008-01-19 21:41:31 +00:00
signalvar.h Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
sleepqueue.h Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
smp.h Initial checkin for rmlock (read mostly lock) a multi reader single writer 2007-11-08 14:47:55 +00:00
snoop.h Slightly change the API for the SNPSTTY ioctl so that the userland now 2005-09-18 19:23:35 +00:00
socket.h Give sendfile(2) a SF_SYNC flag which makes it wait until all mbufs 2008-02-03 15:54:41 +00:00
socketvar.h Further clean up sorflush: 2008-02-04 12:25:13 +00:00
sockio.h Revise network interface cloning to take an optional opaque 2006-07-09 06:04:01 +00:00
soundcard.h MFP4 (109713): 2006-11-26 11:55:48 +00:00
stack.h Break out stack(9) from ddb(4): 2007-12-02 20:40:35 +00:00
stat.h Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the 2007-11-28 21:54:46 +00:00
statvfs.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
stddef.h
stdint.h
sun_disklabel.h Support VTOC volume names. This can be useful to distinguish multiple 2005-03-30 09:33:10 +00:00
sx.h - Re-implement lock profiling in such a way that it no longer breaks 2007-12-15 23:13:31 +00:00
syscall.h Regenerate. 2008-01-20 23:44:24 +00:00
syscall.mk Regenerate. 2008-01-20 23:44:24 +00:00
syscallsubr.h Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
sysctl.h Add very basic support for the kernel to export a list of features. Each 2007-12-31 21:12:05 +00:00
sysent.h Fix a couple of issues with the stack limit for 32-bit processes on 64-bit 2007-07-12 18:01:31 +00:00
syslimits.h Use the same ARG_MAX for arm than for the other platforms. I don't see any 2007-05-29 15:14:46 +00:00
syslog.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
sysproto.h Regenerate. 2008-01-20 23:44:24 +00:00
systm.h Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
taskqueue.h Add the following to the taskqueue api: 2006-01-14 01:55:24 +00:00
termios.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
thr.h Add thr_kill2 syscall which sends a signal to a thread in another process. 2007-08-16 05:26:42 +00:00
tiio.h
time.h Add POSIX clock id CLOCK_THREAD_CPUTIME_ID, this can be used to measure 2008-01-18 07:04:42 +00:00
timeb.h
timepps.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
timers.h s/timer_t/int/g 2006-03-01 06:48:31 +00:00
times.h
timespec.h Implement POSIX timers. Current only CLOCK_REALTIME and CLOCK_MONOTONIC 2005-10-23 04:22:56 +00:00
timetc.h
timex.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
tree.h Implement RB_PREV() AND RB_FOREACH_REVERSE(). 2007-12-28 07:03:26 +00:00
tty.h - Don't depend on header pollution to declare struct thread. 2007-12-16 06:12:53 +00:00
ttychars.h Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
ttycom.h Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
ttydefaults.h Restore TTYDEF_LFLAG to set echo bits. 2004-11-03 19:16:55 +00:00
ttydev.h Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
turnstile.h Commit 3/14 of sched_lock decomposition. 2007-06-04 23:51:44 +00:00
types.h Remove _SOLARIS_C_SOURCE compatibility definitions. Unfortunately the 2007-11-28 21:54:46 +00:00
ucontext.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
ucred.h Add padding for anticipated functionality 2007-12-07 01:46:13 +00:00
uio.h Document struct uio.h entries. 2006-11-29 19:08:45 +00:00
umtx.h Add function UMTX_OP_WAIT_UINT, the function causes thread to wait for 2007-11-21 04:21:02 +00:00
un.h Implement unix(4) socket options LOCAL_CREDS and LOCAL_CONNWAIT. 2005-04-13 00:01:46 +00:00
unistd.h Hide SEEK_DATA and SEEK_HOLE under __BSD_VISIBLE. 2007-04-07 18:31:40 +00:00
unpcb.h Remove explicit locking of struct file. 2007-12-30 01:42:15 +00:00
user.h Add support for displaying a process' current working directory, root 2008-02-09 05:16:26 +00:00
utsname.h
uuid.h Add parse_uuid() that creates a binary representation of an UUID from 2005-10-07 13:37:10 +00:00
vmmeter.h Change the management of cached pages (PQ_CACHE) in two fundamental 2007-09-25 06:25:06 +00:00
vnode.h VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
wait.h Since union wait was removed in revision 1.17 (3 years, 5 months ago), 2005-11-10 05:00:20 +00:00
watchdog.h Align the interfaces for the various watchdogs and make the interface 2006-12-15 21:44:49 +00:00