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