Home | History | Annotate | Download | only in sbus
History log of /src/sys/dev/sbus/bpp.c
RevisionDateAuthorComments
 1.47  26-Sep-2021  thorpej Change the kqueue filterops::f_isfd field to filterops::f_flags, and
define a flag FILTEROP_ISFD that has the meaning of the prior f_isfd.
Field and flag name aligned with OpenBSD.

This does not constitute a functional or ABI change, as the field location
and size, and the value placed in that field, are the same as the previous
code, but we're bumping __NetBSD_Version__ so 3rd-party module source code
can adapt, as needed.

NetBSD 9.99.89
 1.46  18-Dec-2020  thorpej Use sel{record,remove}_knote().
 1.45  23-May-2020  ad branches: 1.45.2;
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.44  10-Nov-2019  chs in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.43  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.42  25-Oct-2017  maya branches: 1.42.2; 1.42.4;
Use C99 initializer for filterops

Mostly done with spatch with touchups for indentation

@@
expression a;
identifier b,c,d;
identifier p;
@@
const struct filterops p =
- { a, b, c, d
+ {
+ .f_isfd = a,
+ .f_attach = b,
+ .f_detach = c,
+ .f_event = d,
};
 1.41  25-Jul-2014  dholland Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.40  16-Mar-2014  dholland branches: 1.40.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.39  17-Sep-2009  tsutsui branches: 1.39.12; 1.39.22; 1.39.26;
Remove struct sbusdev and related functions sbus_establish() and sbusreset().
They are derived from 4.4BSD/sparc and have been there since initial import
of NetBSD/sparc in 1993, but the struct sbusdev is almost unused for years,
nothing calls sbusreset(), and all (*sd->sd_reset)() functions look bogus.

Suggested by mrg@ and martin@, and tested on SS1+ and SS20.
 1.38  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.37  24-Apr-2008  ad branches: 1.37.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.36  21-Apr-2008  ad Don't send signals from a hardware interrupt handler. XXX This is still
dodgy, because sc->sc_asyncproc can exit and we don't find out about
that.
 1.35  13-Apr-2008  tsutsui branches: 1.35.2;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.34  05-Apr-2008  cegger use aprint_*_dev and device_xname
 1.33  02-Mar-2008  nakayama Fix previous.
sc_rsel and sc_wsel are in bpp_softc, not in lsi64854_softc.
 1.32  01-Mar-2008  rmind Welcome to 4.99.55:

- Add a lot of missing selinit() and seldestroy() calls.

- Merge selwakeup() and selnotify() calls into a single selnotify().

- Add an additional 'events' argument to selnotify() call. It will
indicate which event (POLL_IN, POLL_OUT, etc) happen. If unknown,
zero may be used.

Note: please pass appropriate value of 'events' where possible.
Proposed on: <tech-kern>
 1.31  05-Dec-2007  pooka branches: 1.31.8; 1.31.12;
Do not "return 1" from kqfilter for errors. That value is passed
directly to the userland caller and results in a mysterious EPERM.
Instead, return EINVAL or something else sensible depending on the
case.
 1.30  19-Oct-2007  ad branches: 1.30.2; 1.30.4;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.29  04-Mar-2007  christos branches: 1.29.2; 1.29.14; 1.29.16; 1.29.20;
fix fallout from caddr_t changes.
 1.28  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.27  09-Feb-2007  ad branches: 1.27.2;
Merge newlock2 to head.
 1.26  15-Oct-2006  martin Add missing initializer
 1.25  11-Dec-2005  christos branches: 1.25.20; 1.25.22;
merge ktrace-lwp.
 1.24  27-Feb-2005  perry branches: 1.24.4;
nuke trailing whitespace
 1.23  04-Feb-2005  perry de-__P
 1.22  17-Mar-2004  pk branches: 1.22.8; 1.22.10;
Rename PROM_getprop*() => prom_getprop*().
 1.21  29-Jun-2003  fvdl branches: 1.21.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.20  29-Jun-2003  darrenr More changes for providing lwpid for ktrace (sparc GENERIC built)
 1.19  10-Dec-2002  pk Remove the `flags' argument from bus_intr_establish().
 1.18  26-Nov-2002  christos si_ -> sel_
 1.17  23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.16  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.15  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.14  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.13  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.12  20-Mar-2002  eeh branches: 1.12.4;
Get rid of unnecessary BUS_SPACE_MAP_LINEAR.
 1.11  11-Mar-2002  pk Get rid of `bus_type_t' and use BUS_ADDR() (in sbus_bus_map()) to construct
a `bus_addr_t' to pass on to bus_space_map().

Drop `va' argument from sbus_bus_map(); it should not be used by MI Sbus
drivers.
 1.10  13-Nov-2001  lukem add RCSIDs
 1.9  26-Sep-2001  eeh getprop* -> PROM_getprop*
 1.8  01-Nov-2000  eeh branches: 1.8.2; 1.8.4; 1.8.6;
Fix warning in a debug printf.
 1.7  31-Oct-2000  eeh Clean up a #define that doesn't belong. Oops. That's what I get for
working this late.
 1.6  31-Oct-2000  eeh Get the bpp driver to work properly.
 1.5  09-Jul-2000  pk Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
 1.4  14-Jun-2000  pk branches: 1.4.2;
Eliminate a race condition reported by mouse on port-sparc.
 1.3  21-Nov-1999  pk branches: 1.3.2;
Check presence of Sbus interrupt properties before using them.
Only one case is known to trigger this omission: a Sparc Classic
configured as X terminal.
 1.2  28-Feb-1999  pk branches: 1.2.8; 1.2.14;
Fix what is probably a past-o.
 1.1  21-Sep-1998  pk LSI63854 based parallel port driver skeleton.
 1.2.14.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.2.8.2  22-Nov-2000  bouyer Sync with HEAD.
 1.2.8.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.3.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.4.2.1  19-Jul-2000  mrg pull up sparc/sparc64 bus_intr_establish() changes, necessary for sparc64
(originally done by pk, approved by thorpej):

>Add a `device class' interrupt level argument (from machine/intr.h)
>to bus_interrupt_establish().
>
>It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
>level to devices in PCI slots.
 1.8.6.2  10-Oct-2001  fvdl Convert all remaining devices.
 1.8.6.1  01-Oct-2001  fvdl Catch up with -current.
 1.8.4.7  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.8.4.6  02-Oct-2002  jdolecek do not need the (void *) cast for kn_hook anymore
 1.8.4.5  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.8.4.4  18-Jun-2002  jdolecek make compile (g/c unused code)
 1.8.4.3  16-Mar-2002  jdolecek Catch up with -current.
 1.8.4.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.4.1  12-Sep-2001  thorpej Add kqueue support (not compiled yet).
 1.8.2.7  11-Dec-2002  thorpej Sync with HEAD.
 1.8.2.6  11-Nov-2002  nathanw Catch up to -current
 1.8.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.8.2.4  17-Sep-2002  nathanw Catch up to -current.
 1.8.2.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.8.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.8.2.1  08-Oct-2001  nathanw Catch up to -current.
 1.12.4.1  16-May-2002  gehenna Add the character device switch.
 1.21.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.21.2.5  04-Feb-2005  skrll Sync with HEAD.
 1.21.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.21.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.21.2.2  26-Aug-2004  skrll Adapt to branch.

sparc64 GENERIC compiles.
 1.21.2.1  03-Aug-2004  skrll Sync with HEAD
 1.22.10.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.22.10.1  12-Feb-2005  yamt sync with head.
 1.22.8.1  29-Apr-2005  kent sync with -current
 1.24.4.7  17-Mar-2008  yamt sync with head.
 1.24.4.6  07-Dec-2007  yamt sync with head
 1.24.4.5  27-Oct-2007  yamt sync with head.
 1.24.4.4  03-Sep-2007  yamt sync with head.
 1.24.4.3  26-Feb-2007  yamt sync with head.
 1.24.4.2  30-Dec-2006  yamt sync with head.
 1.24.4.1  21-Jun-2006  yamt sync with head.
 1.25.22.1  22-Oct-2006  yamt sync with head
 1.25.20.2  19-Jan-2007  ad Acquire proclist_mutex before sending signals.
 1.25.20.1  18-Nov-2006  ad Sync with head.
 1.27.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.29.20.1  25-Oct-2007  bouyer Sync with HEAD.
 1.29.16.3  23-Mar-2008  matt sync with HEAD
 1.29.16.2  09-Jan-2008  matt sync with HEAD
 1.29.16.1  06-Nov-2007  matt sync with HEAD
 1.29.14.2  09-Dec-2007  jmcneill Sync with HEAD.
 1.29.14.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.29.2.1  23-Oct-2007  ad Sync with head.
 1.30.4.1  08-Dec-2007  ad Sync with head.
 1.30.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.31.12.2  02-Jun-2008  mjf Sync with HEAD.
 1.31.12.1  03-Apr-2008  mjf Sync with HEAD.
 1.31.8.1  24-Mar-2008  keiichi sync with head.
 1.35.2.1  18-May-2008  yamt sync with head.
 1.37.2.2  11-Mar-2010  yamt sync with head
 1.37.2.1  16-May-2008  yamt sync with head.
 1.39.26.1  18-May-2014  rmind sync with head
 1.39.22.2  03-Dec-2017  jdolecek update from HEAD
 1.39.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.39.12.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.40.2.1  10-Aug-2014  tls Rebase.
 1.42.4.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.42.4.1  10-Jun-2019  christos Sync with HEAD
 1.42.2.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.45.2.1  03-Jan-2021  thorpej Sync w/ HEAD.

RSS XML Feed