summaryrefslogtreecommitdiffstats
path: root/c/src/libchip
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-07-28 21:18:11 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-07-28 21:18:11 +0000
commit07e91808932ecc3cb8e25dc3d618debd5e2db6fb (patch)
tree1bf92f8e74cbbd26402c06854900e85841dc17f2 /c/src/libchip
parentAdded missing parts of patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. (diff)
downloadrtems-07e91808932ecc3cb8e25dc3d618debd5e2db6fb.tar.bz2
Added rtc directory.
Diffstat (limited to 'c/src/libchip')
-rw-r--r--c/src/libchip/rtc/Makefile.in55
-rw-r--r--c/src/libchip/rtc/rtc.h83
2 files changed, 138 insertions, 0 deletions
diff --git a/c/src/libchip/rtc/Makefile.in b/c/src/libchip/rtc/Makefile.in
new file mode 100644
index 0000000000..c7dc34db1a
--- /dev/null
+++ b/c/src/libchip/rtc/Makefile.in
@@ -0,0 +1,55 @@
+#
+# $Id$
+#
+
+@SET_MAKE@
+srcdir = @srcdir@
+VPATH = @srcdir@
+RTEMS_ROOT = @top_srcdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+LIBNAME=librtcio.a
+LIB=${ARCH}/${LIBNAME}
+
+C_PIECES=\
+
+C_FILES=$(C_PIECES:%=%.c)
+C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
+
+INSTALLED_H_FILES=$(srcdir)/rtc.h
+SRCS=$(C_FILES) $(H_FILES) $(SYS_H_FILES) $(RTEMS_H_FILES) $(PRIVATE_H_FILES)
+OBJS=$(C_O_FILES)
+
+include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+include $(RTEMS_ROOT)/make/lib.cfg
+
+#
+# Add local stuff here using +=
+#
+
+DEFINES +=
+CPPFLAGS +=
+CFLAGS += $(LIBC_DEFINES)
+
+#
+# Add your list of files to delete here. The config files
+# already know how to delete some stuff, so you may want
+# to just run 'make clean' first to see what gets missed.
+# 'make clobber' already includes 'make clean'
+#
+
+CLEAN_ADDITIONS += $(LIB)
+CLOBBER_ADDITIONS +=
+
+all: ${ARCH} preinstall $(LIB)
+ $(INSTALL_VARIANT) -m 644 ${LIB} ${PROJECT_RELEASE}/lib
+
+$(LIB): $(SRCS) ${OBJS}
+ $(make-library)
+
+# Install the library, appending _g or _p as appropriate.
+# for include files, just use $(INSTALL)
+preinstall:
+ $(INSTALL) -m 444 $(INSTALLED_H_FILES) $(PROJECT_INCLUDE)/libchip
+
+
diff --git a/c/src/libchip/rtc/rtc.h b/c/src/libchip/rtc/rtc.h
new file mode 100644
index 0000000000..b517424b3c
--- /dev/null
+++ b/c/src/libchip/rtc/rtc.h
@@ -0,0 +1,83 @@
+/*
+ * This file contains the Real-Time Clock definitions.
+ *
+ * COPYRIGHT (c) 1989-1998.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ *
+ * $Id$
+ */
+
+#ifndef __LIBCHIP_RTC_h
+#define __LIBCHIP_RTC_h
+
+/*
+ * Types for get and set register routines
+ */
+
+typedef unsigned8 (*getRegister_f)(unsigned32 port, unsigned8 register);
+typedef void (*setRegister_f)(
+ unsigned32 port, unsigned8 reg, unsigned8 value);
+typedef unsigned8 (*getData_f)(unsigned32 port);
+typedef void (*setData_f)(unsigned32 port, unsigned8 value);
+
+typedef struct _rtc_fns {
+ boolean (*deviceProbe)(int minor);
+ void (*deviceInitialize)(int minor);
+ int (*deviceGetTime)(int minor, rtems_time_of_day *time);
+ int (*deviceSetTime)(int minor, rtems_time_of_day *time);
+} rtc_fns;
+
+typedef enum {
+ RTC_M48T08, /* SGS-Thomsom M48T08 or M48T18 */
+ RTC_ICM_7170, /* Harris ICM-7170 */
+ RTC_CUSTOM /* BSP specific driver */
+} rtc_devs;
+
+/*
+ * Each field is interpreted thus:
+ *
+ * sDeviceName This is the name of the device.
+ *
+ * deviceType This indicates the chip type.
+ *
+ * pDeviceFns This is a pointer to the set of driver routines to use.
+ *
+ * pDeviceParams This contains either device specific data or a pointer to a
+ * device specific information table.
+ *
+ * ulCtrlPort1 This is the primary control port number for the device.
+ *
+ * ulCtrlPort2 This is the secondary control port number.
+ *
+ * ulDataPort This is the port number for the data port of the device
+ *
+ * getRegister This is the routine used to read register values.
+ *
+ * setRegister This is the routine used to write register values.
+ */
+
+typedef struct _rtc_tbl {
+ char *sDeviceName;
+ rtc_devs deviceType;
+ rtc_fns *pDeviceFns;
+ boolean (*deviceProbe)(int minor);
+ void *pDeviceParams;
+ unsigned32 ulCtrlPort1;
+ unsigned32 ulCtrlPort2;
+ unsigned32 ulDataPort;
+ getRegister_f getRegister;
+ setRegister_f setRegister;
+ unsigned int ulIntVector;
+} rtc_tbl;
+
+extern rtc_tbl RTC_Port_Tbl[];
+extern unsigned long RTC_Port_Count;
+
+#endif
+/* end of include file */