#include <sys/time.h>
{
   memset(mem, 0, type->value_size);
}
{
}
{
   struct timezone *tzsrc = (struct timezone *)src;
   struct timezone *tzdst = dst;
   *tzdst = *tzsrc;
}
static int
{
   struct timezone tza = *(struct timezone*)a;
   struct timezone tzb = *(struct timezone*)b;
   if (tza.tz_minuteswest < tzb.tz_minuteswest)
     return -1;
   else if (tza.tz_minuteswest > tzb.tz_minuteswest)
     return 1;
   return 0;
}
{
   *(struct timezone*)mem = *(struct timezone*)ptr;
}
{
   const struct timezone tz = va_arg(args, struct timezone);
   return _tz_pset(type, mem, &tz);
}
{
   memcpy(ptr, mem, type->value_size);
}
{
   struct timezone v = *(struct timezone*)type_mem;
     {
        unsigned char other_mem = v.tz_minuteswest;
     }
     {
        unsigned short other_mem = v.tz_minuteswest;
     }
     {
        unsigned int other_mem = v.tz_minuteswest;
     }
     {
        unsigned long other_mem = v.tz_minuteswest;
     }
     {
        uint64_t other_mem = v.tz_minuteswest;
     }
     {
        char other_mem = v.tz_minuteswest;
     }
     {
        short other_mem = v.tz_minuteswest;
     }
     {
        int other_mem = v.tz_minuteswest;
     }
     {
        long other_mem = v.tz_minuteswest;
     }
     {
        int64_t other_mem = v.tz_minuteswest;
     }
     {
        const char *other_mem;
        char buf[64];
        snprintf(buf, sizeof(buf), "%d", v.tz_minuteswest);
        other_mem = buf; 
     }
}
   sizeof(struct timezone),
   "struct timezone",
   _tz_setup,
   _tz_flush,
   _tz_copy,
   _tz_compare,
   _tz_convert_to,
   NULL, 
   _tz_vset,
   _tz_pset,
   _tz_pget
};
{
   struct timeval tv;
   struct timezone tz;
   char *s;
   gettimeofday(&tv, &tz);
   printf("time: %s\n", s);
   free(s);
   printf("timezone: %s\n", s);
   free(s);
}