History log of /openbsd-current/sys/arch/i386/include/_types.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.25 02-Jul-2023 cheloha

all platforms, kernel: remove __HAVE_CLOCKINTR symbol

Every platform made the clockintr switch at least six months ago.
The __HAVE_CLOCKINTR symbol is now redundant. Remove it.

Prompted by claudio@.

Link: https://marc.info/?l=openbsd-tech&m=168826181015032&w=2

"makes sense" mlarkin@


Revision tags: OPENBSD_7_3_BASE
# 1.24 06-Dec-2022 cheloha

i386: switch to clockintr

In lapic timer mode:

- Rip out lapic_delay(). We can't use the lapic timer to delay(9) when
it's running in one-shot mode.
- Add a randomized statclock(), stathz = hz.
- Add profiling support, profhz = stathz * 10.
- Wire up lapic_intrclock.

In i8254-mode:

- i8254's clockintr() does not have a monopoly on hardclock(9).
- mc146818's rtcintr() does not have a monopoly on statclock().
- In profiling mode, the statclock() will drift very slightly
because (profhz = 1024) does not divide into 1 billion. Need to
consider how best to fix this.

ACPI suspend/resume tested by mlarkin@ via ESXi. Tons of testing by
Scott Bennett on a Pentium 4 machine; APM suspend/resume confirmed to
work there, too.

Link: https://marc.info/?l=openbsd-tech&m=166776370803446&w=2

ok mlarkin@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.23 05-Mar-2018 deraadt

#define _MAX_PAGE_SHIFT in MD _types.h as the maximum pagesize an arch
needs (looking at you sgi, but others required this before). This is for
the circumstances we need pagesize known at compile time, not getpagesize()
runtime. Use it for malloc storage sizes, for shm, and to set pthread stack
default sizes. The stack sizes were a mess, and pushing them towards
page-aligned is healthy move (which will also be needed by the coming
stack register checker)
ok guenther kettenis, discussion with stefan


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.22 26-Sep-2015 guenther

lint is dead and C99 may be old enough to drive a car: delete LONGLONG
comments

ok millert@


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.21 19-Mar-2014 guenther

It's safe to assumed 'signed' exists


Revision tags: OPENBSD_5_5_BASE
# 1.20 18-Dec-2013 deraadt

Provide MI symbol _STACKALIGNBYTES


Revision tags: OPENBSD_5_4_BASE
# 1.19 13-Jul-2013 deraadt

unify register_t to long on all platforms
ok miod kettenis


# 1.18 05-Jul-2013 guenther

Take II, this time without flubbing off_t: : move several internal
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>

ok deraadt@ kettenis@ otto@


# 1.17 04-Jul-2013 otto

backout previous; off_t must be signed and there might be other C++ API
breakage lurking; ok kettenis@


# 1.16 04-Jul-2013 guenther

To ease future changes, move several internal type definitions that are
the same across all archs from <machine/_types.h> to <sys/_types.h>

ok deraadt@


Revision tags: OPENBSD_5_3_BASE
# 1.15 05-Nov-2012 miod

unifdef -D __HAVE_TIMECOUNTER


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.14 15-Nov-2011 deraadt

label_t is the kernel setjmp buffer. It should simply be an array of
the right type, noone will ever fiddle with the internals.
discussed with jsing


# 1.13 08-Sep-2011 guenther

Provide namespace-safe alignment macros in <machine/_types.h>, with
compat names kept in <machine/param.h>. In <sys/socket.h>, pull
in <sys/_types.h> instead of the namespace polluting <machine/param.h>
and completely eliminate __CMSG_ALIGN, replaced by _ALIGN

ok deraadt@


# 1.12 08-Sep-2011 guenther

Make the INT_FAST*_{MIN,MAX} macros match the types they're defined to.
Since the underlying types of the int_fast types are set by machine/_types.h,
put internal macros in that same file and define the exposed
INT_FAST*_{MIN,MAX} macros from those.

ok millert@, kettenis@


Revision tags: OPENBSD_5_0_BASE
# 1.11 23-Mar-2011 pirofti

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

