Home | History | Annotate | Download | only in wscons
History log of /src/sys/dev/wscons/wsdisplay_compat_usl.c
RevisionDateAuthorComments
 1.54  01-Jun-2021  riastradh wsdisplay(4): Use C99 initializer for usl_syncops.

Avoid sketchy function pointer cast while here.
 1.53  23-May-2020  ad branches: 1.53.6;
Move proc_lock into the data segment. It was dynamically allocated because
at the time we had mutex_obj_alloc() but not __cacheline_aligned.
 1.52  15-Dec-2018  christos - Use kmem_intr_{alloc,free}, because on time out we need to free from an
interrupt context.
- Remove parens from returns and useless casts from void.
 1.51  04-Nov-2017  christos branches: 1.51.2; 1.51.4;
use sizeof(*var) instead of sizeof(type)
 1.50  03-Nov-2017  maya use kmem, don't check for allocation failure with KM_SLEEP
 1.49  24-Aug-2015  pooka to garnish, dust with _KERNEL_OPT
 1.48  19-Feb-2013  macallan branches: 1.48.14;
fix a bunch of _IO() ioctl()s to actually work on LP64/BE
( the data pointer is abused to pass an integer, we get a pointer to it so
we need to deref it to something the same size as a pointer to get the
correct value )
now the PCVT compat code ( which is used for VT switching in and out of X )
works on sparc64
 1.47  01-Jul-2010  rmind branches: 1.47.8; 1.47.18;
Remove pfind() and pgfind(), fix locking in various broken uses of these.
Rename real routines to proc_find() and pgrp_find(), remove PFIND_* flags
and have consistent behaviour. Provide proc_find_raw() for special cases.
Fix memory leak in sysctl_proc_corename().

COMPAT_LINUX: rework ptrace() locking, minimise differences between
different versions per-arch.

Note: while this change adds some formal cosmetics for COMPAT_DARWIN and
COMPAT_IRIX - locking there is utterly broken (for ages).

Fixes PR/43176.
 1.46  04-Oct-2009  christos branches: 1.46.2; 1.46.4;
Don't call usl_sync_check_sig from an interrupt context. Call it only if waitok.
Stack trace: mutex_vector_enter <- usl_sync_check_sig <- usl_detachproc <-
wsdisplay_switch <- wskbd_translate <- wskbd_input <-
pckbd_input <- pckbcintr <- intr_biglock_wrapper <-
Xintr_ioapic_edge1
Reported by Anon Ymous
 1.45  24-Apr-2008  ad branches: 1.45.2;
Network protocol interrupts can now block on locks, so merge the globals
proclist_mutex and proclist_lock into a single adaptive mutex (proc_lock).
Implications:

- Inspecting process state requires thread context, so signals can no longer
be sent from a hardware interrupt handler. Signal activity must be
deferred to a soft interrupt or kthread.

- As the proc state locking is simplified, it's now safe to take exit()
and wait() out from under kernel_lock.

- The system spends less time at IPL_SCHED, and there is less lock activity.
 1.44  14-Jan-2008  drochner branches: 1.44.6; 1.44.8;
restructure things a bit so that proclist_mutex is held between the
p_find() and the psignal() which is its purpose after all
 1.43  18-Oct-2007  joerg branches: 1.43.2; 1.43.8;
Use aprint API for output and convert to device_t/softc separation.
 1.42  16-Oct-2007  joerg branches: 1.42.2;
Use callout_setfunc/callout_schedule instead of callout_reset.
Use mstohz for the calculations.
 1.41  09-Jul-2007  ad branches: 1.41.6; 1.41.8; 1.41.10;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.40  04-Mar-2007  christos branches: 1.40.2; 1.40.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.39  09-Feb-2007  ad branches: 1.39.2;
Merge newlock2 to head.
 1.38  26-Dec-2006  elad Adapt to recent machdep scope changes.

Pointed out by Kouichirou Hiratsuka, thanks!
 1.37  16-Nov-2006  christos branches: 1.37.2;
__unused removal on arguments; approved by core.
 1.36  11-Nov-2006  bjh21 COMPAT_10 implies COMPAT_11, so there's no need to test both.
Also collapse two tightly-nested #ifs into one.
 1.35  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.34  10-Oct-2006  elad Use kauth(9) instead of securelevel.

okay cube@
 1.33  21-Jul-2006  ad branches: 1.33.4; 1.33.6;
- Use the LWP cached credentials where sane.
- Minor cosmetic changes.
 1.32  14-May-2006  elad integrate kauth.
 1.31  18-Mar-2006  jmcneill Don't use intarg uninitialized in wsdisplay_usl_ioctl2. Fixes CID 2507
 1.30  11-Dec-2005  christos branches: 1.30.4; 1.30.6; 1.30.8; 1.30.10; 1.30.12;
merge ktrace-lwp.
 1.29  05-Dec-2005  macallan back out the changes to KD* ioctl()s for now, seem to break more than they
