Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/atari/dev/clock.c
RevisionDateAuthorComments
 1.67  07-Sep-2025  thorpej Change todr_chip_handle::cookie -> todr_chip_handle::todr_dev, and
make it a device_t. Upcoming functional changes will require the
device_t associated with a TODR device.

Change todr_chip_handle::bus_cookie -> todr_chip_handle::todr_devaux.
Nothing was using the old field, but I decided to keep it around just
in cause something needs it in the future.

And with these largely mechanical yet semantically meaningful changes,
thus spake the Oracle: "Welcome to NetBSD 11.99.2."
 1.66  07-Sep-2025  thorpej Remove unnecessary NULL-initialization of TODR handle fields.
 1.65  07-Sep-2025  thorpej Initialize the TODR cookie. Not used now, but will be in the future.
 1.64  26-Jun-2022  tsutsui Use aprint_*(9) for device attach messages.
 1.63  26-Jun-2022  tsutsui Make local devsw functions static.

No visible regression on TT030.
 1.62  03-Jul-2020  maxv hardclock_ticks -> getticks()
 1.61  29-May-2020  rin For struct timecounter, use C99 initializers.
Compile tested. No functional changes intended.
 1.60  29-Jun-2019  tsutsui Misc cosmetics and cleanup.
 1.59  25-Jul-2014  dholland branches: 1.59.28;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.58  26-Mar-2014  christos branches: 1.58.2;
kill sprintf
 1.57  24-Mar-2014  christos - remove unused
- use cpu_{g,s}etmodel() (not committed yet)
 1.56  16-Mar-2014  dholland 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.55  26-Jan-2013  apb branches: 1.55.2;
use sizeof(buffer) - 1, not sizeof(buffer - 1)
 1.54  30-Jun-2012  tsutsui branches: 1.54.2;
Fix buffer overrun (off by one). PR port-atari/42717
 1.53  05-Jun-2011  tsutsui branches: 1.53.2;
Split device_t/softc. No crash on TT030.
 1.52  08-Feb-2011  rmind branches: 1.52.2;
Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.51  13-Apr-2010  tsutsui branches: 1.51.2; 1.51.4;
Include "ioconf.h" to declare struct cfdriver foo_cd.
 1.50  23-Aug-2009  tsutsui branches: 1.50.2; 1.50.4;
Use proper pointer types and names rather than casts for readability.
 1.49  07-Jul-2009  tsutsui KNF, ANSIfy, etc.
 1.48  07-Jul-2009  tsutsui Explicitly initialize the MFP Timer-B for delay(9) from atari_hwinit()
rather than using if(!atari_realconfig) in clockmatch().
(I doubt the latter one has actually been called..)
 1.47  07-Jul-2009  tsutsui Add a workaround for annoying
"WARNING: negative runtime; monotonic clock has gone backwards"
message. Partially taken from hp300.
 1.46  18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.45  14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.44  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.43  14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.42  04-Nov-2008  abs branches: 1.42.4;
Move tc_init(&clk_timecounter); to stop the "timecounter:" message
appearing in the middle of the clock0 attach message. Tested by
Tuomo Makinen
 1.41  11-Jun-2008  tsutsui branches: 1.41.2; 1.41.4; 1.41.6;
Use device_private() and device_lookup_privat() to get softc.
 1.40  08-Jan-2008  joerg branches: 1.40.6; 1.40.8; 1.40.10; 1.40.12; 1.40.14;
Convert Atari to generic TODR and timecounter.
 1.39  03-Jan-2008  joerg Simplify delay based on x86 version.
 1.38  04-Mar-2007  christos branches: 1.38.20; 1.38.26; 1.38.32;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.37  24-Dec-2005  perry branches: 1.37.24; 1.37.26; 1.37.34;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.36  11-Dec-2005  christos merge ktrace-lwp.
 1.35  04-Jun-2005  he branches: 1.35.2;
Adapt to compiling with -Wshadow and -Wcast-qual, by adding const
qualification in places and renaming a few local variables.
Also adds a couple uses of __UNVOLATILE() to allow passing volatile
variables to functions wanting e.g. caddr_t.
 1.34  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.33  15-Jul-2003  lukem __KERNEL_RCSID()
 1.32  17-Jan-2003  thorpej branches: 1.32.2;
