History log of /openbsd-current/sys/arch/i386/include/psl.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.21 09-Jul-2018 guenther

Delete the VM86 kernel option and i386_vm86(3) API: it's required
a custom kernel for over 20 years.

testing mlarkin@
ok deraadt@ phessler@ jca@ matthieu@


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.20 16-May-2013 kettenis

Implement a mechanism to establish interrupt handlers that don't grab the
kernel lock upon entry through a new IPL_MPSAFE flag/level.


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 08-Jun-2011 kettenis

Ateempt to make pci_intr_disestablish() work for MSIs.

ok deraadt@


# 1.18 16-Apr-2011 deraadt

More than a decade ago, interrupt handlers on sparc started returning 0
(interrupt was not for me), 1 (positive interrupt was for me), or -1
(i am not sure...). We have continued with this practice in as many
drivers as possible, throughout the tree.

This makes some of the architectures use that information in their
interrupt handler calling code -- if 1 is returned (and we know
this specific machine does not have edge-shared interrupts), we
finish servicing other possible handlers on the same pin. If the
interrupt pin remains asserted (from a different device), we will
end up back in the interrupt servicing code of course... but this is
cheaper than calling all the chained interrupts on a pin.

This does of course count on shared level interrupts being properly
sorted by IPL.

There have been some concerns about starvation of drivers which
incorrectly return 1. Those drivers should be hunted down so that
they return -1.

ok and help from various people. In snaps for about a week now.


# 1.17 23-Mar-2011 pirofti

Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.

Discussed and okay drahn@. Okay deraadt@.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.16 28-Jun-2004 aaron

Use new event counter API for interrupt counting on i386. deraadt@ tholo@
drahn@ millert@ ok


Revision tags: OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B
# 1.15 02-Feb-2004 deraadt

PSL_XCRYPT is 0x40000000


# 1.14 01-Feb-2004 deraadt

Enable FXSR all the time, and cope with NPX/FXSR conversions; from netbsd.
Pass SSE/SSE2/XCRYPT flags out via syctl, and prepare for being able to do
xcrypt-* in userland; ok naddy, tested a lot by pvalchev and jolan, also
works on amd64 in 32bit mode


Revision tags: OPENBSD_3_4_BASE
# 1.13 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
# 1.12 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.11 05-Aug-2000 niklas

branches: 1.11.8;
$OpenBSD$


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE SMP_BASE kame_19991208
# 1.10 31-Mar-1997 deraadt

branches: 1.10.14;
do not let PSL_NT be set in VM86 mode; netbsd


Revision tags: OPENBSD_2_0_BASE
# 1.9 24-Jun-1996 tholo

struct intrhand protected by _KERNEL; some user-mode assembly code
can't deal with the file without this


# 1.8 22-Jun-1996 tholo

Move struct intrhand to <machine/psl.h> [again] so user-level programs can
get at it.


# 1.7 25-May-1996 deraadt

sync


# 1.6 07-May-1996 deraadt

sync with 0504; prototype changes


# 1.5 19-Mar-1996 mickey

Merging w/ NetBSD 021796.
speaker upgraded to the current.
some changes to the VM stuff (ie kern_thread.c added and so).


# 1.4 20-Feb-1996 tholo

Pass device name to interrupt establish routines so it can be recorded in
the device interrupt chain structures (isa, pci)

Move interrupt chain structure definition to <machine/psl.h> so vmstat can
get at it (i386)

Remove hack to count interrupts the old way (i386)


# 1.3 08-Jan-1996 deraadt

from netbsd; Hand-code softintr()


# 1.2 08-Jan-1996 deraadt

from netbsd:
Deal with GCC's dead code elimination being suboptimal.
Modify splraise() to allow better optimization.
Make cpl, ipending, and astpending volatile.
Make sure interrupts are disabled before jumping to a resume point,
to prevent races.
Make FPU faults use INTRFASTEXIT, and remove INTREXIT.
Build the frame for recursive interrupts manually, and make sure to
disable interrupts to avoid races.
VS: ----------------------------------------------------------------------


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.20 16-May-2013 kettenis

