summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/glut/glx/glut_event.c30
-rw-r--r--src/glut/glx/glut_get.c8
-rw-r--r--src/glut/glx/glut_init.c22
-rw-r--r--src/glut/glx/glutint.h17
4 files changed, 57 insertions, 20 deletions
diff --git a/src/glut/glx/glut_event.c b/src/glut/glx/glut_event.c
index f4463dee0b..d2c2c4810f 100644
--- a/src/glut/glx/glut_event.c
+++ b/src/glut/glx/glut_event.c
@@ -64,18 +64,18 @@
# endif
#endif /* !_WIN32 */
+#include "glutint.h"
+
#if defined(__vms) && ( __VMS_VER < 70000000 )
#include <ssdef.h>
#include <psldef.h>
extern int SYS$CLREF(int efn);
-extern int SYS$SETIMR(unsigned int efn, struct timeval *timeout, void *ast,
+extern int SYS$SETIMR(unsigned int efn, struct timeval6 *timeout, void *ast,
unsigned int request_id, unsigned int flags);
extern int SYS$WFLOR(unsigned int efn, unsigned int mask);
extern int SYS$CANTIM(unsigned int request_id, unsigned int mode);
#endif /* __vms, VMs 6.2 or earlier */
-#include "glutint.h"
-
static GLUTtimer *freeTimerList = NULL;
GLUTidleCB __glutIdleFunc = NULL;
@@ -114,8 +114,12 @@ glutTimerFunc(unsigned int interval, GLUTtimerCB timerFunc, int value)
{
GLUTtimer *timer, *other;
GLUTtimer **prevptr;
- struct timeval now;
-
+#ifdef OLD_VMS
+ struct timeval6 now;
+#else
+ struct timeval now;
+#endif
+
if (!timerFunc)
return;
@@ -156,8 +160,12 @@ glutTimerFunc(unsigned int interval, GLUTtimerCB timerFunc, int value)
void
handleTimeouts(void)
{
- struct timeval now;
- GLUTtimer *timer;
+#ifdef OLD_VMS
+ struct timeval6 now;
+#else
+ struct timeval now;
+#endif
+ GLUTtimer *timer;
/* Assumption is that __glutTimerList is already determined
to be non-NULL. */
@@ -839,7 +847,7 @@ static void
waitForSomething(void)
{
#if defined(__vms) && ( __VMS_VER < 70000000 )
- static struct timeval zerotime =
+ static struct timeval6 zerotime =
{0};
unsigned int timer_efn;
#define timer_id 'glut' /* random :-) number */
@@ -851,7 +859,11 @@ waitForSomething(void)
fd_set fds;
#endif
#endif
- struct timeval now, timeout, waittime;
+#ifdef OLD_VMS
+ struct timeval6 now, timeout, waittime;
+#else
+ struct timeval now, timeout, waittime;
+#endif
#if !defined(_WIN32)
int rc;
#endif
diff --git a/src/glut/glx/glut_get.c b/src/glut/glx/glut_get.c
index e4117bdc86..ecfd981ad9 100644
--- a/src/glut/glx/glut_get.c
+++ b/src/glut/glx/glut_get.c
@@ -186,9 +186,13 @@ glutGet(GLenum param)
}
case GLUT_ELAPSED_TIME:
{
- struct timeval elapsed, beginning, now;
+#ifdef OLD_VMS
+ struct timeval6 elapsed, beginning, now;
+#else
+ struct timeval elapsed, beginning, now;
+#endif
- __glutInitTime(&beginning);
+ __glutInitTime(&beginning);
GETTIMEOFDAY(&now);
TIMEDELTA(elapsed, now, beginning);
/* Return elapsed milliseconds. */
diff --git a/src/glut/glx/glut_init.c b/src/glut/glx/glut_init.c
index d4d0e8a978..dcd423a941 100644
--- a/src/glut/glx/glut_init.c
+++ b/src/glut/glx/glut_init.c
@@ -154,11 +154,19 @@ __glutOpenXConnection(char *display)
#endif /* _WIN32 */
void
-__glutInitTime(struct timeval *beginning)
+#ifdef OLD_VMS
+ __glutInitTime(struct timeval6 *beginning)
+#else
+ __glutInitTime(struct timeval *beginning)
+#endif
{
static int beenhere = 0;
- static struct timeval genesis;
-
+#ifdef OLD_VMS
+ static struct timeval6 genesis;
+#else
+ static struct timeval genesis;
+#endif
+
if (!beenhere) {
GETTIMEOFDAY(&genesis);
beenhere = 1;
@@ -183,8 +191,12 @@ glutInit(int *argcp, char **argv)
{
char *display = NULL;
char *str, *geometry = NULL;
- struct timeval unused;
- int i;
+#ifdef OLD_VMS
+ struct timeval6 unused;
+#else
+ struct timeval unused;
+#endif
+ int i;
if (__glutDisplay) {
__glutWarning("glutInit being called a second time.");
diff --git a/src/glut/glx/glutint.h b/src/glut/glx/glutint.h
index 82e2465e81..488ff5983e 100644
--- a/src/glut/glx/glutint.h
+++ b/src/glut/glx/glutint.h
@@ -69,10 +69,11 @@
#ifdef __vms
#if ( __VMS_VER < 70000000 )
-struct timeval {
+#define OLD_VMS
+struct timeval6 {
__int64 val;
};
-extern int sys$gettim(struct timeval *);
+extern int sys$gettim(struct timeval6 *);
#else
#include <time.h>
#endif
@@ -530,8 +531,12 @@ struct _GLUTmenuItem {
typedef struct _GLUTtimer GLUTtimer;
struct _GLUTtimer {
GLUTtimer *next; /* list of timers */
- struct timeval timeout; /* time to be called */
- GLUTtimerCB func; /* timer (value) */
+#ifdef OLD_VMS
+ struct timeval6 timeout; /* time to be called */
+#else
+ struct timeval timeout; /* time to be called */
+#endif
+ GLUTtimerCB func; /* timer (value) */
int value; /* return value */
#ifdef SUPPORT_FORTRAN
GLUTtimerFCB ffunc; /* Fortran timer */
@@ -713,7 +718,11 @@ extern void __glutOpenXConnection(char *display);
#else
extern void __glutOpenWin32Connection(char *display);
#endif
+#if OLD_VMS
+extern void __glutInitTime(struct timeval6 *beginning);
+#else
extern void __glutInitTime(struct timeval *beginning);
+#endif
/* private routines for glut_menu.c (or win32_menu.c) */
#if defined(_WIN32)