Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sparc/include/param.h
RevisionDateAuthorComments
 1.76  20-Apr-2025  riastradh t_signal_and_sp: Add sparc support.

Seems fine! Would be nice if we had a well-known macro to abstract
PIC vs non-PIC `sethi/ori/(ld)' like I invented here, to reduce
needless #ifdef __PIC__ conditionals.

PR kern/59327: user stack pointer is not aligned properly
 1.75  02-Jun-2023  andvar branches: 1.75.6;
follow the steps of Andrew Doran (ad) commit and fix more s/loose/lose/ typos.
also s/beyound/beyond/ and few others along the way, mainly in comments.
 1.74  01-May-2020  isaki Move machine dependent AUDIO_BLK_MS default value to <machine/param.h>.
If the port has __AUDIO_BLK_MS in <machine/param.h>, it will be used.
Otherwise the default value (currently 10 msec) defined in audio.c will
be used. This mechanism is for very old ports which cannot satisfactorily
handle 10 msec block. Currently hppa, m68k, sh3, sparc(!64) and vax are.

For port maintainers, if general models in your port cannot satisfactorily
handle 10 msec block, please consider to define your suitable longer period
(40 msec would be a good first choice).
But please don't be eager to make the default value shorter.

<machine/param.h> was discussed in source-changes-d. It's better than
ifdef storm, or adding 60+ new header files in every arch/*/include/
directories for this. Thanks mrg@, ad@, and everyone.
http://mail-index.netbsd.org/source-changes-d/2020/05/01/msg012572.html
 1.73  15-May-2019  christos branches: 1.73.2;
From: Tobias Ulmer. Unbreak zfs module build on sparc{,64} by hiding DELAY.
ZFS has a conflicting definition of delay() and tries to hide it by
defining __HIDE_DELAY.
 1.72  07-Jan-2019  jdolecek move DEV_BSIZE, DEV_BSHIFT out of MD param.h, they are same on all ports

also move BLKDEV_IOSIZE, MAXPHYS, but allow override since some ports
have different value (powerpc uses NBPG for BLKDEV_IOSIZE, sun2/sun3
have lower MAXPHYS)
 1.71  13-Feb-2017  skrll branches: 1.71.12; 1.71.14;
G/C VM_MAX_KERNEL_BUF
 1.70  10-Feb-2012  para branches: 1.70.6; 1.70.24; 1.70.28; 1.70.32;
proper sizing of kmem_arena on different ports

PR port-i386/45946: Kernel locks up in VMEM system
 1.69  24-Jan-2012  christos Use and define ALIGN() ALIGN_POINTER() and STACK_ALIGN() consistently,
and avoid definining them in 10 different places if not needed.
 1.68  20-Jan-2012  joerg Change CMSG_SPACE and CMSG_LEN to provide Integer Constant Expressions
again. This was changed in sys/socket.h r1.51 to work around fallout
from the IPv6 aux data migration. It broke the historic ABI on some
platforms. This commit restores compatibility for netbsd32 code on such
platforms and provides a template for future changes to the CMSG_*
alignment. Revert PCC/Clang workarounds in postfix and tmux.
 1.67  08-Feb-2010  joerg branches: 1.67.10; 1.67.14;
Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
 1.66  28-Aug-2006  yamt branches: 1.66.60; 1.66.80;
- remove unused bdbtofsb.
- move the following macros from MD headers to sys/param.h.
ctod
dtoc
ctob
btoc
dbtob
btodb
 1.65  04-Mar-2006  uwe branches: 1.65.2;
De-__P.
 1.64  13-Jan-2006  chs branches: 1.64.2; 1.64.4;
increase NKMEMPAGES_MAX_DEFAULT to 32 MB. this is needed on sun4m machines
with 512 MB of RAM, and it doesn't seem to cause any problems on sun4c.
 1.63  11-Dec-2005  christos branches: 1.63.2;
merge ktrace-lwp.
 1.62  12-Dec-2003  martin branches: 1.62.14; 1.62.16;
If compiling for JavaStations, modify kernal VA layout to not conflict
with the PROM. From Valeriy E. Ushakov. This is a hack, but as long as
we don't have a way to arrange for a proper VA layout on this machines
(i.e. beyound the PROM) it is needed.
 1.61  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.60  11-Apr-2003  jdc branches: 1.60.2;
Always include (new) cpuconf.h.

From Christopher SEKIYA in PR port-sparc/21093.
 1.59  09-Apr-2003  thorpej Move CPU configuration predicates to <machine/cpuconf.h>.
 1.58  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.57  17-Jul-2002  thorpej Add a macro to test if the system uses the SRMMU (Sun4M || Sun4D).
 1.56  17-Jul-2002  thorpej Handle the CPU_NTYPES == 0 case (as we would see in bootblocks)
in the CPU types predicates.
 1.55  17-Jul-2002  thorpej Add a CPU_ISSUN4D predicate.
 1.54  17-Jul-2002  thorpej Instead of using a matrix of configured CPU types, first count
how many CPU types are configured into the kernel. Then, use this
information to define the CPU predicate macros according to the
following rules:

1. If support for a CPU type is not configured into the kernel,
then the test is always false.

2. Otherwise, if only one CPU type is configured into the kernel,
then the test is always true.

3. Otherwise, we have to reference the cputyp variable.

Use a similar strategy for short-cutting the page size related
definitions.
 1.53  17-Jul-2002  thorpej Remote CPU_ISSUN4OR4C and CPU_ISSUN4COR4M, and instead express them
as (CPU_ISSUN4 || CPU_ISSUN4C) and (CPU_ISSUN4C || CPU_ISSUN4M),
respectively. The compiler can still optimize as desired by expressing
them this way, and it simplifies adding new tests.

While here, just remove CPU_ISSUN4MOR4U; it's not used by anything.
 1.52  17-Jul-2002  thorpej Add CPU_SUN4D.
 1.51  26-Feb-2002  simonb branches: 1.51.8;
Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
 1.50  11-Dec-2001  uwe microSPARC-IIep is a sun4m but with an integrated PCI controller.
In a lot of places (like pmap &c) we want it to be treated as SUN4M.
But since various low-level things are done very differently from
normal sparcs (and since for now it requires a relocated kernel
anyway), the MSIIEP kernels are not supposed to support any other
system. So when MSIIEP is defined - insist on SUN4M defined and SUN4
and SUN4C not defined.
 1.49  04-Dec-2001  darrenr defopt "options SUN4*", put #define for each of SUN4, SUN4C, SUN4M and SUN4U
into opt_arch_sparc.h and include this wherever they are used.
 1.48  30-May-2001  mrg branches: 1.48.2; 1.48.8;
use _KERNEL_OPT
 1.47  10-May-2001  pk * reserve NBPG et.al. for kernel usage only.
* remove obsoleted comment on `physmap'.
 1.46  01-Mar-2001  pk branches: 1.46.2;
