backport to buster
[hcoop/debian/openafs.git] / src / util / ktime.h
CommitLineData
805e021f
CE
1/*
2 * Copyright 2000, International Business Machines Corporation and others.
3 * All Rights Reserved.
4 *
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
8 */
9
10#ifndef __INCL_KTIME_
11#define __INCL_KTIME_ 1
12
13#undef min /* redefined at end of file */
14struct ktime_date {
15 afs_int32 mask; /* mask of valid fields */
16 short year;
17 short month;
18 short day;
19 short hour;
20 short min;
21 short sec;
22};
23
24/* could we make these bits the same? */
25
26#define KTIMEDATE_YEAR 1
27#define KTIMEDATE_MONTH 2
28#define KTIMEDATE_DAY 4
29#define KTIMEDATE_HOUR 8
30#define KTIMEDATE_MIN 0x10
31#define KTIMEDATE_SEC 0x20
32#define KTIMEDATE_NEVER 0x1000 /* special case for never */
33#define KTIMEDATE_NOW 0x2000 /* special case for now */
34
35/* note that this if different from the value used by ParcePeriodic (sigh). */
36#define KTIMEDATE_NEVERDATE 0xffffffff
37
38struct ktime {
39 int mask;
40 short hour; /* 0 - 23 */
41 short min; /* 0 - 60 */
42 short sec; /* 0 - 60 */
43 short day; /* 0 is sunday */
44};
45
46#define KTIME_HOUR 1 /* hour should match */
47#define KTIME_MIN 2
48#define KTIME_SEC 4
49#define KTIME_TIME 7 /* all times should match */
50#define KTIME_DAY 8 /* day should match */
51#define KTIME_NEVER 0x10 /* special case: never */
52#define KTIME_NOW 0x20 /* special case: right now */
53
54#define ktime_DateToLong ktime_DateToInt32 /* XXX */
55#define ktimeRelDate_ToLong ktimeRelDate_ToInt32 /* XXX */
56#define LongTo_ktimeRelDate Int32To_ktimeRelDate /* XXX */
57
58afs_int32 ktime_InterpretDate(struct ktime_date *akdate);
59
60#define min(a,b) (((a) < (b)) ? (a) : (b))
61#endif /* __INCL_KTIME_ */