+static inline unsigned int dive_size(int samples)
+{
+ return sizeof(struct dive) + samples*sizeof(struct sample);
+}
+
+extern time_t utc_mktime(struct tm *tm);
+
+extern struct dive *alloc_dive(void);
+extern void record_dive(struct dive *dive);
+
+extern struct sample *prepare_sample(struct dive **divep);
+extern void finish_sample(struct dive *dive, struct sample *sample);
+
+extern void report_dives(void);
+extern struct dive *fixup_dive(struct dive *dive);
+extern struct dive *try_to_merge(struct dive *a, struct dive *b);
+
+extern void update_air_info(char *buffer);
+
+#define DIVE_ERROR_PARSE 1
+
+const char *weekday(int wday);
+const char *monthname(int mon);
+