summaryrefslogtreecommitdiffstats
path: root/usr.bin/fstat/fstat.c
Commit message (Collapse)AuthorAgeFilesLines
* Similar to 233760 and 236717, export some more useful info about thejhb2013-05-031-0/+29
| | | | | | | | | | | | | | | kernel-based POSIX semaphore descriptors to userland via procstat(1) and fstat(1): - Change sem file descriptors to track the pathname they are associated with and add a ksem_info() method to copy the path out to a caller-supplied buffer. - Use the fo_stat() method of shared memory objects and ksem_info() to export the path, mode, and value of a semaphore via struct kinfo_file. - Add a struct semstat to the libprocstat(3) interface along with a procstat_get_sem_info() to export the mode and value of a semaphore. - Teach fstat about semaphores and to display their path, mode, and value. MFC after: 2 weeks
* Don't cast inode number or file size down to long or unsigned.gleb2012-05-181-1/+1
| | | | | | | Since ino_t size is about to change to 64-bits, casts to long would truncate 64-bit numbers on 32-bit archs. Sponsored by: Google Summer of Code 2011
* Export some more useful info about shared memory objects to userlandjhb2012-04-011-0/+29
| | | | | | | | | | | | | | | | | | | via procstat(1) and fstat(1): - Change shm file descriptors to track the pathname they are associated with and add a shm_path() method to copy the path out to a caller-supplied buffer. - Use the fo_stat() method of shared memory objects and shm_path() to export the path, mode, and size of a shared memory object via struct kinfo_file. - Add a struct shmstat to the libprocstat(3) interface along with a procstat_get_shm_info() to export the mode and size of a shared memory object. - Change procstat to always print out the path for a given object if it is valid. - Teach fstat about shared memory objects and to display their path, mode, and size. MFC after: 2 weeks
* Backout r230934 which didn't work with unix sockets andpluknet2012-02-271-34/+8
| | | | | | several filesystem layers mounted at the specified path. Pointy hat to: pluknet
* Print the owner process for unix domain sockets when restricted to thepluknet2012-02-031-8/+34
| | | | | | | specified files. PR: bin/143962 MFC after: 2 weeks
* Spelling fixes for usr.bin/uqs2011-12-301-1/+1
|
* Mark global functions and/or variables in fstat(1) static where possible.ed2011-11-061-9/+9
| | | | This allows compilers and static analyzers to more thorough analysis.
* Correct column with for device numbers made in previous change.ed2011-10-011-1/+1
| | | | The device number should be displayed using only five columns -- not eight.
* Get rid of major/minor number distinction.ed2011-09-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | As of FreeBSD 6, devices can only be opened through devfs. These device nodes don't have major and minor numbers anymore. The st_rdev field in struct stat is simply based a copy of st_ino. Simply display device numbers as hexadecimal, using "%#jx". This is allowed by POSIX, since it explicitly states things like the following (example taken from ls(1)): "If the file is a character special or block special file, the size of the file may be replaced with implementation-defined information associated with the device in question." This makes the output of these commands more compact. For example, ls(1) now uses approximately four columns less. While there, simplify the column length calculation from ls(1) by calling snprintf() with a NULL buffer. Don't be afraid; if needed one can still obtain individual major/minor numbers using stat(1).
* uintmax_t is a better type here...imp2011-05-121-1/+1
| | | | Submitted by: avg@
* Fix printf int mismatch on 32-bit architectures...imp2011-05-121-2/+3
|
* - Commit work from libprocstat project. These patches add support for runtimestas2011-05-121-746/+240
| | | | | | | | | | | | | | | | | | | | | | | file and processes information retrieval from the running kernel via sysctl in the form of new library, libprocstat. The library also supports KVM backend for analyzing memory crash dumps. Both procstat(1) and fstat(1) utilities have been modified to take advantage of the library (as the bonus point the fstat(1) utility no longer need superuser privileges to operate), and the procstat(1) utility is now able to display information from memory dumps as well. The newly introduced fuser(1) utility also uses this library and able to operate via sysctl and kvm backends. The library is by no means complete (e.g. KVM backend is missing vnode name resolution routines, and there're no manpages for the library itself) so I plan to improve it further. I'm commiting it so it will get wider exposure and review. We won't be able to MFC this work as it relies on changes in HEAD, which was introduced some time ago, that break kernel ABI. OTOH we may be able to merge the library with KVM backend if we really need it there. Discussed with: rwatson
* Remove the advertising clause from UCB copyrighted files in usr.bin. Thisjoel2010-12-111-4/+0
| | | | | | | | | is in accordance with the information provided at ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change Also add $FreeBSD$ to a few files to keep svn happy. Discussed with: imp, rwatson
* fstat: fix fsid comparison when executed on systems with 64-bit longavg2009-08-201-1/+1
| | | | | | | | | | | | | | | | | | | | | This affects only fstat on zfs and devfs, only on 64-bit systems and only when fsid is greater than 2^31 - 1. When fstat examines a file via stat(2) it takes uint32_t st_dev and assigns to (signed) (64-bit) long fsid, this results in a positive value. When fstat examines opened files it takes int32_t f_fsid.val[0] and assigns to (signed) (64-bit) long fsid, this results in a negative value. So, while initially st_dev and f_fsid.val[0] have the same bit values they get promoted to different 64-bit values because of the signed-vs-unsigned difference. A fix is to use "more natural" positive numbers by introducing intermediate unsigned cast for f_fsid.val[0]. Reviewed by: jhb, lulf Approved by: re (kib) MFC after: 1 week (to stable/7)
* Don't use sys/nfs/rpcv2.h - it is part of the old kernel RPC implementationdfr2009-06-241-1/+0
| | | | and will be removed.
* Integrate the new MPSAFE TTY layer to the FreeBSD operating system.ed2008-08-201-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following: - Improved driver model: The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers. If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver. - Improved hotplugging: With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc). The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly. - Improved performance: One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters. Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING. Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
* Struct cdev is always the member of the struct cdev_priv. When devfskib2008-06-161-3/+2
| | | | | | | | | | | needed to promote cdev to cdev_priv, the si_priv pointer was followed. Use member2struct() to calculate address of the wrapping cdev_priv. Rename si_priv to __si_reserved. Tested by: pho Reviewed by: ed MFC after: 2 weeks
* Fix build of fstat after minor() changes.ed2008-06-121-1/+1
| | | | | | | | | | Even though I ran a `make universe' to see whether the changes to the device minor number macro's broke the build, I was not expecting `make universe' to silently continue if build errors occured, thus causing me to overlook the build error. Approved by: philip (mentor) Pointyhat to: me
* Use _WANT_FILE to make struct file visible from userland. This ispjd2008-05-261-1/+2
| | | | | | similar to _WANT_UCRED and _WANT_PRISON and seems to be much nicer than defining _KERNEL. It is also needed for my sys/refcount.h change going in soon.
* Only output details about the current working directory of a process ifjhb2008-05-071-1/+2
| | | | | | | | | the vnode pointer is not NULL. This avoids spurious warnings in fstat -v output for kernel processes. MFC after: 1 week PR: amd64/123456 Submitted by: KOIE Hidetaka | hide koie.org
* - Add ZFS-support to fstat(1). This allows ZFS-filsystems to be including inlulf2007-11-051-0/+19
| | | | | | | | | | | the open file-listing. It is added as a separate source file, so it can respect WITH_/WITHOUT_CDDL as compile-flags. - The warnlevel of the Makefile was decreased to quell solaris #pragma warnings. - Expect that fstat(1) doesn't work with kernel compiled with DEBUG_VFS_LOCKS/DEBUG_LOCKS for now. Approved by: pjd (mentor)
* KERN_PROC_ALL produces a kinfo_proc for each thread in a process, whichemaste2007-03-091-1/+1
| | | | | | | caused fstat to produce duplicated output for threaded processes. Instead use KERN_PROC_PROC to get just one kinfo_proc per process. MFC After: 2 weeks
* Add marker vnodes to ensure that all vnodes associated with the mount point aretegge2006-01-091-0/+1
| | | | | | iterated over when using MNT_VNODE_FOREACH. Reviewed by: truckman
* Un-break processing of device major/minor values with fstat -n. We docsjp2005-11-051-3/+5
| | | | | | | | | | | this by accessing the cdev_priv element of the cdev structure. Looking forward we need a better way to handle this, as this structure shouldn't be frobbed by userspace. Submitted by: Doug Steinwand PR: bin/88203 MFC after: 1 week Discussed with: phk
* Introduce kdevtoname, which when given the kernel address of acsjp2005-07-301-4/+16
| | | | | | | | | cdev structure, returns the device name associated with it through the __si_namebuf member. This un-breaks the processing of devices. This is a RELENG_6 candidate. Reviewed by: phk
* Sync program's usage() with manpage's SYNOPSIS.ru2005-05-211-1/+1
|
* Dike out unwarranted si_udev fondling.phk2005-03-151-1/+2
|
* Report jail directory if set.phk2005-01-291-0/+15
| | | | | | | Sanity-check fd_lastfile. PR: 62699 Patch by: "Mark W. Krentel" <krentel@dreamscape.com>
* Get the vnode from file.f_vnode instead of file.f_data.ssouhlal2005-01-111-2/+2
| | | | | | | | | | | Nowadays, f_data points to the vnode only if the underlying filesystem doesn't use it for other purposes (devfs uses it to store the cdev, for example). Found by: csjp Reviewed by: csjp Approved by: phk, wes, grehan (mentor) MFC after: 1 week
* filedesc0 is an internal detail of the kernel, don't look at it.phk2004-11-071-13/+9
|
* Slide pipe.h include after the _KERNEL define in preparation for disallowingsilby2004-07-211-1/+1
| | | | non-_KERNEL inclusions of pipe.h
* 1) ANSIfy.dwmalone2004-06-291-37/+15
| | | | | | | 2) Use %p to print a pointer. 3) Use longs for fileids and ino to avoid comparing signed and unsigned. 4) Make the KVM_READ macro a little more cranky. 5) Set WARNS while I'm here.
* Second half of the dev_t cleanup.phk2004-06-171-6/+6
| | | | | | | | | | | The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev() Various minor adjustments including handling of userland access to kernel space struct cdev etc.
* Teach fstat(1) about new location for socket state flags relating torwatson2004-06-141-2/+2
| | | | | | | socket buffer state. Submitted by: rik Reminded by: le
* fix this code properly. msdosfs can't have device nodes on them.jmg2003-06-241-1/+5
| | | | | | | comment how to read device nodes from ufs (if an adventurous soul wants to fix it!). Reviewed by: bde
* o Fix rev. 1.41, print a header. -STABLE is OK.maxim2003-06-231-0/+1
| | | | | PR: bin/53585 Submitted by: Alexey Dokuchaev <danfe@regency.nsu.ru>
* correct spelling of struct cdev * from dev_t which is a 32bit type andjmg2003-06-191-2/+2
| | | | | | isn't very useful for passing pointers on LP64 systems. device names on sparc64 and alpha should now work.
* Bow to the whining masses and change a union back into void *. Retaindillon2003-01-131-4/+4
| | | | | removal of unnecessary casts and throw in some minor cleanups to see if anyone complains, just for the hell of it.
* Change struct file f_data to un_data, a union of the correct structdillon2003-01-121-6/+4
| | | | | | | | | | pointer types, and remove a huge number of casts from code using it. Change struct xfile xf_data to xun_data (ABI is still compatible). If we need to add a #define for f_data and xf_data we can, but I don't think it will be necessary. There are no operational changes in this commit.
* Rename struct specinfo to the more appropriate struct cdev.phk2002-09-271-2/+2
| | | | Agreed on: jake, rwatson, jhb
* Userland changes to go with vnode->v_tag change.njl2002-09-141-23/+18
|
* Unbreak building of fstat following version 1.23 ofbmilekic2002-08-141-1/+1
| | | | src/sys/ufs/ufs/quota.h by including mount.h before ufs/quota.h.
* Consistently use FBSDIDobrien2002-06-301-2/+2
|
* This commit adds basic support for the UFS2 filesystem. The UFS2mckusick2002-06-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | filesystem expands the inode to 256 bytes to make space for 64-bit block pointers. It also adds a file-creation time field, an ability to use jumbo blocks per inode to allow extent like pointer density, and space for extended attributes (up to twice the filesystem block size worth of attributes, e.g., on a 16K filesystem, there is space for 32K of attributes). UFS2 fully supports and runs existing UFS1 filesystems. New filesystems built using newfs can be built in either UFS1 or UFS2 format using the -O option. In this commit UFS1 is the default format, so if you want to build UFS2 format filesystems, you must specify -O 2. This default will be changed to UFS2 when UFS2 proves itself to be stable. In this commit the boot code for reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c) as there is insufficient space in the boot block. Once the size of the boot block is increased, this code can be defined. Things to note: the definition of SBSIZE has changed to SBLOCKSIZE. The header file <ufs/ufs/dinode.h> must be included before <ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and ufs_lbn_t. Still TODO: Verify that the first level bootstraps work for all the architectures. Convert the utility ffsinfo to understand UFS2 and test growfs. Add support for the extended attribute storage. Update soft updates to ensure integrity of extended attribute storage. Switch the current extended attribute interfaces to use the extended attribute storage. Add the extent like functionality (framework is there, but is currently never used). Sponsored by: DARPA & NAI Labs. Reviewed by: Poul-Henning Kamp <phk@freebsd.org>
* Factor out some code in preparation for un-kmeming fstat(1).des2002-06-061-18/+43
| | | | Sponsored by: DARPA, NAI Labs
* Fix constness warnings.dwmalone2002-03-301-12/+13
| | | | | | Remove register keyword. Don't initialise "badtype" in declaration - it was initialised below anyway. Remove prototype for strcpy.
* remove __Pimp2002-03-221-12/+12
|
* Add support for devfs. In other words, for -CURRENT, make work at allgreen2001-12-171-0/+41
| | | | again for normal device nodes.
* Anding the fsid with 0xffff was causing aliasing problems.dwmalone2001-11-051-2/+2
| | | | | | | PR: 17405, 16320 Submitted by: Mark W. Krentel <krentel@dreamscape.com> Submitted by: Peter Edwards <peter.edwards@ireland.com> MFC after: 2 weeks
* Compensate for "Compensate for header dethreading" by backing it out.bde2001-10-101-1/+0
|
OpenPOWER on IntegriCloud