elad
fc9422c9d9
integrate kauth.
2006-05-14 21:31:52 +00:00
christos
671d9ecff9
PR/32692: Matthew Mondor: linux compatibility in /proc/self should point
...
directly to the directory containing the pid instead of pointing to
/proc/curproc, because some programs rely on calling readlink on /proc/self
to get the pid.
2006-02-02 00:29:24 +00:00
christos
95e1ffb156
merge ktrace-lwp.
2005-12-11 12:16:03 +00:00
yamt
a748ea88dd
merge yamt-vop branch. remove following VOPs.
...
VOP_BLKATOFF
VOP_VALLOC
VOP_BALLOC
VOP_REALLOCBLKS
VOP_VFREE
VOP_TRUNCATE
VOP_UPDATE
2005-11-02 12:38:58 +00:00
atatat
fca6393ad4
Add "cwd" and "root" symlinks to each process's directory. The cwd
...
link points to the process's current working directory, and the root
link points to the process's root directory. What else would you
expect?
For directories that are out of reach (caller is in a chroot, target
process is in a different chroot, etc), the links point to "/"
instead.
2005-10-01 03:17:37 +00:00
elad
a894866511
Implement curtain for procfs.
2005-09-11 20:15:53 +00:00
xtraeme
af97f2e875
Remove __P()
2005-08-30 20:08:01 +00:00
christos
c107ef9edc
- sprinkle const
...
- avoid shadowed variables.
2005-05-29 21:55:33 +00:00
christos
8f3566ce61
PR/29782: Martin Husemann: procfs can not unmount when some process has its
...
current directory in curproc. Fix from Pedro Martelletto:
We cannot call vgone() from procfs_inactive() if we are coming from
vclean(). that's what's probably causing the deadlock.
2005-04-02 06:15:09 +00:00
perry
477853c351
nuke trailing whitespace
2005-02-26 22:58:54 +00:00
yamt
364ea008bb
procfs_readdir:
...
- return correct cookie when buffer size is small.
- simplify logic.
2004-10-04 08:40:18 +00:00
yamt
ef763f0a42
procfs_readdir: remove a redundant assignment.
2004-10-04 08:37:06 +00:00
yamt
d79c3679ea
procfs_getattr: correct size of /proc/self.
2004-10-02 04:28:57 +00:00
yamt
269a1761b2
procfs_readdir:
...
- fix a locking problem, using proclist_foreach_call. PR/27098.
- correct snprintf size argument.
2004-10-01 16:32:16 +00:00
yamt
3cca1d9e20
procfs_readdir: fix an offset handling bug after addition of /proc/self.
2004-10-01 14:09:55 +00:00
yamt
f8f70a5eb4
procfs_readdir: use a list macro.
2004-10-01 14:09:14 +00:00
jdolecek
845beacce3
add 'mounts' file for -o linux, which lists all currently mounted
...
filesystems; Linux glibc statvfs() uses this to get some of mount flags,
and this file is also useful as /emul/linux/etc/mtab (via symlink)
2004-09-20 17:53:08 +00:00
jrf
bafcaa70cd
Removed remaining caddr_t casts we do not need in miscfs. Recompiled
...
kernel and ran for a day or so. There are still some caddr_t types in
the arguments of some calls, I will do those separately (later) as
they touch a lot more of the system.
Approved by christos@NetBSD.org .
2004-04-29 16:10:54 +00:00
itojun
8bcb745d7c
sprintf -> snprintf
2004-04-22 00:31:00 +00:00
jdolecek
cb3ab0a872
unlock the descriptor table simple lock after fd_getfile() call in
...
procfs_readdir()
fixes procfs locking problems reported on current-users@, problem place
found by enami tsugutomo
2004-02-15 22:18:17 +00:00
simonb
b6abb6ab1d
Remove some assigned-to but otherwise unused variables.
2003-10-30 01:58:17 +00:00
darcy
566d30be44
Changes as discussed with itojun on tech-kern. I have modified the enums
...
to have KFS or PFS differentiators. Further I have wrapped the enum in
procfs in "#ifdef _KERNEL" as it is done in kernfs.
To see the discussion go to http://mail-index.NetBSD.org/tech-kern/2003/09/
and look for "Mismatched enums in include files" in the list.
2003-09-27 13:29:02 +00:00
itojun
dca8daa76d
remove meaningless line (variable overwritten 2 lines below)
2003-09-07 00:25:04 +00:00
agc
aad01611e7
Move UCB-licensed code from 4-clause to 3-clause licence.
...
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
fvdl
d5aece61d6
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
...
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
thorpej
a06b275edc
Undo part of the ktrace/lwp changes. In particular:
...
* Remove the "lwp *" argument that was added to vget(). Turns out
that nothing actually used it!
* Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(),
and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted
above, didn't use it).
* Remove all of the "lwp *" arguments to internal functions that were added
just to appease the above.
2003-06-29 18:43:21 +00:00
darrenr
960df3c8d1
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
...
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
christos
210944c7de
Add /proc/<pid>/stat for linux compat. j2sdk1.4.2 depends on it.
2003-05-28 18:03:15 +00:00
christos
11cc5eb2c6
Make symlinks for directories that point to the actual directory.
...
Make symlinks to [kqueue] and [misc] for kqueue and misc fds.
2003-04-18 21:55:35 +00:00
jdolecek
f331bb3205
do not show nodes corresponding to directory descriptors for process
...
in fd/ subdirectory, nor allow lookup/open for the nodes
this fixes PR kern/21187 for good, and also avoids interesting directory
locking issues
2003-04-17 20:50:46 +00:00
jdolecek
884bdfdbaf
procfs_readdir(): in Pfd case, only show descriptors of types we want
...
how to represent (vnodes, fifo, pipes); also use fd_getfile() et al
this avoids annoying EOPNOTSUPP error messages from ls -F and such
2003-04-17 20:33:17 +00:00
jdolecek
be4c900d41
procfs_lookup(): use fd_getfile() et al in Pfd case
2003-04-17 20:19:18 +00:00
jdolecek
ed9a5a7448
use fd_getfile() in procfs_getfp(), and FILE_USE()/FILE_UNUSE() the
...
returned file descriptor pointer appropriately
2003-04-17 19:04:25 +00:00
jdolecek
64b598bf33
make some local arrays/variables static + const
2003-04-17 18:08:28 +00:00
jdolecek
98f212db7d
use former genfs_eopnotsupp_rele() as genfs_eopnotsupp(), so that vnodes
...
are vput()/vrele()d as necessary - some filesystems did use the wrong
one for some ops, and it's just safer to not take the chance
based on suggestion by Bill Studenmund
2003-04-10 21:53:32 +00:00
dsl
b2aefec351
Remove pointless check against PID_MAX. Let pfind() do the validation.
...
(The new pid allocation code may decide to allocate pids above PID_MAX.)
2003-04-05 23:32:52 +00:00
jrf
a2d850baf8
This addresses PR kerm/19989. Thanks to hamajima@nagoya.ydc.co.jp for submitting this patch which enables /proc/uptime for linux emul. Patch reviewed by atatat@netbsd.org and tron@netbsd.org, approved by tron@netbsd.org.
2003-02-25 21:00:31 +00:00
martin
d30bd703a5
Cast off_t expression to long long to match format even on 64 bit
...
plattforms.
Shouldn't we introduce a PRIoff_t macro to create such format strings?
2003-01-04 15:42:35 +00:00
christos
b5e0c9eb5b
add LK_CANRECURSE in the locking of /dev/<pid>/fd/<n> and remove the curproc
...
kludge. Thanks to fvdl.
2003-01-03 13:54:22 +00:00
christos
dbe6c38bc2
Implement /proc/<pid>/fd/<n>. This is work in progress. Questionable things:
...
- Is it ok to convert DTYPE_PIPE to VFIFO and DTYPE_SOCKET to VSOCK?
- XXX: Avoid locking issue in ls -Rl /proc by avoiding curproc
- Does I/O to pipes work?
- XXX: Are there security implications?
2003-01-03 13:21:17 +00:00
simonb
c475865f39
Just use the "time" variable in the *_getattr functions instead of a call
...
to (the potentially expensive) microtime().
2002-08-03 04:52:44 +00:00
thorpej
f1f51aa2b8
Move code shared by procfs and the kernel proper out of procfs and
...
into the kernel proper (renaming functions from procfs_* to process_*).
2002-05-09 15:44:44 +00:00
christos
5ff60a19d9
Don't hide the real return code with EPERM.
2002-01-12 18:51:56 +00:00
chs
5a690c92a1
add a VOP_PUTPAGES method for all the filesystems that don't have pages,
...
just unlock the interlock.
2001-12-06 04:27:40 +00:00
thorpej
03efee5585
* Allow machine-dependent code to specify hooks for ptrace(2)
...
(__HAVE_PTRACE_MACHDEP) and procfs (__HAVE_PROCFS_MACHDEP).
These changes will allow platforms like x86 (XMM) and PowerPC
(AltiVec) to export extended register sets in a sane manner.
* Use __HAVE_PTRACE_MACHDEP to export x86 XMM registers (standard
FP + SSE/SSE2) using PT_{GET,SET}XMMREGS (in the machdep
ptrace request space).
* Use __HAVE_PROCFS_MACHDEP to export x86 XMM registers via
/proc/N/xmmregs in procfs.
2001-12-05 00:58:05 +00:00
lukem
e4b00f433c
add RCSIDs
2001-11-10 13:33:40 +00:00
simonb
cf63a6b052
Remove some variables that are set but never used.
2001-11-06 07:20:37 +00:00
chs
94d6f3ee95
map files are zero-length.
2001-08-31 04:56:26 +00:00
chs
6e2828061f
procfs_bmap() should never be called, make it a "bad op".
...
let procfs_mmap() use the default error method.
2001-06-03 02:21:35 +00:00
kleink
79283614b3
In procfs_readdir(), give /proc/# directories DT_DIR (rather than DT_REG).
2001-04-14 13:25:46 +00:00
fvdl
49b162566a
Bump va_blocksize for the map files some more, so that programs with
...
quite a few mappings have a chance of being handled correctly if
st_blksize is looked at.
2001-03-30 20:25:11 +00:00
fvdl
2e64bebd3b
For -o linux mounts, add some code to emulate /proc/#/maps.
...
Needs NAMECACHE_ENTER_REVERSE to include filenames.
2001-03-29 22:41:52 +00:00
jdolecek
522f569810
make some more constant arrays 'const'
2001-02-21 21:39:52 +00:00
jdolecek
d9466585b7
make filesystem vnodeop, specop, fifoop and vnodeopv_* arrays const
2001-01-22 12:17:35 +00:00
fvdl
4e000b75b2
Add a few linux-style files, only enabled when -o linux is specified
...
for the mount. Currently these are /proc/cpuinfo and /proc/meminfo.
The former only does something on i386 right now.
2001-01-17 00:09:07 +00:00
chs
b0ec16cc38
remove dead code and other misc cleanup.
2000-11-24 18:58:37 +00:00
tv
10d08cc9f2
Only show the "exe" entry to Linux processes, suggested by christos.
...
Since there are actually three struct emul's for linux, use the e_name
field to determine eligibility with strcmp().
2000-08-09 23:30:49 +00:00
tv
ae4dea1dc4
Some versions of Linux libc look for /proc/.../exe instead of /proc/../file.
...
Add an entry for "exe" that is the same as "file", provided only if
COMPAT_LINUX is set.
2000-08-09 21:08:11 +00:00
thorpej
b94e29816f
MALLOC()/FREE() are not to be used for variable sized allocations.
2000-08-03 03:39:52 +00:00
mrg
20515f2854
<vm/vm.h> -> <uvm/uvm_extern.h>
2000-06-28 02:44:06 +00:00
simonb
92701d715c
Delete duplicate declaration of atopid().
2000-03-30 02:20:14 +00:00
thorpej
8772062270
Make /proc/self a symlink to /proc/curproc. I've observed Linux programs
...
that expect /proc/self/cmdline to exist.
1999-09-02 23:33:45 +00:00
sommerfeld
197579af47
Change variable used for directory offset from "int" to "off_t".
...
Overkill, but avoids a host of truncation problems.
1999-08-25 14:42:35 +00:00
sommerfeld
2e649e46d3
Fix PR8270:
...
Problem turned out to be due to improper handling of reads beyond EOF:
they should just return without error with the uio unchanged, and the
caller will recognize this as a zero-byte return (EOF).
The previous fix to protect directory reads against bogus uio_offset
values returned EINVAL, which broke mount -o union, which only
union'ed in the lower directory if the upper directory cleanly
returned EOF.
While we're here, protect kernfs as well.
1999-08-24 23:29:08 +00:00
christos
582a6def8b
protect against large uio_offset
1999-08-14 02:20:19 +00:00
wrstuden
3bf14d81e9
Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl
...
call with F_FSCTL set and F_SETFL calls generate calls to a new
fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0
for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems
use genfs_fcntl().
Reviewed by: thorpej
Tested by: wrstuden
1999-08-03 20:19:16 +00:00
thorpej
fc04cf9982
Add calls to lock the proclist as appropriate.
1999-07-25 18:33:47 +00:00
thorpej
f9b0db3013
Fix a paste-o in procfs_lookup() introduced with the vnode locking changes.
...
Fixes PR #7961 , Mario Kemper <magick@bundy.lip.owl.de>.
1999-07-14 23:52:22 +00:00
wrstuden
9fc36d6807
Bump osrelease to 1.4E. Add layerfs files, remove null_subr.c.
...
Update coda to new struct lock in struct vnode.
make fdescfs, kernfs, portalfs, and procfs actually lock their vnodes.
It's not that hard.
Make unionfs set v_vnlock = NULL so any overlayed fs will call its
VOP_LOCK.
1999-07-08 01:26:21 +00:00
christos
8aa2fc5ab8
PR/7143: Jaromir Docelek: Add procfs/cmdline from Linux emulation
1999-03-12 18:45:40 +00:00
msaitoh
ea669760d6
Add /proc/#/map. From FreeBSD.
1999-01-25 02:20:08 +00:00
thorpej
970e60efb8
- Use proclists[], rather than checking allproc and zombproc explicitly.
...
- Add some comments about locking.
1998-09-08 23:50:13 +00:00
kleink
5350df2953
Per POSIX, fail with EINVAL if advisory locking is attempted on a file type
...
that doesn't support it, rather than using a homegrown EBADF or EOPNOTSUPP.
1998-08-13 10:06:31 +00:00
matthias
574106c52b
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other
...
filesystems use it instead of a private version.
1998-08-10 08:11:10 +00:00
perry
4522c799a1
bzero->memset, bcopy->memcpy, bcmp->memcmp
1998-08-09 20:51:08 +00:00
kleink
12a866151b
Recognize _PC_SYNC_IO.
1998-08-03 14:19:57 +00:00
fvdl
811dba68c1
procfs_readdir: in case of error, check if cookies actually have
...
been allocated before freeing them. From Wolfgang Solfrank.
1998-04-21 16:36:37 +00:00
fvdl
e5bc90f40c
Merge with Lite2 + local changes
1998-03-01 02:20:01 +00:00
fvdl
ce56587f15
Bump last argument to VOP_READDIR to off_t (from u_long).
1997-10-10 02:01:05 +00:00
thorpej
a79a3ca472
Fix a reversed argument which caused procfs_checkioperm() to always return
...
"OK". Add a few comments to avoid further confusion.
1997-08-27 08:52:51 +00:00
thorpej
f9777e4a1c
Fix the procfs hole described on current-users, similar to a fix for
...
FreeBSD by Sean Eric Fagan, but a bit different. This makes the checks
in the same places as sef's FreeBSD patch, but does not hardcode the
"kmem" group into the kernel, and also does a check identical to the
(3) and (4) checks in the NetBSD ptrace(2):
(1) it's not owned by you, or is set-id on exec (unless
you're root), or
(2) it's init, which controls the security level of the
entire system, and the system was not compiled with
permanently insecure mode turned on.
1997-08-12 22:47:18 +00:00
mycroft
e3f99a9397
Pass the vnode type to vaccess(), and use it when checking VEXEC. Make sure
...
that the mode bits passed to vaccess() and returned by foo_getattr() contain
only permission bits.
1997-05-08 16:19:43 +00:00
mycroft
4d213ec5e7
Need stat.h.
1997-05-05 07:34:09 +00:00
mycroft
1e3c14a909
Eliminate bogus uses of V{READ,WRITE,EXEC}. Use S_I[RWX]{USR,GRP,OTH} where
...
appropriate.
1997-05-05 07:13:57 +00:00
mycroft
8a33a13c65
Minor code cleanup.
1997-04-28 03:49:57 +00:00
cgd
a67c0b16b8
define path name string variables that we should not (and, thankfully, do
...
not) modify as 'const char *' rather 'char *'.
1996-10-25 21:57:58 +00:00
christos
92a808f167
backout previous kprintf changes
1996-10-13 02:21:25 +00:00
christos
60d201973e
printf -> kprintf, sprintf -> ksprintf
1996-10-10 22:46:11 +00:00
mycroft
2bc736661a
Implement poll(2).
1996-09-07 12:40:22 +00:00
mycroft
c52352c819
Add a set of generic file system operations that most file systems use.
...
Also, fix some time stamp bogosities.
1996-09-01 23:47:48 +00:00
christos
da749d6e09
Fix printf format follies.
1996-03-16 23:52:42 +00:00
mycroft
183aec8fa8
GC *_nullop(). Minor nits.
1996-02-13 13:12:48 +00:00
christos
19dc07be15
close PR/2063: procfs_rw prototyped twice with different prototypes
1996-02-12 15:01:41 +00:00
christos
631ccba638
miscfs prototype changes
1996-02-09 22:39:56 +00:00
mycroft
53fccab940
Fix vop_link, vop_symlink, and vop_remove semantics in several ways:
...
* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
cleanup.
* Require the file system to decide whether or not linking and unlinking of
directories is allowed, and disable it for all current file systems.
1996-02-09 14:45:36 +00:00
mycroft
d60bb4a465
Use the index number as the cookie, rather than multiplying by UIO_MX.
1995-10-09 14:03:32 +00:00
mycroft
bcaf2bca34
Add support for cookies, mostly from Greg Hudson.
1995-10-09 11:18:51 +00:00
cgd
13f5026553
fix timeval vs. timespec warnings
1995-04-15 01:56:43 +00:00
mycroft
597bdad3df
Return EROFS rather than ENOENT in many cases. Also some cosmetic cleanup.
1995-02-03 16:18:46 +00:00
mycroft
609063ce2b
Format police.
1994-12-27 19:05:12 +00:00