updates
[silc.git] / lib / silcutil / silctypes.h
index 21b3abd186d85307af9e216ac1d5061f486dd5d9..04a9d88672228ad7a718c69f154f2f7b62216a9b 100644 (file)
 #ifndef SILCTYPES_H
 #define SILCTYPES_H
 
+/****d* silcutil/SILCTypes/TRUE
+ *
+ * NAME
+ *
+ *    #define TRUE ...
+ *
+ * DESCRIPTION
+ *
+ *    Boolean true value indicator.
+ *
+ * SOURCE
+ */
 #ifndef TRUE
 #define TRUE 1
 #endif
+/***/
+
+/****d* silcutil/SILCTypes/FALSE
+ *
+ * NAME
+ *
+ *    #define FALSE ...
+ *
+ * DESCRIPTION
+ *
+ *    Boolean false value indicator.
+ *
+ * SOURCE
+ */
 #ifndef FALSE
 #define FALSE 0
 #endif
+/***/
 
-/* Define offsetof */
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+/****d* silcutil/SILCTypes/bool
+ *
+ * NAME
+ *
+ *    #define bool ...
+ *
+ * DESCRIPTION
+ *
+ *    Boolean value, and is 8-bits.  Represents value 0 or 1.  In
+ *    C++ code this type is defined by the C++, and this definition is
+ *    not used.
+ *
+ * SOURCE
+ */
+#ifndef __cplusplus
+#ifndef bool
+#define bool unsigned char
 #endif
+#endif
+/***/
+
+#define silc_offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
 
 #if SILC_SIZEOF_SHORT > 2
 #error "size of the short must be 2 bytes"
@@ -198,11 +243,7 @@ typedef SilcInt32 SilcInt64;
 typedef SilcUInt32 * void *;
 #endif
 
-#ifndef __cplusplus
-#ifndef bool
-#define bool unsigned char
-#endif
-#endif
+/* Macros */
 
 #define GET_WORD(cp) ((SilcUInt32)(SilcUInt8)(cp)[0]) << 24    \
                    | ((SilcUInt32)(SilcUInt8)(cp)[1] << 16)    \
@@ -226,21 +267,40 @@ typedef SilcUInt32 * void *;
            | ((SilcUInt32)(SilcUInt8)(cp)[1])
 /***/
 
-/****d* silcutil/SILCTypes/SILC_PUT16_MSB
+/****d* silcutil/SILCTypes/SILC_GET32_MSB
  *
  * NAME
  *
- *    #define SILC_PUT16_MSB ...
+ *    #define SILC_GET32_MSB ...
  *
  * DESCRIPTION
  *
- *    Put two 8-bit bytes, most significant bytes first.
+ *    Return four 8-bit bytes, most significant bytes first.
  *
  * SOURCE
  */
-#define SILC_PUT16_MSB(l, cp)                  \
-       (cp)[0] = l >> 8;                       \
-       (cp)[1] = l;
+#define SILC_GET32_MSB(l, cp)                          \
+       (l) = ((SilcUInt32)(SilcUInt8)(cp)[0]) << 24    \
+           | ((SilcUInt32)(SilcUInt8)(cp)[1] << 16)    \
+           | ((SilcUInt32)(SilcUInt8)(cp)[2] << 8)     \
+           | ((SilcUInt32)(SilcUInt8)(cp)[3])
+/***/
+
+/****d* silcutil/SILCTypes/SILC_GET64_MSB
+ *
+ * NAME
+ *
+ *    #define SILC_GET64_MSB ...
+ *
+ * DESCRIPTION
+ *
+ *    Return eight 8-bit bytes, most significant bytes first.
+ *
+ * SOURCE
+ */
+#define SILC_GET64_MSB(l, cp)                          \
+       (l) = ((((SilcUInt64)GET_WORD((cp))) << 32) |   \
+             ((SilcUInt64)GET_WORD((cp) + 4)))
 /***/
 
 /****d* silcutil/SILCTypes/SILC_GET16_LSB
@@ -260,40 +320,47 @@ typedef SilcUInt32 * void *;
            | ((SilcUInt32)(SilcUInt8)(cp)[1] << 8)
 /***/
 
-/****d* silcutil/SILCTypes/SILC_PUT16_LSB
+/****d* silcutil/SILCTypes/SILC_GET32_LSB
  *
  * NAME
  *
- *    #define SILC_PUT16_LSB ...
+ *    #define SILC_GET32_LSB ...
  *
  * DESCRIPTION
  *
- *    Put two 8-bit bytes, least significant bytes first.
+ *    Return four 8-bit bytes, least significant bytes first.
  *
  * SOURCE
  */
-#define SILC_PUT16_LSB(l, cp)                  \
-       (cp)[0] = l;                            \
-       (cp)[1] = l >> 8;
+#define SILC_GET32_LSB(l, cp)                          \
+       (l) = ((SilcUInt32)(SilcUInt8)(cp)[0])          \
+           | ((SilcUInt32)(SilcUInt8)(cp)[1] << 8)     \
+           | ((SilcUInt32)(SilcUInt8)(cp)[2] << 16)    \
+           | ((SilcUInt32)(SilcUInt8)(cp)[3] << 24)
+
+/* Same as upper but XOR the result always. Special purpose macro. */
+#define SILC_GET32_X_LSB(l, cp)                                \
+       (l) ^= ((SilcUInt32)(SilcUInt8)(cp)[0])         \
+           | ((SilcUInt32)(SilcUInt8)(cp)[1] << 8)     \
+           | ((SilcUInt32)(SilcUInt8)(cp)[2] << 16)    \
+           | ((SilcUInt32)(SilcUInt8)(cp)[3] << 24)
 /***/
 