do good.
 1.28  05-Dec-2005  macallan - remove a leftover debug printf()
- fix the other cases of _IO() type ioctl() abuse ( mainly keyboard related
stuff )
 1.27  04-Dec-2005  macallan Make the VT_* ioctl()s work in LP64/big endian platforms, like sparc64.
The problem is that these ioctl()s are declared as _IO() and expect to pass an
integer as argument, instead of a pointer. When dereferencing the argument
pointer in the ioctl() handler as an int we get the upper 32bit of the value so
we simply dereference it as long. Other _IO() ioctl()s may need similar fixes.

Tested on sparc64, sparc and macppc.
 1.26  02-Jan-2005  martin branches: 1.26.10;
PR kern/28837: fix undef typo.
 1.25  23-Apr-2004  itojun use bounded string ops
 1.24  24-Mar-2004  drochner remove license clauses 3 and 4 from my cpoyright notices
 1.23  29-Jun-2003  fvdl branches: 1.23.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.22  28-Jun-2003  darrenr 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
 1.21  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.20  10-Dec-2002  fvdl Silence strict-alias warning.
 1.19  23-Sep-2002  simonb Remove breaks after returns, unreachable returns and returns after
returns(!).
 1.18  17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.17  13-Nov-2001  lukem add/cleanup RCSIDs
 1.16  13-Oct-2001  augustss ANSIfy.
 1.15  10-Sep-2000  simonb branches: 1.15.2; 1.15.4;
KNF - variable declarations.
 1.14  10-Sep-2000  takemura Introduce WSDISPLAY_NULLSCREEN to allow low level device to detach control
process. Hpcmips frame buffer driver(hpcfb) call wsdisplay_switch with
WSDISPLAY_NULLSCREEN to notify user process of suspend/resume event.
 1.13  08-Sep-2000  simonb In wsdisplay_usl_ioctl2(), use a u_long for the request to be passed off
to wsdisplay_internal_ioctl() instead of an int.
With this, the pcvt compat ioctl's work on an Alpha and probably other
64 bit archs.
 1.12  23-Mar-2000  thorpej branches: 1.12.4;
New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.11  06-Dec-1999  drochner -allow the "show_screen" call to the display driver to complete
asynchronously, in the same style like the process attach/detach functions
-intercept the "cnpollc" call which originally went directly to the
keyboard driver and keep track whether the console is in "polling" state
(DDB!)
-pass a NULL callback to the screen switcher and the process attach/detach
functions if the console is "polling", to tell them that asynchronous
completion is forbidden
 1.10  19-Oct-1999  mycroft branches: 1.10.2;
Split wsdisplay_usl_ioctl() into two functions -- one which is screen-dependent
and one which isn't. The latter is now used for ttyEcfg, enabling the
VT-switching ioctls to work on it. (This allows Linux X servers to work when
/emul/linux/dev/tty0 is linked to /dev/ttyEcfg.)
 1.9  30-May-1999  christos branches: 1.9.2; 1.9.4;
Don't let bd.which be unitialized... Thanks Dave!
 1.8  30-May-1999  christos PR/7665: Dave Sainty: X server bell pitch setting doesn't reflect reality
Applied with a little more error checking.
 1.7  29-Jan-1999  drochner branches: 1.7.2; 1.7.4; 1.7.6;
make the timeout for process/vt synchronization "config" settable and
ddb/gdb patchable
 1.6  26-Jan-1999  drochner improve error handling in 2 cases:
1. If the current screen becomes invalid (ie no focus anymore), always
set the keyboard to translating mode. Otherwise, we could get stuck
because the command keystokes don't come through.
2. Catch errors in attaching to a process (X server) - For this,
implement a callback mechanism similar to the detach case. Add an
argument to report an errno via callback.
 1.5  05-Jul-1998  jonathan * defopt COMPAT_{09,10,11,12,13} and COMPAT_NOMID (from unsaved buffers).
TODO: revisit interaction between native compat and emul compat usage.
 1.4  25-Jun-1998  thorpej defopt COMPAT_FREEBSD
 1.3  16-Jun-1998  drochner change initialization order to avoid a race condition if a switch is
performed at the same time
 1.2  13-Jun-1998  drochner clean up if a controlling process exits while a switch is in progress,
initialize the flag used for keeping track of this
 1.1  11-Jun-1998  drochner Implement the VT access and keyboard control ioctl()s needed for
compatibility to PCVT, syscons and the Linux console.
 1.7.6.1  30-Nov-1999  itojun bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code). Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.
 1.7.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.7.2.2  19-Oct-1999  he Pull up revision 1.10 (requested by mycroft):
