-/*\r
- * SpanDSP - a series of DSP components for telephony\r
- *\r
- * private/timezone.h - Timezone handling for time interpretation\r
- *\r
- * Written by Steve Underwood <steveu@coppice.org>\r
- *\r
- * Copyright (C) 2010 Steve Underwood\r
- *\r
- * All rights reserved.\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License version 2.1,\r
- * as published by the Free Software Foundation.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
- */\r
-\r
-#if !defined(_SPANDSP_PRIVATE_TIMEZONE_H_)\r
-#define _SPANDSP_PRIVATE_TIMEZONE_H_\r
-\r
-#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */\r
-\r
-#define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */\r
-\r
-#define TZNAME_MAX 255\r
-\r
-/* The TZ_MAX_TIMES value below is enough to handle a bit more than a\r
- * year's worth of solar time (corrected daily to the nearest second) or\r
- * 138 years of Pacific Presidential Election time\r
- * (where there are three time zone transitions every fourth year). */\r
-#define TZ_MAX_TIMES 370\r
-\r
-#if !defined(NOSOLAR)\r
-#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */\r
-#else\r
-/* Must be at least 14 for Europe/Riga as of Jan 12 1995,\r
- * as noted by Earl Chew <earl@hpato.aus.hp.com>. */\r
-#define TZ_MAX_TYPES 20 /* Maximum number of local time types */\r
-#endif\r
-\r
-#define TZ_BIGGEST(a, b) (((a) > (b)) ? (a) : (b))\r
-\r
-/* Time type information */\r
-struct tz_ttinfo_s\r
-{\r
- int32_t gmtoff; /* UTC offset in seconds */\r
- int isdst; /* Used to set tm_isdst */\r
- int abbrind; /* Abbreviation list index */\r
- int ttisstd; /* TRUE if transition is std time */\r
- int ttisgmt; /* TRUE if transition is UTC */\r
-};\r
-\r
-/* Leap second information */\r
-struct tz_lsinfo_s\r
-{\r
- time_t trans; /* Transition time */\r
- int32_t corr; /* Correction to apply */\r
-};\r
-\r
-struct tz_state_s\r
-{\r
- int leapcnt;\r
- int timecnt;\r
- int typecnt;\r
- int charcnt;\r
- time_t ats[TZ_MAX_TIMES];\r
- uint8_t types[TZ_MAX_TIMES];\r
- struct tz_ttinfo_s ttis[TZ_MAX_TYPES];\r
- char chars[TZ_BIGGEST(TZ_MAX_CHARS + 1, (2*(TZNAME_MAX + 1)))];\r
- struct tz_lsinfo_s lsis[TZ_MAX_LEAPS];\r
-};\r
-\r
-struct tz_s\r
-{\r
- struct tz_state_s state;\r
- char lcl_tzname[TZNAME_MAX + 1];\r
- int lcl_is_set;\r
- const char *tzname[2];\r
-};\r
-\r
-#endif\r
-/*- End of file ------------------------------------------------------------*/\r
+/*
+ * SpanDSP - a series of DSP components for telephony
+ *
+ * private/timezone.h - Timezone handling for time interpretation
+ *
+ * Written by Steve Underwood <steveu@coppice.org>
+ *
+ * Copyright (C) 2010 Steve Underwood
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 2.1,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#if !defined(_SPANDSP_PRIVATE_TIMEZONE_H_)
+#define _SPANDSP_PRIVATE_TIMEZONE_H_
+
+#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */
+
+#define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */
+
+#define TZNAME_MAX 255
+
+/* The TZ_MAX_TIMES value below is enough to handle a bit more than a
+ * year's worth of solar time (corrected daily to the nearest second) or
+ * 138 years of Pacific Presidential Election time
+ * (where there are three time zone transitions every fourth year). */
+#define TZ_MAX_TIMES 370
+
+#if !defined(NOSOLAR)
+#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
+#else
+/* Must be at least 14 for Europe/Riga as of Jan 12 1995,
+ * as noted by Earl Chew <earl@hpato.aus.hp.com>. */
+#define TZ_MAX_TYPES 20 /* Maximum number of local time types */
+#endif
+
+#define TZ_BIGGEST(a, b) (((a) > (b)) ? (a) : (b))
+
+/* Time type information */
+struct tz_ttinfo_s
+{
+ int32_t gmtoff; /* UTC offset in seconds */
+ int isdst; /* Used to set tm_isdst */
+ int abbrind; /* Abbreviation list index */
+ int ttisstd; /* TRUE if transition is std time */
+ int ttisgmt; /* TRUE if transition is UTC */
+};
+
+/* Leap second information */
+struct tz_lsinfo_s
+{
+ time_t trans; /* Transition time */
+ int32_t corr; /* Correction to apply */
+};
+
+struct tz_state_s
+{
+ int leapcnt;
+ int timecnt;
+ int typecnt;
+ int charcnt;
+ time_t ats[TZ_MAX_TIMES];
+ uint8_t types[TZ_MAX_TIMES];
+ struct tz_ttinfo_s ttis[TZ_MAX_TYPES];
+ char chars[TZ_BIGGEST(TZ_MAX_CHARS + 1, (2*(TZNAME_MAX + 1)))];
+ struct tz_lsinfo_s lsis[TZ_MAX_LEAPS];
+};
+
+struct tz_s
+{
+ struct tz_state_s state;
+ char lcl_tzname[TZNAME_MAX + 1];
+ int lcl_is_set;
+ const char *tzname[2];
+};
+
+#endif
+/*- End of file ------------------------------------------------------------*/