-/****d* silcutil/SILCTypes/SILC_GET32_MSB
+/****d* silcutil/SILCTypes/SILC_PUT16_MSB
  *
  * NAME
  *
- *    #define SILC_GET32_MSB ...
+ *    #define SILC_PUT16_MSB ...
  *
  * DESCRIPTION
  *
- *    Return four 8-bit bytes, most significant bytes first.
+ *    Put two 8-bit bytes, most significant bytes first.
  *
  * SOURCE
  */
-#define SILC_GET32_MSB(l, cp)                          \
-       (l) = ((SilcUInt32)(SilcUInt8)(cp)[0]) << 24    \
-           | ((SilcUInt32)(SilcUInt8)(cp)[1] << 16)    \
-           | ((SilcUInt32)(SilcUInt8)(cp)[2] << 8)     \
-           | ((SilcUInt32)(SilcUInt8)(cp)[3])
+#define SILC_PUT16_MSB(l, cp)                  \
+       (cp)[0] = l >> 8;                       \
+       (cp)[1] = l;
 /***/
 
 /****d* silcutil/SILCTypes/SILC_PUT32_MSB
@@ -315,85 +382,59 @@ typedef SilcUInt32 * void *;
        (cp)[3] = l;
 /***/
 
-/****d* silcutil/SILCTypes/SILC_GET32_LSB
+/****d* silcutil/SILCTypes/SILC_PUT64_MSB
  *
  * NAME
  *
- *    #define SILC_GET32_LSB ...
+ *    #define SILC_PUT64_MSB ...
  *
  * DESCRIPTION
  *
- *    Return four 8-bit bytes, least significant bytes first.
+ *    Put eight 8-bit bytes, most significant bytes first.
  *
  * SOURCE
  */
-#define SILC_GET32_LSB(l, cp)                          \
-       (l) = ((SilcUInt32)(SilcUInt8)(cp)[0])          \
-           | ((SilcUInt32)(SilcUInt8)(cp)[1] << 8)     \
-           | ((SilcUInt32)(SilcUInt8)(cp)[2] << 16)    \
-           | ((SilcUInt32)(SilcUInt8)(cp)[3] << 24)
-
-/* Same as upper but XOR the result always. Special purpose macro. */
-#define SILC_GET32_X_LSB(l, cp)                                \
-       (l) ^= ((SilcUInt32)(SilcUInt8)(cp)[0])         \
-           | ((SilcUInt32)(SilcUInt8)(cp)[1] << 8)     \
-           | ((SilcUInt32)(SilcUInt8)(cp)[2] << 16)    \
-           | ((SilcUInt32)(SilcUInt8)(cp)[3] << 24)
+#define SILC_PUT64_MSB(l, cp)                                  \
+do {                                                           \
+  SILC_PUT32_MSB((SilcUInt32)((SilcUInt64)(l) >> 32), (cp));   \
+  SILC_PUT32_MSB((SilcUInt32)(l), (cp) + 4);                   \
+} while(0)
 /***/
 
-/****d* silcutil/SILCTypes/SILC_PUT32_LSB
+/****d* silcutil/SILCTypes/SILC_PUT16_LSB
  *
  * NAME
  *
- *    #define SILC_PUT32_LSB ...
+ *    #define SILC_PUT16_LSB ...
  *
  * DESCRIPTION
  *
- *    Put four 8-bit bytes, least significant bytes first.
+ *    Put two 8-bit bytes, least significant bytes first.
  *
  * SOURCE
  */
-#define SILC_PUT32_LSB(l, cp)                  \
+#define SILC_PUT16_LSB(l, cp)                  \
        (cp)[0] = l;                            \
-       (cp)[1] = l >> 8;                       \
-       (cp)[2] = l >> 16;                      \
-       (cp)[3] = l >> 24;
-/***/
-
-/****d* silcutil/SILCTypes/SILC_GET64_MSB
- *
- * NAME
- *
- *    #define SILC_GET64_MSB ...
- *
- * DESCRIPTION
- *
- *    Return eight 8-bit bytes, most significant bytes first.
- *
- * SOURCE
- */
-#define SILC_GET64_MSB(l, cp)                          \
-       (l) = ((((SilcUInt64)GET_WORD((cp))) << 32) |   \
-             ((SilcUInt64)GET_WORD((cp) + 4)))
+       (cp)[1] = l >> 8;
 /***/
 
-/****d* silcutil/SILCTypes/SILC_PUT64_MSB
+/****d* silcutil/SILCTypes/SILC_PUT32_LSB
  *
  * NAME
  *
- *    #define SILC_PUT64_MSB ...
+ *    #define SILC_PUT32_LSB ...
  *
  * DESCRIPTION
  *
- *    Put eight 8-bit bytes, most significant bytes first.
+ *    Put four 8-bit bytes, least significant bytes first.
  *
  * SOURCE
  */
-#define SILC_PUT64_MSB(l, cp)                                  \
-do {                                                           \
-  SILC_PUT32_MSB((SilcUInt32)((SilcUInt64)(l) >> 32), (cp));   \
-  SILC_PUT32_MSB((SilcUInt32)(l), (cp) + 4);                   \
-} while(0)
+#define SILC_PUT32_LSB(l, cp)                  \
+       (cp)[0] = l;                            \
+       (cp)[1] = l >> 8;                       \
+       (cp)[2] = l >> 16;                      \
+       (cp)[3] = l >> 24;
 /***/
 
 #endif /* SILCTYPES_H */