138 lines
2.5 KiB
C
138 lines
2.5 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1991 Microsoft Corporation
|
|||
|
|
|||
|
Copyright (c) 1994 MOTOROLA, INC. All Rights Reserved. This file
|
|||
|
contains copyrighted material. Use of this file is restricted
|
|||
|
by the provisions of a Motorola Software License Agreement.
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
pxtime.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module implements the HAL set/query realtime clock routines for
|
|||
|
a PowerPC system.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
David N. Cutler (davec) 5-May-1991
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
Kernel mode
|
|||
|
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "halp.h"
|
|||
|
#include "pxsystyp.h"
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
HalQueryRealTimeClockMk (
|
|||
|
OUT PTIME_FIELDS TimeFields
|
|||
|
);
|
|||
|
BOOLEAN
|
|||
|
HalSetRealTimeClockMk (
|
|||
|
OUT PTIME_FIELDS TimeFields
|
|||
|
);
|
|||
|
BOOLEAN
|
|||
|
HalQueryRealTimeClockDs (
|
|||
|
OUT PTIME_FIELDS TimeFields
|
|||
|
);
|
|||
|
BOOLEAN
|
|||
|
HalSetRealTimeClockDs (
|
|||
|
OUT PTIME_FIELDS TimeFields
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
HalQueryRealTimeClock (
|
|||
|
OUT PTIME_FIELDS TimeFields
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine queries the realtime clock.
|
|||
|
|
|||
|
N.B. This routine is required to provide any synchronization necessary
|
|||
|
to query the realtime clock information.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
TimeFields - Supplies a pointer to a time structure that receives
|
|||
|
the realtime clock information.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
If the power to the realtime clock has not failed, then the time
|
|||
|
values are read from the realtime clock and a value of TRUE is
|
|||
|
returned. Otherwise, a value of FALSE is returned.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
switch (HalpSystemType) {
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case MOTOROLA_POWERSTACK:
|
|||
|
return HalQueryRealTimeClockMk(TimeFields);
|
|||
|
break;
|
|||
|
|
|||
|
case SYSTEM_UNKNOWN:
|
|||
|
case MOTOROLA_BIG_BEND:
|
|||
|
default:
|
|||
|
return HalQueryRealTimeClockDs(TimeFields);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
HalSetRealTimeClock (
|
|||
|
IN PTIME_FIELDS TimeFields
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine sets the realtime clock.
|
|||
|
|
|||
|
N.B. This routine is required to provide any synchronization necessary
|
|||
|
to set the realtime clock information.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
TimeFields - Supplies a pointer to a time structure that specifies the
|
|||
|
realtime clock information.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
If the power to the realtime clock has not failed, then the time
|
|||
|
values are written to the realtime clock and a value of TRUE is
|
|||
|
returned. Otherwise, a value of FALSE is returned.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
switch (HalpSystemType) {
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case MOTOROLA_POWERSTACK:
|
|||
|
return HalSetRealTimeClockMk(TimeFields);
|
|||
|
break;
|
|||
|
|
|||
|
case SYSTEM_UNKNOWN:
|
|||
|
case MOTOROLA_BIG_BEND:
|
|||
|
default:
|
|||
|
return HalSetRealTimeClockDs(TimeFields);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|