Main Page   Compound List   File List   Compound Members   File Members   Related Pages  

types.h

Go to the documentation of this file.
00001 
00006 #ifndef GALE_TYPES_H
00007 #define GALE_TYPES_H
00008 
00009 #include <stddef.h>
00010 #include <sys/time.h>
00011 #include <sys/types.h>
00012 #include <netinet/in.h>
00013 #include "gale/compat.h"
00014 #include "gale/config.h"
00015 
00016 
00017 #if SIZEOF_INT == 4
00018 typedef unsigned int u32;
00019 typedef signed int s32;
00020 #elif SIZEOF_LONG == 4
00021 typedef unsigned long u32;
00022 typedef signed long s32;
00023 #elif SIZEOF_SHORT == 4
00024 typedef unsigned short u32;
00025 typedef signed short s32;
00026 #elif DOXYGEN_ONLY
00027 
00028 typedef unsigned int u32;
00030 typedef signed int s32;
00031 #else
00032 #error Cannot find 32-bit data type!
00033 #endif
00034 
00035 #if SIZEOF_INT == 2
00036 typedef unsigned int u16;
00037 #elif SIZEOF_LONG == 2
00038 typedef unsigned long u16;
00039 #elif SIZEOF_SHORT == 2
00040 typedef unsigned short u16;
00041 #elif DOXYGEN_ONLY
00042 
00043 typedef unsigned short u16;
00044 #else
00045 #error Cannot find 16-bit data type!
00046 #endif
00047 
00049 typedef unsigned char u8;
00050 
00052 typedef u8 byte;
00053 
00055 typedef wchar_t wch;    /* wide char */
00056 
00058 struct gale_data {
00060         byte *p;
00062         size_t l;
00063 };
00064 
00066 struct gale_text {
00068         const wch *p;
00070         size_t l;
00071 };
00072 
00076 struct gale_time {
00079         s32 sec_high;
00081         u32 sec_low;
00084         u32 frac_high;
00087         u32 frac_low;
00088 };
00089 
00090 struct gale_fragment;
00091 
00093 struct gale_group {
00095         const struct gale_fragment *list;
00097         size_t len;
00099         const struct gale_group *next;
00100 };
00101 
00103 enum gale_fragment_type { 
00104         frag_text, frag_data, frag_time, frag_number, frag_group 
00105 };
00106 
00108 struct gale_fragment {
00110         struct gale_text name;
00112         enum gale_fragment_type type;
00115         union {
00116                 struct gale_text text;
00117                 struct gale_data data;
00118                 struct gale_time time;
00119                 struct gale_group group;
00120                 s32 number;
00121         } value;
00122 };
00123 
00124 #endif

Generated at Sun Sep 7 13:55:26 2003 for Gale by doxygen1.2.1 written by Dimitri van Heesch, © 1997-2000