mirror of
https://github.com/open-simh/simtools.git
synced 2026-02-02 14:52:29 +00:00
This version was on the VMS FREEWARE disk at some point. It shipped with the included .exes, though modern windows systems certainly don't support the direct access to SCSI DLL that's used.
175 lines
6.2 KiB
C
175 lines
6.2 KiB
C
/*
|
|
|
|
Vmstime.h v1.6A
|
|
|
|
Author: Paul Nankervis
|
|
|
|
Please send bug reports to Paulnank@au1.ibm.com
|
|
|
|
1.4A Changed default DOLLAR handling to include DOLLAR
|
|
identifers unless NO_DOLLAR is defined
|
|
(ie #ifdef DOLLAR to #ifndef NO_DOLLAR)
|
|
1.5 Moved more header info here and added cvt_internal support
|
|
1.6A Fixed endian problems in addx/subx
|
|
|
|
*/
|
|
|
|
|
|
#ifndef __VMSTIME__
|
|
#define __VMSTIME__ loaded
|
|
|
|
#include "descrip.h"
|
|
|
|
#ifdef __ALPHA
|
|
#define VMSTIME_64BIT __int64
|
|
#endif
|
|
|
|
/* Define quadword time type and test for delta times... */
|
|
|
|
#ifdef VMSTIME_64BIT
|
|
typedef VMSTIME_64BIT VMSTIME[1];
|
|
typedef VMSTIME_64BIT *pVMSTIME;
|
|
#define ISDELTA(x) (*x < 0)
|
|
#define VMSTIME_ZERO {0}
|
|
#else
|
|
typedef unsigned char VMSTIME[8];
|
|
typedef unsigned char *pVMSTIME;
|
|
#define ISDELTA(x) (x[7] & 0x80)
|
|
#define VMSTIME_ZERO {0,0,0,0,0,0,0,0}
|
|
#endif
|
|
|
|
/* Define status codes we require... note that if the real code values
|
|
are being included (SSDEF.H) then they should be included first!!! */
|
|
|
|
#ifndef SS__NORMAL
|
|
#define SS__NORMAL 1
|
|
#define SS__IVTIME 388
|
|
#define LIB__NORMAL 1409025
|
|
#define LIB__IVTIME 1410012
|
|
#define LIB__ONEDELTIM 1410020
|
|
#define LIB__ABSTIMREQ 1410044
|
|
#define LIB__DELTIMREQ 1410052
|
|
#define LIB__INVOPER 1410060
|
|
|
|
#ifndef NO_DOLLAR
|
|
#ifndef SS$_NORMAL
|
|
#define SS$_NORMAL SS__NORMAL
|
|
#define SS$_IVTIME SS__IVTIME
|
|
#define LIB$_NORMAL LIB__NORMAL
|
|
#define LIB$_IVTIME LIB__IVTIME
|
|
#define LIB$_ONEDELTIM LIB__ONEDELTIM
|
|
#define LIB$_ABSTIMREQ LIB__ABSTIMREQ
|
|
#define LIB$_DELTIMREQ LIB__DELTIMREQ
|
|
#define LIB$_INVOPER LIB__INVOPER
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
/* Constants for lib$cvt_ routines */
|
|
|
|
#define LIB_K_MONTH_OF_YEAR 1
|
|
#define LIB_K_DAY_OF_YEAR 2
|
|
#define LIB_K_HOUR_OF_YEAR 3
|
|
#define LIB_K_MINUTE_OF_YEAR 4
|
|
#define LIB_K_SECOND_OF_YEAR 5
|
|
#define LIB_K_DAY_OF_MONTH 6
|
|
#define LIB_K_HOUR_OF_MONTH 7
|
|
#define LIB_K_MINUTE_OF_MONTH 8
|
|
#define LIB_K_SECOND_OF_MONTH 9
|
|
#define LIB_K_DAY_OF_WEEK 10
|
|
#define LIB_K_HOUR_OF_WEEK 11
|
|
#define LIB_K_MINUTE_OF_WEEK 12
|
|
#define LIB_K_SECOND_OF_WEEK 13
|
|
#define LIB_K_HOUR_OF_DAY 14
|
|
#define LIB_K_MINUTE_OF_DAY 15
|
|
#define LIB_K_SECOND_OF_DAY 16
|
|
#define LIB_K_MINUTE_OF_HOUR 17
|
|
#define LIB_K_SECOND_OF_HOUR 18
|
|
#define LIB_K_SECOND_OF_MINUTE 19
|
|
#define LIB_K_JULIAN_DATE 20
|
|
#define LIB_K_DELTA_WEEKS 21
|
|
#define LIB_K_DELTA_DAYS 22
|
|
#define LIB_K_DELTA_HOURS 23
|
|
#define LIB_K_DELTA_MINUTES 24
|
|
#define LIB_K_DELTA_SECONDS 25
|
|
#define LIB_K_DELTA_WEEKS_F 26
|
|
#define LIB_K_DELTA_DAYS_F 27
|
|
#define LIB_K_DELTA_HOURS_F 28
|
|
#define LIB_K_DELTA_MINUTES_F 29
|
|
#define LIB_K_DELTA_SECONDS_F 30
|
|
#define LIB_K_MAX_OPERATION 31
|
|
|
|
/* For system which can use a dollar symbol...*/
|
|
|
|
#ifndef NO_DOLLAR
|
|
#define sys$asctim sys_asctim
|
|
#define sys$bintim sys_bintim
|
|
#define sys$gettim sys_gettim
|
|
#define sys$numtim sys_numtim
|
|
#define lib$add_times lib_add_times
|
|
#define lib$addx lib_addx
|
|
#define lib$cvt_from_internal_time lib_cvt_from_internal_time
|
|
#define lib$cvt_to_internal_time lib_cvt_to_internal_time
|
|
#define lib$cvt_vectim lib_cvt_vectim
|
|
#define lib$day lib_day
|
|
#define lib$day_of_week lib_day_of_week
|
|
#define lib$mult_delta_time lib_mult_delta_time
|
|
#define lib$sub_times lib_sub_times
|
|
#define lib$subx lib_subx
|
|
|
|
#define LIB$K_MONTH_OF_YEAR LIB_K_MONTH_OF_YEAR
|
|
#define LIB$K_DAY_OF_YEAR LIB_K_DAY_OF_YEAR
|
|
#define LIB$K_HOUR_OF_YEAR LIB_K_HOUR_OF_YEAR
|
|
#define LIB$K_MINUTE_OF_YEAR LIB_K_MINUTE_OF_YEAR
|
|
#define LIB$K_SECOND_OF_YEAR LIB_K_SECOND_OF_YEAR
|
|
#define LIB$K_DAY_OF_MONTH LIB_K_DAY_OF_MONTH
|
|
#define LIB$K_HOUR_OF_MONTH LIB_K_HOUR_OF_MONTH
|
|
#define LIB$K_MINUTE_OF_MONTH LIB_K_MINUTE_OF_MONTH
|
|
#define LIB$K_SECOND_OF_MONTH LIB_K_SECOND_OF_MONTH
|
|
#define LIB$K_DAY_OF_WEEK LIB_K_DAY_OF_WEEK
|
|
#define LIB$K_HOUR_OF_WEEK LIB_K_HOUR_OF_WEEK
|
|
#define LIB$K_MINUTE_OF_WEEK LIB_K_MINUTE_OF_WEEK
|
|
#define LIB$K_SECOND_OF_WEEK LIB_K_SECOND_OF_WEEK
|
|
#define LIB$K_HOUR_OF_DAY LIB_K_HOUR_OF_DAY
|
|
#define LIB$K_MINUTE_OF_DAY LIB_K_MINUTE_OF_DAY
|
|
#define LIB$K_SECOND_OF_DAY LIB_K_SECOND_OF_DAY
|
|
#define LIB$K_MINUTE_OF_HOUR LIB_K_MINUTE_OF_HOUR
|
|
#define LIB$K_SECOND_OF_HOUR LIB_K_SECOND_OF_HOUR
|
|
#define LIB$K_SECOND_OF_MINUTE LIB_K_SECOND_OF_MINUTE
|
|
#define LIB$K_JULIAN_DATE LIB_K_JULIAN_DATE
|
|
#define LIB$K_DELTA_WEEKS LIB_K_DELTA_WEEKS
|
|
#define LIB$K_DELTA_DAYS LIB_K_DELTA_DAYS
|
|
#define LIB$K_DELTA_HOURS LIB_K_DELTA_HOURS
|
|
#define LIB$K_DELTA_MINUTES LIB_K_DELTA_MINUTES
|
|
#define LIB$K_DELTA_SECONDS LIB_K_DELTA_SECONDS
|
|
#define LIB$K_DELTA_WEEKS_F LIB_K_DELTA_WEEKS_F
|
|
#define LIB$K_DELTA_DAYS_F LIB_K_DELTA_DAYS_F
|
|
#define LIB$K_DELTA_HOURS_F LIB_K_DELTA_HOURS_F
|
|
#define LIB$K_DELTA_MINUTES_F LIB_K_DELTA_MINUTES_F
|
|
#define LIB$K_DELTA_SECONDS_F LIB_K_DELTA_SECONDS_F
|
|
#define LIB$K_MAX_OPERATION LIB_K_MAX_OPERATION
|
|
#endif
|
|
|
|
|
|
unsigned sys_gettim(VMSTIME timadr);
|
|
unsigned sys_numtim(unsigned short timvec[7],VMSTIME timadr);
|
|
unsigned sys_bintim(struct dsc_descriptor *timbuf,VMSTIME timadr);
|
|
unsigned sys_asctim(unsigned short *timlen,struct dsc_descriptor *timbuf,
|
|
VMSTIME timadr,unsigned cvtflg);
|
|
unsigned lib_add_times(VMSTIME time1,VMSTIME time2,VMSTIME result);
|
|
unsigned lib_addx(void *addant,void *addee,void *result,int *lenadd);
|
|
unsigned lib_cvt_from_internal_time(unsigned *operation,
|
|
unsigned *result,VMSTIME input_time);
|
|
unsigned lib_cvt_to_internal_time(unsigned *operation,int *input,
|
|
VMSTIME result);
|
|
unsigned lib_cvt_vectim(unsigned short timbuf[7],VMSTIME timadr);
|
|
unsigned lib_day(int *days,VMSTIME timadr,int *day_time);
|
|
unsigned lib_day_of_week(VMSTIME timadr,unsigned *weekday);
|
|
unsigned lib_mult_delta_time(int *multiple,VMSTIME timadr);
|
|
unsigned lib_subx(void *subant,void *subee,void *result,int *lenadd);
|
|
unsigned lib_sub_times(VMSTIME time1,VMSTIME time2,VMSTIME result);
|
|
unsigned vmstime_from_nt(VMSTIME nt_time,VMSTIME vms_time);
|
|
unsigned vmstime_to_nt(VMSTIME vms_time,VMSTIME nt_time);
|
|
int vmstime_compare(VMSTIME time1,VMSTIME time2);
|
|
#endif
|