Enable VT-switching ioctls on ttyEcfg, which allows Linux X servers
to work when properly configured (with symlink /emul/linux/dev/tty0
-> /dev/ttyEcfg).
 1.7.2.1  21-Jun-1999  perry pullup 1.7->1.9 (christos): fix X server bell pitch
 1.9.4.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.9.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.9.2.1  20-Oct-1999  thorpej Sync w/ trunk.
 1.10.2.2  19-Oct-1999  mycroft Split wsdisplay_usl_ioctl() into two functions -- one which is screen-dependent
and one which isn't. The latter is now used for ttyEcfg, enabling the
VT-switching ioctls to work on it. (This allows Linux X servers to work when
/emul/linux/dev/tty0 is linked to /dev/ttyEcfg.)
 1.10.2.1  19-Oct-1999  mycroft file wsdisplay_compat_usl.c was added on branch fvdl-softdep on 1999-10-19 00:03:19 +0000
 1.12.4.1  10-Sep-2000  simonb Pull up to 1.5 branch approved by jhawk:
Rev 1.13:
In wsdisplay_usl_ioctl2(), use a u_long for the request to be
passed off to wsdisplay_internal_ioctl() instead of an int.
With this, the pcvt compat ioctl's work on an Alpha and
probably other 64 bit archs.
Rev 1.15:
KNF - variable declarations.
 1.15.4.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.15.4.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.15.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.15.2.8  19-Dec-2002  thorpej Sync with HEAD.
 1.15.2.7  18-Oct-2002  nathanw Catch up to -current.
 1.15.2.6  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.15.2.5  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.15.2.4  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.15.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.15.2.2  22-Oct-2001  nathanw Catch up to -current.
 1.15.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.23.2.6  11-Dec-2005  christos Sync with head.
 1.23.2.5  17-Jan-2005  skrll Sync with HEAD.
 1.23.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.23.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.23.2.2  03-Aug-2004  skrll Sync with HEAD
 1.23.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.26.10.6  21-Jan-2008  yamt sync with head
 1.26.10.5  27-Oct-2007  yamt sync with head.
 1.26.10.4  03-Sep-2007  yamt sync with head.
 1.26.10.3  26-Feb-2007  yamt sync with head.
 1.26.10.2  30-Dec-2006  yamt sync with head.
 1.26.10.1  21-Jun-2006  yamt sync with head.
 1.30.12.2  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.30.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.30.10.4  06-May-2006  christos - Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
that need it.

Approved by core.
 1.30.10.3  19-Apr-2006  elad sync with head.
 1.30.10.2  10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.30.10.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.30.8.3  11-Aug-2006  yamt sync with head
 1.30.8.2  24-May-2006  yamt sync with head.
 1.30.8.1  01-Apr-2006  yamt sync with head.
 1.30.6.2  01-Jun-2006  kardel Sync with head.
 1.30.6.1  22-Apr-2006  simonb Sync with head.
 1.30.4.1  09-Sep-2006  rpaulo sync with head
 1.33.6.2  10-Dec-2006  yamt sync with head.
 1.33.6.1  22-Oct-2006  yamt sync with head
 1.33.4.4  25-Jan-2007  ad pfind() can no longer be used from interrupt context.
 1.33.4.3  19-Jan-2007  ad Acquire proclist_mutex before sending signals.
 1.33.4.2  12-Jan-2007  ad Sync with head.
 1.33.4.1  18-Nov-2006  ad Sync with head.
 1.37.2.1  06-Jan-2007  bouyer Pull up following revision(s) (requested by elad in ticket #317):
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.120
sys/dev/wscons/wsdisplay_compat_usl.c: revision 1.38
Adapt to recent machdep scope changes.
Pointed out by Kouichirou Hiratsuka, thanks!
 1.39.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.40.4.1  11-Jul-2007  mjf Sync with head.
 1.40.2.2  23-Oct-2007  ad Sync with head.
 1.40.2.1  01-Jul-2007  ad Adapt to callout API change.
 1.41.10.1  18-Oct-2007  yamt sync with head.
 1.41.8.2  23-Mar-2008  matt sync with HEAD
 1.41.8.1  06-Nov-2007  matt sync with HEAD
 1.41.6.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.42.2.1  25-Oct-2007  bouyer Sync with HEAD.
 1.43.8.1  19-Jan-2008  bouyer Sync with HEAD
 1.43.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.44.8.1  18-May-2008  yamt sync with head.
 1.44.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.45.2.2  11-Aug-2010  yamt sync with head.
 1.45.2.1  11-Mar-2010  yamt sync with head
 1.46.4.1  03-Jul-2010  rmind sync with head
 1.46.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.47.18.2  03-Dec-2017  jdolecek update from HEAD
 1.47.18.1  25-Feb-2013  tls resync with head
 1.47.8.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.48.14.1  22-Sep-2015  skrll Sync with HEAD
 1.51.4.1  10-Jun-2019  christos Sync with HEAD
 1.51.2.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.53.6.1  17-Jun-2021  thorpej Sync w/ HEAD.

RSS XML Feed