Discussed and okay drahn@. Okay deraadt@.


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.10 04-Nov-2009 kettenis

Get rid of __HAVE_GENERIC_SOFT_INTERRUPTS now that all our platforms support it.

ok jsing@, miod@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.9 21-Jul-2008 martynas

- add proper double_t and float_t definitions for each arch
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per
C99). remove from math.h, and add proper definitions in float.h
ok millert@


# 1.8 07-May-2008 kettenis

Move i386 to __HAVE_GENERIC_SOFT_INTERRUPTS

ok dlg@, tested by dlg@, oga@, jsg@, deraadt@


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.7 16-May-2007 art

The world of __HAVEs and __HAVE_NOTs is reducing. All architectures
have cpu_info now, so kill the option.

eyeballed by jsg@ and grange@


# 1.6 15-May-2007 art

Remove the MI implementation of mutexes and remove the __HAVE_MUTEX
option. Every architecture implements mutexes now.


# 1.5 19-Mar-2007 art

Move i386 to timecounters. This is more or less the same code as amd64.

The "lapic" timer is ripped out since it wasn't actually a lapic timer,
but a hacked up tsc timer with some synchronization for MP. There is no
tsc timer right now since they are very unreliable on MP systems, systems
with apm, and systems that change the cpu clock. Which basically means
every modern machine out there. We're running with the i8259 timer now.

deraadt@ ok


Revision tags: OPENBSD_4_1_BASE
# 1.4 20-Feb-2007 tom

Revert PAE pmap for now, until the strange bug is found. This stops
the freezes many of us are seeing (especially on amd64 machines running
OpenBSD/i386).

Much testing by nick@ (as always - thanks!), hugh@, ian@, kettenis@
and Sam Smith (s (at) msmith (dot) net).

Requested by, input from, and ok deraadt@ ok art@, kettenis@, miod@


Revision tags: OPENBSD_4_0_BASE
# 1.3 27-Apr-2006 mickey

implement separate PAE pmap that allows access to 64g of physmem
if supported by the cpu(s). currently not enabled by default and
not compiled into ramdisks. this grows paddr_t to 64bit but yet
leaves bus_addr_t at 32bits. measures are taken to favour dmaable
memory allocation from below 4g line such that buffer cache is
already allocated form below, pool backend allocator prefers lower
memory and then finally bounce buffers are used as last resort.
PAE is engaged only if global variable cpu_pae is manually set
to non-zero and there is physical memory present above 4g.
simplify pcibios address math to use u_long as we always will
be in the 32bit space.


Revision tags: OPENBSD_3_9_BASE
# 1.2 13-Jan-2006 millert

Make size_t, ssize_t, intptr_t and uintptr_t consistent amongst our
architectures. They are now defined as unsigned long, long, long
and unsigned long respectively.


# 1.1 06-Jan-2006 millert

Merge machine/ansi.h and machine/types.h into machine/_types.h and
rename the types using the __ protected namespace (e.g. __size_t).
Idea from FreeBSD.


# 1.24 06-Dec-2022 cheloha

i386: switch to clockintr

In lapic timer mode:

- Rip out lapic_delay(). We can't use the lapic timer to delay(9) when
it's running in one-shot mode.
- Add a randomized statclock(), stathz = hz.
- Add profiling support, profhz = stathz * 10.
- Wire up lapic_intrclock.

In i8254-mode:

- i8254's clockintr() does not have a monopoly on hardclock(9).
- mc146818's rtcintr() does not have a monopoly on statclock().
- In profiling mode, the statclock() will drift very slightly
because (profhz = 1024) does not divide into 1 billion. Need to
consider how best to fix this.

ACPI suspend/resume tested by mlarkin@ via ESXi. Tons of testing by
Scott Bennett on a Pentium 4 machine; APM suspend/resume confirmed to
work there, too.

Link: https://marc.info/?l=openbsd-tech&m=166776370803446&w=2

ok mlarkin@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.23 05-Mar-2018 deraadt