Drop MSGBUFSIZE; we don't use it and it can't currently be configured
to a different value anyway.
 1.45  30-Jun-2000  itojun raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory. MHLEN is too small
already (less than 80) and there are chances for unwanted packet loss due
to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
(even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
 1.44  22-May-2000  mrg branches: 1.44.4;
add two new CPU_ISXXX versions: CPU_ISSUN4U, CPU_ISSUN4MOR4U
 1.43  11-Feb-2000  thorpej Update for the NKMEMPAGES changes.
 1.42  26-Jan-2000  cjs Don't explode when we've got a lot of RAM. Limit our space for buffers
to 1/4 of the kernel VM map.
 1.41  04-Dec-1999  ragge CL* discarding.
 1.40  27-Nov-1999  mrg minor cosmetic merges; long way to go here.
 1.39  03-May-1999  christos branches: 1.39.2; 1.39.8;
move PROM_LOADADDR from promlib.h to param.h and remove its cast.
 1.38  14-Feb-1999  pk branches: 1.38.4;
Adjust to functionality and changes introduced with <machine/promlib.h>
 1.37  01-Feb-1999  mrg add CPU_SUN4U, to make libkvm compile.
 1.36  23-Aug-1998  pk Nuke phys_map & old dvmamap.
 1.35  21-Aug-1998  pk Convert to [pv]addr_t & [pv]size_t.
 1.34  29-Apr-1998  thorpej Pull in opt_gateway.h as appropriate.
 1.33  23-Sep-1997  pk Move KERNBASE to 0xf0000000.
 1.32  23-Sep-1997  pk MSGBUFSIZE needs no obscure adjustment; initmsgbuf() takes care of that.
 1.31  20-Sep-1997  leo Correct for the extra member in 'struct kern_msgbuf' when calculating
the number of bytes we want to allocate.
 1.30  19-Sep-1997  leo Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
 1.29  10-Mar-1997  pk branches: 1.29.4;
Remove `cpumod' and `mmumod' and several related constants.
This functionality is now taken over by cpuvar.h
 1.28  24-Feb-1997  fvdl Define ALIGNED_POINTER
 1.27  22-Oct-1996  pk branches: 1.27.6;
If no specific kernel architecture is requested, define the CPU_* and
NBPG et.al. as in the generic case. This would be the expected thing to do
when compiling LKMs and such.
 1.26  20-Oct-1996  pk Regroup the definitions of NBPG, PGOFSET and PGSHIFT into the section that
enumerates the possible SUN? combinations.
 1.25  28-Aug-1996  mrg re-order to allow NBPG/PGSHIFT/PGOFSET to work always.
 1.24  15-May-1996  mrg remove some RCS id's we don't need.
 1.23  31-Mar-1996  pk Add sun4m CPU/MMU identifications.
 1.22  04-Mar-1996  cgd add _MACHINE and _MACHINE_ARCH, which are like MACHINE and MACHINE_ARCH,
execpt without quotes. meant to be __CONCAT()ted for easy #includes
of machine-dependent headers for MI code (e.g. for the MI ISA/EISA/PCI/TC
bus code).
 1.21  22-Feb-1996  pk An #ifndef _LOCORE to make this file safe to include in locore.s.
Introduce a couple of `CPU-type' helper macros to reduce the preprocessor
tangos in many a source file.
 1.20  16-Feb-1996  pk delay() prototype.
 1.19  01-Feb-1996  mycroft LOCORE -> _LOCORE
 1.18  11-Dec-1995  pk Prototype dvma helper functions `dvma_malloc()/dvma_free()'
 1.17  06-Dec-1995  pk DVMA space is described by the variables `dvma_start' and `dvma_end'.
Prototype dvma_map*() routines.
 1.16  28-Jun-1995  cgd kill user-land DELAY macro, as suggested by gwr.
 1.15  26-Jun-1995  pk Define variables and macros for DVMA allocation using rmaps.
 1.14  26-Jun-1995  cgd clean up definitions of ctod(), dtoc(), ctob(), btoc(), btodb(), and
dbtob(). remove unused definitions of ctos(), stoc(), and dtob().
 1.13  28-Mar-1995  jtc KERNEL -> _KERNEL
 1.12  18-Mar-1995  cgd don't be so quick to cast macro arguments to unsigned; if the
arguments are really off_t's (e.g. to btodb), then you can lose
information. This was the "> 4G file systems don't work" bug; physio
uses btodb, which was broken.
 1.11  01-Feb-1995  pk Integrate changes from Chuck Cranor for the Sun 4/100.
Support for multiple register banks on SBUS devices (based on patches
from Francis Dupont).
Highlights:
romaux defines an array of register spaces.
pay attention to `vactype'.
quirks handling 4/100 idiosyncracies.
 1.10  20-Nov-1994  deraadt copyright/Id cleanup
 1.9  02-Nov-1994  deraadt do not have UPAGES definition
 1.8  26-Oct-1994  deraadt vme interrupt support
 1.7  20-Aug-1994  deraadt regarding NBPG, PGOFSET, PGSHIFT, NPTESG, VA_VPG:
these are simple macros unless you build a combined sun4+(sun4c,sun4m)
kernel -- then they point to variables which are initialized early on.
 1.6  04-Jul-1994  deraadt goodbye BTOPKERNBASE
 1.5  19-May-1994  deraadt liten
 1.4  04-Dec-1993  cgd add MACHINE_ARCH
 1.3  03-Dec-1993  deraadt monster kludge! struct kinfo is very large, cause the pmap struct is
very large. this has to fit into struct user.. kern_kinfo.c should get
fixed (for the core dump case)
 1.2  11-Oct-1993  deraadt stdarg.h, varargs.h, psl.h, autoconf.h: posted patches from torek
cpu.h: cpu_adjstack() won't work well in the NetBSD execve - need a
different model, stub enablertclock() for now..
exec.h: a netbsd-type exec.h file (ie. empty)
param.h: add MID_MACHINE
pmap.h: delete kernel_pmap hack - it doesn't work for us, + two proto's
vmparam.h: VM_MIN_ADDRESS = 0!
 1.1  02-Oct-1993  deraadt Chris Torek's sparc port. Missing lots of things.
 1.27.6.1  12-Mar-1997  is Merge in changes from The Trunk
 1.29.4.2  29-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.29.4.1  22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.38.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.39.8.2  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.39.8.1  21-Dec-1999  wrstuden Initial commit of recent changes to make DEV_BSIZE go away.

Runs on i386, needs work on other arch's. Main kernel routines should be
fine, but a number of the stand programs need help.

cd, fd, ccd, wd, and sd have been updated. sd has been tested with non-512
byte block devices. vnd, raidframe, and lfs need work.

Non 2**n block support is automatic for LKM's and conditional for kernels
on "options NON_PO2_BLOCKS".
 1.39.2.2  12-Mar-2001  bouyer Sync with HEAD.
 1.39.2.1  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.44.4.1  23-Jul-2000  itojun pullup from main trunc (approved by releng-1-5)

raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory. MHLEN is too small
already (less than 80) and there are chances for unwanted packet loss due
to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
(even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.

1.1 -> 1.2 syssrc/sys/arch/amigappc/include/param.h
1.13 -> 1.14 syssrc/sys/arch/arc/include/param.h
1.1 -> 1.2 syssrc/sys/arch/arm26/include/param.h
1.17 -> 1.18 syssrc/sys/arch/arm32/include/param.h
1.6 -> 1.7 syssrc/sys/arch/bebox/include/param.h
1.4 -> 1.5 syssrc/sys/arch/cobalt/include/param.h
1.4 -> 1.5 syssrc/sys/arch/evbsh3/include/param.h
1.2 -> 1.3 syssrc/sys/arch/hpcmips/include/param.h
1.40 -> 1.41 syssrc/sys/arch/i386/include/param.h
1.7 -> 1.8 syssrc/sys/arch/m68k/include/param.h
1.9 -> 1.10 syssrc/sys/arch/macppc/include/param.h
1.4 -> 1.5 syssrc/sys/arch/mmeye/include/param.h
1.6 -> 1.7 syssrc/sys/arch/newsmips/include/param.h
1.7 -> 1.8 syssrc/sys/arch/ofppc/include/param.h
1.23 -> 1.24 syssrc/sys/arch/pc532/include/param.h
1.32 -> 1.33 syssrc/sys/arch/pmax/include/param.h
1.7 -> 1.8 syssrc/sys/arch/powerpc/include/param.h
1.1 -> 1.2 syssrc/sys/arch/prep/include/param.h
1.1 -> 1.2 syssrc/sys/arch/sgimips/include/param.h
1.3 -> 1.4 syssrc/sys/arch/sh3/include/param.h
1.44 -> 1.45 syssrc/sys/arch/sparc/include/param.h
1.21 -> 1.22 syssrc/sys/arch/sparc64/include/param.h
1.43 -> 1.44 syssrc/sys/arch/vax/include/param.h
 1.46.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.48.8.6  16-Jan-2003  martin Backout previous - didn't mean to commit this file.
 1.48.8.5  16-Jan-2003  martin Fix typo.
 1.48.8.4  01-Aug-2002  nathanw Catch up to -current.
 1.48.8.3  28-Feb-2002  nathanw Catch up to -current.
 1.48.8.2  08-Jan-2002  nathanw Catch up to -current.
 1.48.8.1  30-May-2001  nathanw file param.h was added on branch nathanw_sa on 2002-01-08 00:27:39 +0000
 1.48.2.3  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.48.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.48.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.51.8.1  21-Jul-2002  gehenna catch up with -current.
 1.60.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.60.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.60.2.1  03-Aug-2004  skrll Sync with HEAD
 1.62.16.2  30-Dec-2006  yamt sync with head.
 1.62.16.1  21-Jun-2006  yamt sync with head.
 1.62.14.1  30-Jan-2006  tron Pull up following revision(s) (requested by chs in ticket #1147):
sys/arch/sparc/include/param.h: revision 1.64
increase NKMEMPAGES_MAX_DEFAULT to 32 MB. this is needed on sun4m machines
with 512 MB of RAM, and it doesn't seem to cause any problems on sun4c.
 1.63.2.1  15-Jan-2006  yamt sync with head.
 1.64.4.1  22-Apr-2006  simonb Sync with head.
 1.64.2.1  09-Sep-2006  rpaulo sync with head
 1.65.2.1  03-Sep-2006  yamt sync with head.
 1.66.80.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.66.60.1  11-Mar-2010  yamt sync with head
 1.67.14.1  18-Feb-2012  mrg merge to -current.
 1.67.10.1  17-Apr-2012  yamt sync with head
 1.70.32.1  21-Apr-2017  bouyer Sync with HEAD
 1.70.28.1  20-Mar-2017  pgoyette Sync with HEAD
 1.70.24.1  28-Aug-2017  skrll Sync with HEAD
 1.70.6.1  03-Dec-2017  jdolecek update from HEAD
 1.71.14.1  10-Jun-2019  christos Sync with HEAD
 1.71.12.1  18-Jan-2019  pgoyette Synch with HEAD
 1.73.2.1  18-May-2020  martin Pull up following revision(s) (requested by isaki in ticket #911):

sys/dev/audio/audiodef.h: revision 1.13
sys/dev/audio/audiodef.h: revision 1.14
sys/arch/sparc/include/param.h: revision 1.74
sys/arch/evbarm/conf/GENERIC64: revision 1.148
sys/arch/sh3/include/param.h: revision 1.25
sys/arch/evbarm/conf/GENERIC: revision 1.75
sys/arch/m68k/include/param.h: revision 1.23
sys/arch/amd64/conf/GENERIC: revision 1.564
sys/arch/hppa/include/param.h: revision 1.27
sys/dev/audio/audio.c: revision 1.68
sys/arch/vax/include/param.h: revision 1.63
sys/dev/audio/audio.c: revision 1.69

Reduce default AUDIO_BLK_MS from 40msec to 10msec on all platform except m68k
(m68k uses 40msec default as before). And remove the option from GENERIC.

- It's not good idea to set such parameter in individual GENERICs.
- 4msec is (probably no problem for most modern real hardware but)
too aggressive to be default.
- 10msec is too severe for antique machines but it's hard to draw a line.

Set AUDIO_BLK_MS 40 msec on other old(slow) architectures not only m68k.

Thanks tsutsui@ for comment about architecture choice.
And move it from audiodef.h to audio.c as suggested by joerg@.


Move machine dependent AUDIO_BLK_MS default value to <machine/param.h>.
If the port has __AUDIO_BLK_MS in <machine/param.h>, it will be used.

Otherwise the default value (currently 10 msec) defined in audio.c will
be used. This mechanism is for very old ports which cannot satisfactorily
handle 10 msec block. Currently hppa, m68k, sh3, sparc(!64) and vax are.

For port maintainers, if general models in your port cannot satisfactorily
handle 10 msec block, please consider to define your suitable longer period
(40 msec would be a good first choice).

But please don't be eager to make the default value shorter.
<machine/param.h> was discussed in source-changes-d. It's better than
ifdef storm, or adding 60+ new header files in every arch/*/include/
directories for this. Thanks mrg@, ad@, and everyone.
http://mail-index.netbsd.org/source-changes-d/2020/05/01/msg012572.html
 1.75.6.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed