You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
72 lines
2.2 KiB
C
Executable File
72 lines
2.2 KiB
C
Executable File
/*---------------------------------------------------------------------
|
|
Copyright (C) 1997, 1998 Nintendo.
|
|
|
|
File rtc.h
|
|
Coded by Shigeo Kimura. Oct 14, 1997.
|
|
Modified by Koji Mitsunari. Jan 22, 2001.
|
|
Comments Real Time Clock Library
|
|
---------------------------------------------------------------------*/
|
|
#ifndef _rtc_h_
|
|
#define _rtc_h_
|
|
|
|
/*-----------------------------------------------------------------------
|
|
* Macro & constant definitions
|
|
*-----------------------------------------------------------------------*/
|
|
/* Controller type */
|
|
#define CONT_TYPE_RTC 0x1000 /* from os.h */
|
|
#define RTC_WAIT 300
|
|
|
|
/* RTC status signed 32bits */
|
|
#define RTC_NG_NOTHING 0x8000
|
|
#define RTC_NG_WRITE 0x0100
|
|
#define RTC_NG_ADDR 0x0200
|
|
#define RTC_STATUS_BUSY 0x0080
|
|
#define RTC_STATUS_DDOWN 0x0002
|
|
#define RTC_STATUS_BDOWN 0x0001
|
|
|
|
/* RTC Error Code */
|
|
#define CONT_ERR_RTC_BUSY 16
|
|
#define CONT_ERR_RTC_BDOWN 17
|
|
#define CONT_ERR_RTC_DDOWN 18
|
|
#define CONT_ERR_RTC_BDDOWN 19
|
|
|
|
/* RTC bit status */
|
|
#define RTC_EALM 0x80
|
|
#define RTC_ALM 0x20
|
|
#define RTC_WPB1 0x02
|
|
#define RTC_WPB0 0x01
|
|
#define RTC_MOD 0x04
|
|
#define RTC_CHLD 0x02
|
|
#define RTC_ADJ 0x01
|
|
|
|
#define RTC_ADDR_FLAG 0
|
|
#define RTC_ADDR_RAM 1
|
|
#define RTC_ADDR_TIME 2
|
|
|
|
typedef struct{
|
|
u8 sec; /* second 0-59 */
|
|
u8 min; /* minute 0-59 */
|
|
u8 hour; /* hour 0-23 */
|
|
u8 day; /* day 1-31 */
|
|
u8 week; /* week 0-6(sun,mon,..,sat) */
|
|
u8 month; /* month 1-12 */
|
|
u16 year; /* year 1901-2099 */
|
|
} OSRTCTime;
|
|
|
|
/*-----------------------------------------------------------------------
|
|
* externs
|
|
*-----------------------------------------------------------------------*/
|
|
|
|
extern s32 osRTCInit( OSMesgQueue *mq);
|
|
extern s32 osRTCReadData( OSMesgQueue *mq, u8 *);
|
|
extern s32 osRTCWriteData( OSMesgQueue *mq, u8 *);
|
|
extern s32 osRTCGetTime( OSMesgQueue *mq, OSRTCTime *);
|
|
extern s32 osRTCSetTime( OSMesgQueue *mq, OSRTCTime *);
|
|
extern u32 osRTCGetIntervalTime(OSRTCTime *, OSRTCTime *);
|
|
extern s32 osRTCGetLaterTime(OSMesgQueue *mq, u32, OSRTCTime *);
|
|
extern s32 osRTCSetAlarm( OSMesgQueue *mq, u8, u8);
|
|
extern s32 osRTCGetAlarmStat(OSMesgQueue *mq, u8 *, u8 *, int *);
|
|
extern s32 osRTCProbe( OSMesgQueue *mq);
|
|
|
|
#endif /* _rtc_h_ */
|