#define _MAX_PAGE_SHIFT in MD _types.h as the maximum pagesize an arch
needs (looking at you sgi, but others required this before). This is for
the circumstances we need pagesize known at compile time, not getpagesize()
runtime. Use it for malloc storage sizes, for shm, and to set pthread stack
default sizes. The stack sizes were a mess, and pushing them towards
page-aligned is healthy move (which will also be needed by the coming
stack register checker)
ok guenther kettenis, discussion with stefan


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.22 26-Sep-2015 guenther

lint is dead and C99 may be old enough to drive a car: delete LONGLONG
comments

ok millert@


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.21 19-Mar-2014 guenther

It's safe to assumed 'signed' exists


Revision tags: OPENBSD_5_5_BASE
# 1.20 18-Dec-2013 deraadt

Provide MI symbol _STACKALIGNBYTES


Revision tags: OPENBSD_5_4_BASE
# 1.19 13-Jul-2013 deraadt

unify register_t to long on all platforms
ok miod kettenis


# 1.18 05-Jul-2013 guenther

Take II, this time without flubbing off_t: : move several internal
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>

ok deraadt@ kettenis@ otto@


# 1.17 04-Jul-2013 otto

backout previous; off_t must be signed and there might be other C++ API
breakage lurking; ok kettenis@


# 1.16 04-Jul-2013 guenther

To ease future changes, move several internal type definitions that are
the same across all archs from <machine/_types.h> to <sys/_types.h>

ok deraadt@


Revision tags: OPENBSD_5_3_BASE
# 1.15 05-Nov-2012 miod

unifdef -D __HAVE_TIMECOUNTER


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.14 15-Nov-2011 deraadt

label_t is the kernel setjmp buffer. It should simply be an array of
the right type, noone will ever fiddle with the internals.
discussed with jsing


# 1.13 08-Sep-2011 guenther

Provide namespace-safe alignment macros in <machine/_types.h>, with
compat names kept in <machine/param.h>. In <sys/socket.h>, pull
in <sys/_types.h> instead of the namespace polluting <machine/param.h>
and completely eliminate __CMSG_ALIGN, replaced by _ALIGN

ok deraadt@


# 1.12 08-Sep-2011 guenther

Make the INT_FAST*_{MIN,MAX} macros match the types they're defined to.
Since the underlying types of the int_fast types are set by machine/_types.h,
put internal macros in that same file and define the exposed
INT_FAST*_{MIN,MAX} macros from those.

ok millert@, kettenis@


Revision tags: OPENBSD_5_0_BASE
# 1.11 23-Mar-2011 pirofti

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

Discussed and okay drahn@. Okay deraadt@.


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.10 04-Nov-2009 kettenis

Get rid of __HAVE_GENERIC_SOFT_INTERRUPTS now that all our platforms support it.

ok jsing@, miod@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.9 21-Jul-2008 martynas

- add proper double_t and float_t definitions for each arch
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per
C99). remove from math.h, and add proper definitions in float.h
ok millert@


# 1.8 07-May-2008 kettenis

Move i386 to __HAVE_GENERIC_SOFT_INTERRUPTS

ok dlg@, tested by dlg@, oga@, jsg@, deraadt@


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.7 16-May-2007 art

The world of __HAVEs and __HAVE_NOTs is reducing. All architectures
have cpu_info now, so kill the option.

eyeballed by jsg@ and grange@


# 1.6 15-May-2007 art

Remove the MI implementation of mutexes and remove the __HAVE_MUTEX
option. Every architecture implements mutexes now.


# 1.5 19-Mar-2007 art

Move i386 to timecounters. This is more or less the same code as amd64.

The "lapic" timer is ripped out since it wasn't actually a lapic timer,
but a hacked up tsc timer with some synchronization for MP. There is no
tsc timer right now since they are very unreliable on MP systems, systems
with apm, and systems that change the cpu clock. Which basically means
every modern machine out there. We're running with the i8259 timer now.

deraadt@ ok


Revision tags: OPENBSD_4_1_BASE
# 1.4 20-Feb-2007 tom

Revert PAE pmap for now, until the strange bug is found. This stops
the freezes many of us are seeing (especially on amd64 machines running
OpenBSD/i386).

