Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/nathanw_sa]: src/sys/arch/arc/arc split clock.c into interval timer part...



details:   https://anonhg.NetBSD.org/src/rev/6598df3122da
branches:  nathanw_sa
changeset: 504747:6598df3122da
user:      soda <soda%NetBSD.org@localhost>
date:      Wed Jun 13 15:00:27 2001 +0000

description:
split clock.c into interval timer part ("timer" for cpu_initclock) and
real time clock part ("todclock" for inittodr, resettodr)

diffstat:

 sys/arch/arc/arc/timer.c       |  129 +++++++++++++++++++++++++++++++++++++++++
 sys/arch/arc/arc/timervar.h    |   41 +++++++++++++
 sys/arch/arc/arc/todclockvar.h |   62 +++++++++++++++++++
 3 files changed, 232 insertions(+), 0 deletions(-)

diffs (244 lines):

diff -r d1adeaa84408 -r 6598df3122da sys/arch/arc/arc/timer.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arc/arc/timer.c  Wed Jun 13 15:00:27 2001 +0000
@@ -0,0 +1,129 @@
+/* $NetBSD: timer.c,v 1.1.10.2 2001/06/13 15:00:27 soda Exp $ */
+/* NetBSD: clock.c,v 1.31 2001/05/27 13:53:24 sommerfeld Exp  */
+
+/*
+ * Copyright (c) 1988 University of Utah.
+ * Copyright (c) 1992, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * the Systems Programming Group of the University of Utah Computer
+ * Science Department and Ralph Campbell.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * from: Utah Hdr: clock.c 1.18 91/01/21
+ *
+ *     @(#)clock.c     8.1 (Berkeley) 6/10/93
+ */
+
+#include <sys/cdefs.h>                 /* RCS ID & Copyright macro defns */
+
+__KERNEL_RCSID(0, "$NetBSD: timer.c,v 1.1.10.2 2001/06/13 15:00:27 soda Exp $");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/systm.h>
+
+#include <arc/arc/timervar.h>
+
+struct device *timerdev;
+const struct timerfns *timerfns;
+int timerinitted;
+
+void
+timerattach(dev, fns)
+       struct device *dev;
+       const struct timerfns *fns;
+{
+
+       /*
+        * Just bookkeeping.
+        */
+
+       if (timerfns != NULL)
+               panic("timerattach: multiple timers");
+       timerdev = dev;
+       timerfns = fns;
+}
+
+/*
+ * Machine-dependent clock routines.
+ */
+
+/*
+ * Start the real-time and statistics clocks. Leave stathz 0 since there
+ * are no other timers available.
+ */
+void
+cpu_initclocks()
+{
+       if (timerfns == NULL)
+               panic("cpu_initclocks: no timer attached");
+
+       tick = 1000000 / hz;    /* number of microseconds between interrupts */
+       tickfix = 1000000 - (hz * tick);
+       if (tickfix) {
+               int ftp;
+
+               ftp = min(ffs(tickfix), ffs(hz));
+               tickfix >>= (ftp - 1);
+               tickfixinterval = hz >> (ftp - 1);
+        }
+
+       /*
+        * Get the clock started.
+        */
+       (*timerfns->tf_init)(timerdev);
+}
+
+/*
+ * We assume newhz is either stathz or profhz, and that neither will
+ * change after being set up above.  Could recalculate intervals here
+ * but that would be a drag.
+ */
+void
+setstatclockrate(newhz)
+       int newhz;
+{
+
+       /* nothing we can do */
+}
+
+/*
+ * Wait "n" microseconds.
+ * XXX Should be calibrated with the cycle counter.
+ */
+void
+delay(n)
+       int n;
+{
+
+       DELAY(n);
+}
diff -r d1adeaa84408 -r 6598df3122da sys/arch/arc/arc/timervar.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arc/arc/timervar.h       Wed Jun 13 15:00:27 2001 +0000
@@ -0,0 +1,41 @@
+/* $NetBSD: timervar.h,v 1.1.10.2 2001/06/13 15:00:27 soda Exp $ */
+/* NetBSD: clockvar.h,v 1.4 1997/06/22 08:02:18 jonathan Exp  */
+
+/*
+ * Copyright (c) 1994, 1995 Carnegie-Mellon University.
+ * All rights reserved.
+ *
+ * Author: Chris G. Demetriou
+ * 
+ * Permission to use, copy, modify and distribute this software and
+ * its documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
+ * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution%CS.CMU.EDU@localhost
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie the
+ * rights to redistribute these changes.
+ */
+
+/*
+ * timerfns structure:
+ *
+ * function switch used by chip-independent timer code, to access
+ * chip-dependent routines.
+ */
+struct timerfns {
+       void    (*tf_init) __P((struct device *));
+};
+
+void timerattach __P((struct device *, const struct timerfns *));
diff -r d1adeaa84408 -r 6598df3122da sys/arch/arc/arc/todclockvar.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arc/arc/todclockvar.h    Wed Jun 13 15:00:27 2001 +0000
@@ -0,0 +1,62 @@
+/* $NetBSD: todclockvar.h,v 1.1.10.2 2001/06/13 15:00:28 soda Exp $ */
+/* NetBSD: clockvar.h,v 1.4 1997/06/22 08:02:18 jonathan Exp  */
+
+/*
+ * Copyright (c) 1994, 1995 Carnegie-Mellon University.
+ * All rights reserved.
+ *
+ * Author: Chris G. Demetriou
+ * 
+ * Permission to use, copy, modify and distribute this software and
+ * its documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
+ * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution%CS.CMU.EDU@localhost
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie the
+ * rights to redistribute these changes.
+ */
+
+/*
+ * Definitions for cpu-independent todclock handling for the arc.
+ */
+
+/*
+ * todclocktime structure:
+ *
+ * structure passed to TOY clocks when setting them.  broken out this
+ * way, so that the time_t -> field conversion can be shared.
+ */
+struct todclocktime {
+       int     year;                   /* year - 1900 */
+       int     mon;                    /* month (1 - 12) */
+       int     day;                    /* day (1 - 31) */
+       int     hour;                   /* hour (0 - 23) */
+       int     min;                    /* minute (0 - 59) */
+       int     sec;                    /* second (0 - 59) */
+       int     dow;                    /* day of week (0 - 6; 0 = Sunday) */
+};
+
+/*
+ * todclockfns structure:
+ *
+ * function switch used by chip-independent todclock code, to access
+ * chip-dependent routines.
+ */
+struct todclockfns {
+       void (*tcf_get) __P((struct device *, time_t, struct todclocktime *));
+       void (*tcf_set) __P((struct device *, struct todclocktime *));
+};
+
+void todclockattach __P((struct device *, const struct todclockfns *, int));



Home | Main Index | Thread Index | Old Index