Merge the nathanw_sa branch.
 1.31  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.30  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.29  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.28  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.27  26-Jul-2001  wiz branches: 1.27.2; 1.27.6; 1.27.14;
Various typos in comments (neccessary, sceme, choise, ...).
 1.26  18-Jun-2001  wiz branches: 1.26.2;
Symmetric has one s and two m's.
 1.25  24-Apr-2001  leo Add sanity checking on register B of the mc146818.
 1.24  29-Jan-2001  leo branches: 1.24.2;
Fix y2001 problem in the initial read of the RTC.
 1.23  07-Jun-2000  leo branches: 1.23.2;
Mark 'n' explicitely as output of the 'mulul' instruction.
 1.22  31-May-2000  leo Fix some bugs in clkread(). These bugs caused strange time leaps.
 1.21  06-Jan-2000  leo branches: 1.21.2;
Fix y2k buglet in /dev/rtc reported by Julian Coleman. Note that the input
and output format of /dev/rtc is now changed.
 1.20  06-Aug-1999  leo branches: 1.20.2;
Change the way that bit's are cleared in the InterruptPending register of
the 68901. Do this now by _assigning_ ~<bit_to_clear> instead of the
previously used 'andb ~<bit_to_clear>'. The latter caused a rwm-cycle that
caused a race condition to happen when an interrupt arrived between the
Read and Modify-Write.
Anyway, this solved my hanging keyboard problem.
 1.19  12-Jan-1998  thorpej branches: 1.19.8;
Update for changes to config.
 1.18  26-Feb-1997  leo Use generic date conversion module.
 1.17  20-Dec-1996  leo branches: 1.17.6;
Get rid of BROKEN_INDIRECT_CONFIG
 1.16  18-Dec-1996  leo Tweak the clockframe structure a bit so we are able to save a few cycles
at interrupt time. (From Gordon Ross).
 1.15  16-Dec-1996  leo Move up the initialisations for the delay routine in the initialisation
process. It's now also available to the different device probes.
 1.14  16-Dec-1996  leo Implement an rtc-device. Credits for the idea goes to Wolfgang Solfrank.
Because there is no way yet to tell init(1) to execute commands before
single user-mode is entered, the inittodr() function is still partly
functional. It retrieves the value of the RTC and sets the time as if
the RTC was running at UTC. The resettodr() function is a No-Op. The
RTC can only be changed by a write to /dev/rtc.
The TIMEZONE and DST options are no longer needed and removed from the
config files.
 1.13  13-Oct-1996  christos backout previous kprintf changes
 1.12  11-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.11  26-Apr-1996  leo Corrections for removed <sys/cpu.h> and some more prototypes.
 1.10  17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.9  22-Feb-1996  leo First bunch of changes due to stricter prototype checking.
 1.8  11-Feb-1996  leo Some extra range-tests on the RTC values.
 1.7  06-Jan-1996  leo Add an nvram-driver. This driver makes it possible to read/write the
configuration info stored in the nvram on the mc146818.
 1.6  01-Dec-1995  leo Remove forgotten #endif
 1.5  30-Nov-1995  leo Add kernel option for separate {stat,prof}clock
 1.4  23-Sep-1995  leo PROF -> GPROF
 1.3  28-May-1995  leo Use <dev/ic/mc146818.h>. Change systemclock settings. Usable values for
HZ are now 48/64/96. This reduces the interrupt overhead, because we
don't need the extra division by 4 in the interrupt handler.
 1.2  05-May-1995  leo Shift system clocks from TT-mfp to ST-mfp and remove some dead-code.
 1.1  26-Mar-1995  leo branches: 1.1.1;
Initial revision
 1.1.1.1  26-Mar-1995  leo NetBSD/Atari, port by Leo Weppelman.
 1.17.6.1  12-Mar-1997  is Merge in Changes from The Trunk.
 1.19.8.2  21-Jan-2000  he Pull up revision 1.21 (requested by leo):
Fix Y2K buglet in /dev/rtc. Note that the input and output format
of that device has now changed.
 1.19.8.1  16-Dec-1999  he Pull up revision 1.20 (requested by leo):