Much testing by nick@ (as always - thanks!), hugh@, ian@, kettenis@
and Sam Smith (s (at) msmith (dot) net).

Requested by, input from, and ok deraadt@ ok art@, kettenis@, miod@


Revision tags: OPENBSD_4_0_BASE
# 1.3 27-Apr-2006 mickey

implement separate PAE pmap that allows access to 64g of physmem
if supported by the cpu(s). currently not enabled by default and
not compiled into ramdisks. this grows paddr_t to 64bit but yet
leaves bus_addr_t at 32bits. measures are taken to favour dmaable
memory allocation from below 4g line such that buffer cache is
already allocated form below, pool backend allocator prefers lower
memory and then finally bounce buffers are used as last resort.
PAE is engaged only if global variable cpu_pae is manually set
to non-zero and there is physical memory present above 4g.
simplify pcibios address math to use u_long as we always will
be in the 32bit space.


Revision tags: OPENBSD_3_9_BASE
# 1.2 13-Jan-2006 millert

Make size_t, ssize_t, intptr_t and uintptr_t consistent amongst our
architectures. They are now defined as unsigned long, long, long
and unsigned long respectively.


# 1.1 06-Jan-2006 millert

Merge machine/ansi.h and machine/types.h into machine/_types.h and
rename the types using the __ protected namespace (e.g. __size_t).
Idea from FreeBSD.


# 1.23 05-Mar-2018 deraadt

#define _MAX_PAGE_SHIFT in MD _types.h as the maximum pagesize an arch
needs (looking at you sgi, but others required this before). This is for
the circumstances we need pagesize known at compile time, not getpagesize()
runtime. Use it for malloc storage sizes, for shm, and to set pthread stack
default sizes. The stack sizes were a mess, and pushing them towards
page-aligned is healthy move (which will also be needed by the coming
stack register checker)
ok guenther kettenis, discussion with stefan


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.22 26-Sep-2015 guenther

lint is dead and C99 may be old enough to drive a car: delete LONGLONG
comments

ok millert@


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.21 19-Mar-2014 guenther

It's safe to assumed 'signed' exists


Revision tags: OPENBSD_5_5_BASE
# 1.20 18-Dec-2013 deraadt

Provide MI symbol _STACKALIGNBYTES


Revision tags: OPENBSD_5_4_BASE
# 1.19 13-Jul-2013 deraadt

unify register_t to long on all platforms
ok miod kettenis


# 1.18 05-Jul-2013 guenther

Take II, this time without flubbing off_t: : move several internal
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>

ok deraadt@ kettenis@ otto@


# 1.17 04-Jul-2013 otto

backout previous; off_t must be signed and there might be other C++ API
breakage lurking; ok kettenis@


# 1.16 04-Jul-2013 guenther

To ease future changes, move several internal type definitions that are
the same across all archs from <machine/_types.h> to <sys/_types.h>

ok deraadt@


Revision tags: OPENBSD_5_3_BASE
# 1.15 05-Nov-2012 miod

unifdef -D __HAVE_TIMECOUNTER


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.14 15-Nov-2011 deraadt

label_t is the kernel setjmp buffer. It should simply be an array of
the right type, noone will ever fiddle with the internals.
discussed with jsing


# 1.13 08-Sep-2011 guenther

Provide namespace-safe alignment macros in <machine/_types.h>, with
compat names kept in <machine/param.h>. In <sys/socket.h>, pull
in <sys/_types.h> instead of the namespace polluting <machine/param.h>
and completely eliminate __CMSG_ALIGN, replaced by _ALIGN

ok deraadt@


# 1.12 08-Sep-2011 guenther

Make the INT_FAST*_{MIN,MAX} macros match the types they're defined to.
Since the underlying types of the int_fast types are set by machine/_types.h,
put internal macros in that same file and define the exposed
INT_FAST*_{MIN,MAX} macros from those.

ok millert@, kettenis@


Revision tags: OPENBSD_5_0_BASE
# 1.11 23-Mar-2011 pirofti

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

