diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-07-28 21:18:11 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-07-28 21:18:11 +0000 |
commit | 07e91808932ecc3cb8e25dc3d618debd5e2db6fb (patch) | |
tree | 1bf92f8e74cbbd26402c06854900e85841dc17f2 /c/src/lib/libchip/rtc/rtc.h | |
parent | Added missing parts of patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. (diff) | |
download | rtems-07e91808932ecc3cb8e25dc3d618debd5e2db6fb.tar.bz2 |
Added rtc directory.
Diffstat (limited to 'c/src/lib/libchip/rtc/rtc.h')
-rw-r--r-- | c/src/lib/libchip/rtc/rtc.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/c/src/lib/libchip/rtc/rtc.h b/c/src/lib/libchip/rtc/rtc.h new file mode 100644 index 0000000000..b517424b3c --- /dev/null +++ b/c/src/lib/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 */ |