Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Mar 1997 16:44:34 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        msmith@atrad.adelaide.edu.au, pius@ienet.com
Cc:        hackers@freebsd.org, mark@quickweb.com, sos@ravenock.cybercity.dk
Subject:   Re: Linux JDK on 2.2
Message-ID:  <199703070544.QAA02103@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>In linux_file.c there's this comment in the linux_fcntl function:
>
>    case LINUX_F_SETOWN:
>    case LINUX_F_GETOWN:
>        /*
>         * We need to route around the normal fcntl() for these calls,
>         * since it uses TIOC{G,S}PGRP, which is too restrictive for
>         * Linux F_{G,S}ETOWN semantics. For sockets, this problem
>         * does not exist.
>         */
>
>So, how are FreeBSD's F_{G,S}ETOWN semantics different from Linux's?

FreeBSD's F_{G,S}ETOWN/O_ASYNC implementation is completely broken:
- it should apply to open file instances, but actually applies to
  devices.
- normal kill() permissions don't apply.  Any process can send SIGIO
  to any process using a socket.
- for ttys, the process group handling is tangled up with POSIX
  POSIX group handling.  The process group can only be set to that
  of a session leader with the tty as its controlling terminal.
  It is impossible to set the pgrp to a process instead of a group.
- there are some confusing double negatives to convert from negative
  pids to positive process group numbers and back.  ISTR that at least
  one driver gets this wrong.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703070544.QAA02103>