Discussed and okay drahn@. Okay deraadt@.


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.10 04-Nov-2009 kettenis

Get rid of __HAVE_GENERIC_SOFT_INTERRUPTS now that all our platforms support it.

ok jsing@, miod@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.9 21-Jul-2008 martynas

- add proper double_t and float_t definitions for each arch
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per
C99). remove from math.h, and add proper definitions in float.h
ok millert@


# 1.8 07-May-2008 kettenis

Move i386 to __HAVE_GENERIC_SOFT_INTERRUPTS

ok dlg@, tested by dlg@, oga@, jsg@, deraadt@


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.7 16-May-2007 art

The world of __HAVEs and __HAVE_NOTs is reducing. All architectures
have cpu_info now, so kill the option.

eyeballed by jsg@ and grange@


# 1.6 15-May-2007 art

Remove the MI implementation of mutexes and remove the __HAVE_MUTEX
option. Every architecture implements mutexes now.


# 1.5 19-Mar-2007 art

Move i386 to timecounters. This is more or less the same code as amd64.

The "lapic" timer is ripped out since it wasn't actually a lapic timer,
but a hacked up tsc timer with some synchronization for MP. There is no
tsc timer right now since they are very unreliable on MP systems, systems
with apm, and systems that change the cpu clock. Which basically means
every modern machine out there. We're running with the i8259 timer now.

deraadt@ ok


Revision tags: OPENBSD_4_1_BASE
# 1.4 20-Feb-2007 tom

Revert PAE pmap for now, until the strange bug is found. This stops
the freezes many of us are seeing (especially on amd64 machines running
OpenBSD/i386).

Much testing by nick@ (as always - thanks!), hugh@, ian@, kettenis@
and Sam Smith (s (at) msmith (dot) net).

Requested by, input from, and ok deraadt@ ok art@, kettenis@, miod@


Revision tags: OPENBSD_4_0_BASE
# 1.3 27-Apr-2006 mickey

implement separate PAE pmap that allows access to 64g of physmem
if supported by the cpu(s). currently not enabled by default and
not compiled into ramdisks. this grows paddr_t to 64bit but yet
leaves bus_addr_t at 32bits. measures are taken to favour dmaable
memory allocation from below 4g line such that buffer cache is
already allocated form below, pool backend allocator prefers lower
memory and then finally bounce buffers are used as last resort.
PAE is engaged only if global variable cpu_pae is manually set
to non-zero and there is physical memory present above 4g.
simplify pcibios address math to use u_long as we always will
be in the 32bit space.


Revision tags: OPENBSD_3_9_BASE
# 1.2 13-Jan-2006 millert

Make size_t, ssize_t, intptr_t and uintptr_t consistent amongst our
architectures. They are now defined as unsigned long, long, long
and unsigned long respectively.


# 1.1 06-Jan-2006 millert

Merge machine/ansi.h and machine/types.h into machine/_types.h and
rename the types using the __ protected namespace (e.g. __size_t).
Idea from FreeBSD.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.22 26-Sep-2015 guenther

lint is dead and C99 may be old enough to drive a car: delete LONGLONG
comments

ok millert@


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.21 19-Mar-2014 guenther

It's safe to assumed 'signed' exists


Revision tags: OPENBSD_5_5_BASE
# 1.20 18-Dec-2013 deraadt

Provide MI symbol _STACKALIGNBYTES


Revision tags: OPENBSD_5_4_BASE
# 1.19 13-Jul-2013 deraadt

unify register_t to long on all platforms
ok miod kettenis


# 1.18 05-Jul-2013 guenther

Take II, this time without flubbing off_t: : move several internal
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>

ok deraadt@ kettenis@ otto@


# 1.17 04-Jul-2013 otto

backout previous; off_t must be signed and there might be other C++ API
breakage lurking; ok kettenis@


# 1.16 04-Jul-2013 guenther

To ease future changes, move several internal type definitions that are
the same across all archs from <machine/_types.h> to <sys/_types.h>

ok deraadt@


Revision tags: OPENBSD_5_3_BASE
# 1.15 05-Nov-2012 miod