Implement a mechanism to establish interrupt handlers that don't grab the
kernel lock upon entry through a new IPL_MPSAFE flag/level.


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.19 08-Jun-2011 kettenis

Ateempt to make pci_intr_disestablish() work for MSIs.

ok deraadt@


# 1.18 16-Apr-2011 deraadt

More than a decade ago, interrupt handlers on sparc started returning 0
(interrupt was not for me), 1 (positive interrupt was for me), or -1
(i am not sure...). We have continued with this practice in as many
drivers as possible, throughout the tree.

This makes some of the architectures use that information in their
interrupt handler calling code -- if 1 is returned (and we know
this specific machine does not have edge-shared interrupts), we
finish servicing other possible handlers on the same pin. If the
interrupt pin remains asserted (from a different device), we will
end up back in the interrupt servicing code of course... but this is
cheaper than calling all the chained interrupts on a pin.

This does of course count on shared level interrupts being properly
sorted by IPL.

There have been some concerns about starvation of drivers which
incorrectly return 1. Those drivers should be hunted down so that
they return -1.

ok and help from various people. In snaps for about a week now.


# 1.17 23-Mar-2011 pirofti

Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.

Discussed and okay drahn@. Okay deraadt@.


Revision tags: OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.16 28-Jun-2004 aaron

Use new event counter API for interrupt counting on i386. deraadt@ tholo@
drahn@ millert@ ok


Revision tags: OPENBSD_3_5_BASE SMP_SYNC_A SMP_SYNC_B
# 1.15 02-Feb-2004 deraadt

PSL_XCRYPT is 0x40000000


# 1.14 01-Feb-2004 deraadt

Enable FXSR all the time, and cope with NPX/FXSR conversions; from netbsd.
Pass SSE/SSE2/XCRYPT flags out via syctl, and prepare for being able to do
xcrypt-* in userland; ok naddy, tested a lot by pvalchev and jolan, also
works on amd64 in 32bit mode


Revision tags: OPENBSD_3_4_BASE
# 1.13 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE UBC_SYNC_A UBC_SYNC_B
# 1.12 14-Mar-2002 millert

First round of __P removal in sys


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE UBC_BASE
# 1.11 05-Aug-2000 niklas

branches: 1.11.8;
$OpenBSD$


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE SMP_BASE kame_19991208
# 1.10 31-Mar-1997 deraadt

branches: 1.10.14;
do not let PSL_NT be set in VM86 mode; netbsd


Revision tags: OPENBSD_2_0_BASE
# 1.9 24-Jun-1996 tholo

struct intrhand protected by _KERNEL; some user-mode assembly code
can't deal with the file without this


# 1.8 22-Jun-1996 tholo

Move struct intrhand to <machine/psl.h> [again] so user-level programs can
get at it.


# 1.7 25-May-1996 deraadt

sync


# 1.6 07-May-1996 deraadt

sync with 0504; prototype changes


# 1.5 19-Mar-1996 mickey

Merging w/ NetBSD 021796.
speaker upgraded to the current.
some changes to the VM stuff (ie kern_thread.c added and so).


# 1.4 20-Feb-1996 tholo

Pass device name to interrupt establish routines so it can be recorded in
the device interrupt chain structures (isa, pci)

Move interrupt chain structure definition to <machine/psl.h> so vmstat can
get at it (i386)

Remove hack to count interrupts the old way (i386)


# 1.3 08-Jan-1996 deraadt

from netbsd; Hand-code softintr()


# 1.2 08-Jan-1996 deraadt

from netbsd:
Deal with GCC's dead code elimination being suboptimal.
Modify splraise() to allow better optimization.
Make cpl, ipending, and astpending volatile.
Make sure interrupts are disabled before jumping to a resume point,
to prevent races.
Make FPU faults use INTRFASTEXIT, and remove INTREXIT.
Build the frame for recursive interrupts manually, and make sure to
disable interrupts to avoid races.
VS: ----------------------------------------------------------------------


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision