Commit Graph

65 Commits

Author SHA1 Message Date
thorpej dabbfde70a Implement fdremove() which is used in place of all the code that
did the "fdp->fd_ofiles[fd] = 0" assignment; fdremove() make sure
the fd_freefiles hints stay in sync.

From OpenBSD.
2000-03-23 05:16:12 +00:00
thorpej d488aca2aa Pool'ify filedesc0 allocation. 2000-03-22 17:42:57 +00:00
thorpej 6068308fcd In cwdinit(), if there isn't a cdir vnode yet, don't VREF() it. 2000-01-24 17:57:34 +00:00
sommerfeld c3ddfa524d Fix bug observed by Perry and myself: when emacs was shut down
uncleanly due to a lost connection, it would hang in closef() waiting
for the usecount to go back to 1.

An audit of FILE_USE() vs FILE_UNUSE() usage led me to discover some
incorrect error-path code..

In sys_fcntl(), avoid leaking a file descriptor usecount in an error
case of F_SETFL; don't return, instead go to "out" to clean up.  I
suspect that the F_SETFL would fail because vop_fcntl is not
implemented in deadfs.
1999-12-08 18:53:56 +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
christos c029fe53c6 Fix umask inheritance problem introduced by the cwdi changes, whereby
children processes will not inherit the parent's umask but 022.
1999-06-20 08:54:13 +00:00
thorpej e3669c3393 Add "use counting" to file entries. When closing a file, and it's reference
count is 0, wait for use count to drain before finishing the close.

This is necessary in order for multiple processes to safely share file
descriptor tables.
1999-05-05 20:01:01 +00:00
thorpej 16936c9565 Break cdir/rdir/cmask info out of struct filedesc, and put it in a new
substructure, `cwdinfo'.  Implement optional sharing of this substructure.

This is required for clone(2).
1999-04-30 18:42:58 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
sommerfe 2f0f84b8e8 bug fix to fdavail: be consistent about taking per-process descriptor
limit into account when checking against the limit; fdp->fd_nfiles may
be greater than the current descriptor limit, and there may be space
in fdp->fd_ofiles beyond the limit.  If we say it's available,
unp_externalize will get confused and panic when fdalloc fails.
1999-03-22 17:39:44 +00:00
thorpej 26b8f5c4ac Use the pool allocator and "nointr" pool page allocator for file structures. 1998-08-31 23:55:37 +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
perry 275d1554aa Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one.
bcopy(x, y, z) ->  memcpy(y, x, z)
ovbcopy(x, y, z) -> memmove(y, x, z)
   bcmp(x, y, z) ->  memcmp(x, y, z)
  bzero(x, y)    ->  memset(x, 0, y)
1998-08-04 04:03:10 +00:00
perry 730baa7431 fix sizeofs so they comply with the KNF style guide. yes, it is pedantic. 1998-07-31 22:50:48 +00:00
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
mrg d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
mrg 1a8c7604f4 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly.  :-)
1998-02-05 07:59:28 +00:00
thorpej 6382d6dd79 Implement file descriptor table sharing. Partially from FreeBSD. 1998-01-05 04:51:15 +00:00
thorpej 14cd99880c Fix the shared library versioning snafu caused by the recent changes
to the stat(2) family and msync(2).  This uses a primitive function
versioning scheme.

This reverts the libc shared library major version from 13 to 12, and
adds a few new interfaces to bring us to libc version 12.20.

From Frank van der Linden <fvdl@NetBSD.ORG>.
1997-10-20 22:05:06 +00:00
mycroft 16519602c5 Minor change; remove unnecessary casts. 1997-10-19 01:50:33 +00:00
mycroft 5570f69778 Adjust u_int arguments of some system calls to int, to match user-level
prototypes.
1997-10-15 17:27:46 +00:00
phil b1bfdee5fe In sys_flock, change EBADF to EINVAL because error was generated by
a bad argument, not a bad file descriptor. (Found in response to
PR 2602.)
1997-07-17 17:54:40 +00:00
kleink 5610f6e774 Like in F_SETLK, check if F_GETLK is actually called with a
valid lock type.
1997-04-02 18:22:32 +00:00
christos 87a65718ea Eliminate kern_conf.h 1996-03-30 22:24:38 +00:00
cgd f92325cf2f kill unnecessary (and sometimes dangerous) casts of ioctl commands to int 1996-03-29 00:25:30 +00:00
christos e79beaff89 - fdopen -> filedescopen
- bring kgdb prototype in scope.
1996-03-14 19:01:08 +00:00
christos 09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
christos 8a5b1b92e2 First pass at prototyping 1996-02-04 02:15:01 +00:00
mycroft 245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
thorpej 60024eb978 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 21:40:36 +00:00
christos 1a5a3c9199 Extracted all of the compat_xxx routines, and created a library [libcompat]
for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy
or worth eliminating (yet).
1995-06-24 20:33:55 +00:00
mycroft c75f9f2e07 Change `fdclose' to `fdrelease', to avoid confusion with device interfaces. 1995-04-10 18:27:59 +00:00
cgd c771cb43cf need COMPAT_OSF1 for some things 1995-03-08 01:20:19 +00:00
mycroft 477c99007d NULL out file descriptors as they're closed, for the benefit of fstat(8). 1995-02-15 02:12:02 +00:00
cgd ef5b4feb51 ooops. forgot to emable fpathconf's use of VOP_PATHCONF! 1995-01-23 04:45:22 +00:00
cgd 6354211739 cast pointer to long, not int 1995-01-12 05:40:10 +00:00
mycroft b903333935 Remove old declaration. 1994-12-14 19:38:48 +00:00
mycroft ef575bdbc1 Revert dup handling. 1994-12-14 18:40:27 +00:00
mycroft b58324b77a Abstract out the code to maintain fd_lastfile. Remove the old dup() compatibility
kluge.  Rearrange fdopen() handling.  Make a common function to handle closing
a particular file descriptor in a process.  Some other cleanup.
1994-12-04 03:09:50 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd 6b86130410 update for new syscall args description mechanism 1994-10-20 04:22:35 +00:00
mycroft 2f710a54ee Convert process, file, and namei lists and hash tables to use queue.h. 1994-08-30 03:04:28 +00:00
mycroft 9c4c84c97e Need ofstat() for iBCS2 syscall conversion. 1994-08-15 22:08:55 +00:00
cgd cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
mycroft ea88fee18e Make ogetdtablesize if COMPAT_HPUX. 1994-06-22 03:00:21 +00:00
glass 6b9c16ace1 compat_ultrix 1994-06-16 05:07:32 +00:00
chopps 25d43e1bab getdtabledsize used by sunos compat code. 1994-06-14 10:52:20 +00:00
cgd eea64debf1 make getdtablesize COMPAT_43; should be COMPAT_44 or _09, but that has probs 1994-06-14 05:18:03 +00:00
cgd 63bb5c1ff2 update to 4.4-Lite, with some local changes 1994-05-19 08:13:09 +00:00
cgd 91cf0fbaf3 copyright foo 1994-05-17 04:21:49 +00:00