]> mj.ucw.cz Git - moe.git/blob - ucw/config.h
Merge branch 'layout'
[moe.git] / ucw / config.h
1 /*
2  *      UCW Library -- Configuration-Dependent Definitions
3  *
4  *      (c) 1997--2009 Martin Mares <mj@ucw.cz>
5  *      (c) 2006 Robert Spalek <robert@ucw.cz>
6  *
7  *      This software may be freely distributed and used according to the terms
8  *      of the GNU Lesser General Public License.
9  */
10
11 #ifndef _UCW_CONFIG_H
12 #define _UCW_CONFIG_H
13
14 /* Configuration switches */
15
16 #include "autoconf.h"
17
18 /* Tell libc we're going to use all extensions available */
19
20 #ifndef _GNU_SOURCE
21 #define _GNU_SOURCE
22 #endif
23
24 /* Types (based on standard C99 integers) */
25
26 #include <stddef.h>
27 #include <stdint.h>
28
29 typedef uint8_t byte;                   /** Exactly 8 bits, unsigned **/
30 typedef uint8_t u8;                     /** Exactly 8 bits, unsigned **/
31 typedef int8_t s8;                      /** Exactly 8 bits, signed **/
32 typedef uint16_t u16;                   /** Exactly 16 bits, unsigned **/
33 typedef int16_t s16;                    /** Exactly 16 bits, signed **/
34 typedef uint32_t u32;                   /** Exactly 32 bits, unsigned **/
35 typedef int32_t s32;                    /** Exactly 32 bits, signed **/
36 typedef uint64_t u64;                   /** Exactly 64 bits, unsigned **/
37 typedef int64_t s64;                    /** Exactly 64 bits, signed **/
38
39 typedef unsigned int uns;               /** A better pronounceable alias for `unsigned int` **/
40 typedef u32 ucw_time_t;                 /** Seconds since UNIX epoch **/
41 typedef s64 timestamp_t;                /** Milliseconds since UNIX epoch **/
42
43 #ifdef CONFIG_LARGE_FILES
44 typedef s64 ucw_off_t;                  /** File position (either 32- or 64-bit, depending on `CONFIG_LARGE_FILES`). **/
45 #else
46 typedef s32 ucw_off_t;
47 #endif
48
49 #endif