+#ifdef GLK_MODULE_DATETIME
+
+typedef struct glktimeval_struct {
+ glsi32 high_sec;
+ glui32 low_sec;
+ glsi32 microsec;
+} glktimeval_t;
+
+typedef struct glkdate_struct {
+ glsi32 year; /* full (four-digit) year */
+ glsi32 month; /* 1-12, 1 is January */
+ glsi32 day; /* 1-31 */
+ glsi32 weekday; /* 0-6, 0 is Sunday */
+ glsi32 hour; /* 0-23 */
+ glsi32 minute; /* 0-59 */
+ glsi32 second; /* 0-59, maybe 60 during a leap second */
+ glsi32 microsec; /* 0-999999 */
+} glkdate_t;
+
+extern void glk_current_time(glktimeval_t *time);
+extern glsi32 glk_current_simple_time(glui32 factor);
+extern void glk_time_to_date_utc(glktimeval_t *time, glkdate_t *date);
+extern void glk_time_to_date_local(glktimeval_t *time, glkdate_t *date);
+extern void glk_simple_time_to_date_utc(glsi32 time, glui32 factor,
+ glkdate_t *date);
+extern void glk_simple_time_to_date_local(glsi32 time, glui32 factor,
+ glkdate_t *date);
+extern void glk_date_to_time_utc(glkdate_t *date, glktimeval_t *time);
+extern void glk_date_to_time_local(glkdate_t *date, glktimeval_t *time);
+extern glsi32 glk_date_to_simple_time_utc(glkdate_t *date, glui32 factor);
+extern glsi32 glk_date_to_simple_time_local(glkdate_t *date, glui32 factor);
+
+#endif /* GLK_MODULE_DATETIME */
+
+#ifdef GLK_MODULE_RESOURCE_STREAM
+
+extern strid_t glk_stream_open_resource(glui32 filenum, glui32 rock);
+extern strid_t glk_stream_open_resource_uni(glui32 filenum, glui32 rock);
+
+#endif /* GLK_MODULE_RESOURCE_STREAM */
+