unifdef -D __HAVE_TIMECOUNTER


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.14 15-Nov-2011 deraadt

label_t is the kernel setjmp buffer. It should simply be an array of
the right type, noone will ever fiddle with the internals.
discussed with jsing


# 1.13 08-Sep-2011 guenther

Provide namespace-safe alignment macros in <machine/_types.h>, with
compat names kept in <machine/param.h>. In <sys/socket.h>, pull
in <sys/_types.h> instead of the namespace polluting <machine/param.h>
and completely eliminate __CMSG_ALIGN, replaced by _ALIGN

ok deraadt@


# 1.12 08-Sep-2011 guenther

Make the INT_FAST*_{MIN,MAX} macros match the types they're defined to.
Since the underlying types of the int_fast types are set by machine/_types.h,
put internal macros in that same file and define the exposed
INT_FAST*_{MIN,MAX} macros from those.

ok millert@, kettenis@


Revision tags: OPENBSD_5_0_BASE
# 1.11 23-Mar-2011 pirofti

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

Discussed and okay drahn@. Okay deraadt@.


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.10 04-Nov-2009 kettenis

Get rid of __HAVE_GENERIC_SOFT_INTERRUPTS now that all our platforms support it.

ok jsing@, miod@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.9 21-Jul-2008 martynas

- add proper double_t and float_t definitions for each arch
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per
C99). remove from math.h, and add proper definitions in float.h
ok millert@


# 1.8 07-May-2008 kettenis

Move i386 to __HAVE_GENERIC_SOFT_INTERRUPTS

ok dlg@, tested by dlg@, oga@, jsg@, deraadt@


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE
# 1.7 16-May-2007 art

The world of __HAVEs and __HAVE_NOTs is reducing. All architectures
have cpu_info now, so kill the option.

eyeballed by jsg@ and grange@


# 1.6 15-May-2007 art

Remove the MI implementation of mutexes and remove the __HAVE_MUTEX
option. Every architecture implements mutexes now.


# 1.5 19-Mar-2007 art

Move i386 to timecounters. This is more or less the same code as amd64.

The "lapic" timer is ripped out since it wasn't actually a lapic timer,
but a hacked up tsc timer with some synchronization for MP. There is no
tsc timer right now since they are very unreliable on MP systems, systems
with apm, and systems that change the cpu clock. Which basically means
every modern machine out there. We're running with the i8259 timer now.

deraadt@ ok


Revision tags: OPENBSD_4_1_BASE
# 1.4 20-Feb-2007 tom

Revert PAE pmap for now, until the strange bug is found. This stops
the freezes many of us are seeing (especially on amd64 machines running
OpenBSD/i386).

Much testing by nick@ (as always - thanks!), hugh@, ian@, kettenis@
and Sam Smith (s (at) msmith (dot) net).

Requested by, input from, and ok deraadt@ ok art@, kettenis@, miod@


Revision tags: OPENBSD_4_0_BASE
# 1.3 27-Apr-2006 mickey

implement separate PAE pmap that allows access to 64g of physmem
if supported by the cpu(s). currently not enabled by default and
not compiled into ramdisks. this grows paddr_t to 64bit but yet
leaves bus_addr_t at 32bits. measures are taken to favour dmaable
memory allocation from below 4g line such that buffer cache is
already allocated form below, pool backend allocator prefers lower
memory and then finally bounce buffers are used as last resort.
PAE is engaged only if global variable cpu_pae is manually set
to non-zero and there is physical memory present above 4g.
simplify pcibios address math to use u_long as we always will
be in the 32bit space.


Revision tags: OPENBSD_3_9_BASE
# 1.2 13-Jan-2006 millert

Make size_t, ssize_t, intptr_t and uintptr_t consistent amongst our
architectures. They are now defined as unsigned long, long, long
and unsigned long respectively.


# 1.1 06-Jan-2006 millert

Merge machine/ansi.h and machine/types.h into machine/_types.h and
rename the types using the __ protected namespace (e.g. __size_t).
Idea from FreeBSD.