Change the way that bits are cleared in the InterruptPending
register of the 68901, avoiding a read-modify-write cycle.
Solves a "hanging keyboard" problem.
 1.20.2.2  11-Feb-2001  bouyer Sync with HEAD.
 1.20.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.21.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.23.2.1  26-Feb-2001  he Pull up revision 1.24 (requested by leo):
Fix y2k+1 problem.
 1.24.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.26.2.2  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.26.2.1  03-Aug-2001  lukem update to -current
 1.27.14.1  17-May-2002  gehenna Add device switch.
 1.27.6.7  11-Nov-2002  nathanw Catch up to -current
 1.27.6.6  18-Oct-2002  nathanw Catch up to -current.
 1.27.6.5  17-Sep-2002  nathanw Catch up to -current.
 1.27.6.4  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.27.6.3  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.27.6.2  17-Nov-2001  scw MD Scheduler Activation bits for Atari.
Compile-tested only.
 1.27.6.1  26-Jul-2001  scw file clock.c was added on branch nathanw_sa on 2001-11-17 23:18:08 +0000
 1.27.2.1  10-Oct-2001  fvdl Convert all remaining devices.
 1.32.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.32.2.4  17-Jan-2005  skrll Adapt to branch.
 1.32.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.32.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.32.2.1  03-Aug-2004  skrll Sync with HEAD
 1.35.2.3  21-Jan-2008  yamt sync with head
 1.35.2.2  03-Sep-2007  yamt sync with head.
 1.35.2.1  21-Jun-2006  yamt sync with head.
 1.37.34.1  03-Jan-2009  jdc Pull up revisions:
1.39 sys/arch/atari/dev/clock.c
1.31 sys/arch/atari/include/param.h
(requested by tsutsui in ticket #1253).

Simplify delay based on x86 version.
 1.37.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.37.24.1  02-Jan-2009  jdc Pull up revisions:
1.39 sys/arch/atari/dev/clock.c
1.31 sys/arch/atari/include/param.h
(requested by tsutsui in ticket #1253).

Simplify delay based on x86 version.
 1.38.32.1  08-Jan-2008  bouyer Sync with HEAD
 1.38.26.1  18-Feb-2008  mjf Sync with HEAD.
 1.38.20.2  23-Mar-2008  matt sync with HEAD
 1.38.20.1  09-Jan-2008  matt sync with HEAD
 1.40.14.1  18-Jun-2008  simonb Sync with head.
 1.40.12.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.40.10.4  11-Aug-2010  yamt sync with head.
 1.40.10.3  16-Sep-2009  yamt sync with head
 1.40.10.2  18-Jul-2009  yamt sync with head.
 1.40.10.1  04-May-2009  yamt sync with head.
 1.40.8.1  17-Jun-2008  yamt sync with head.
 1.40.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.40.6.1  29-Jun-2008  mjf Sync with HEAD.
 1.41.6.2  04-Oct-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #1057):
sys/arch/atari/dev/clock.c: revision 1.47
Add a workaround for annoying
"WARNING: negative runtime; monotonic clock has gone backwards"
message. Partially taken from hp300.
 1.41.6.1  06-Nov-2008  snj branches: 1.41.6.1.4;
Pull up following revision(s) (requested by abs in ticket #13):
sys/arch/atari/dev/clock.c: revision 1.42
Move tc_init(&clk_timecounter); to stop the "timecounter:" message
appearing in the middle of the clock0 attach message. Tested by
Tuomo Makinen
 1.41.6.1.4.1  21-Apr-2010  matt sync to netbsd-5
 1.41.4.2  28-Apr-2009  skrll Sync with HEAD.
 1.41.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.41.2.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.42.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.50.4.3  12-Jun-2011  rmind sync with head
 1.50.4.2  05-Mar-2011  rmind sync with head
 1.50.4.1  30-May-2010  rmind sync with head
 1.50.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.51.4.1  17-Feb-2011  bouyer Sync with HEAD
 1.51.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.52.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.53.2.2  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.53.2.1  30-Oct-2012  yamt sync with head
 1.54.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.54.2.1  25-Feb-2013  tls resync with head
 1.55.2.1  18-May-2014  rmind sync with head
 1.58.2.1  10-Aug-2014  tls Rebase.
 1.59.28.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411

RSS XML Feed