summaryrefslogtreecommitdiffstats
path: root/contrib/ucw/config.h
blob: 5d3cb4fe2946228ebbe80deddae40f64d6b4058c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
 *	UCW Library -- Configuration-Dependent Definitions
 *
 *	(c) 1997--2012 Martin Mares <mj@ucw.cz>
 *	(c) 2006 Robert Spalek <robert@ucw.cz>
 *
 *	This software may be freely distributed and used according to the terms
 *	of the GNU Lesser General Public License.
 */

#ifndef _UCW_CONFIG_H
#define _UCW_CONFIG_H

/* Default page size and pointer alignment */
#ifndef CPU_PAGE_SIZE
#define CPU_PAGE_SIZE 4096
#endif
#define CPU_STRUCT_ALIGN sizeof(void *)

/* Tell libc we're going to use all extensions available */

#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif

/* Types (based on standard C99 integers) */

#include <stddef.h>
#include <stdint.h>

typedef uint8_t byte;			/** Exactly 8 bits, unsigned **/
typedef uint8_t u8;			/** Exactly 8 bits, unsigned **/
typedef int8_t s8;			/** Exactly 8 bits, signed **/
typedef uint16_t u16;			/** Exactly 16 bits, unsigned **/
typedef int16_t s16;			/** Exactly 16 bits, signed **/
typedef uint32_t u32;			/** Exactly 32 bits, unsigned **/
typedef int32_t s32;			/** Exactly 32 bits, signed **/
typedef uint64_t u64;			/** Exactly 64 bits, unsigned **/
typedef int64_t s64;			/** Exactly 64 bits, signed **/


#ifndef uint /* Redefining typedef is a C11 feature. */
typedef unsigned int uint;		/** A better pronounceable alias for `unsigned int` **/
#define uint uint
#endif

typedef s64 timestamp_t;		/** Milliseconds since an unknown epoch **/

// FIXME: This should be removed soon
typedef uint uns;			/** Backwards compatible alias for `uint' ***/

#ifdef CONFIG_UCW_LARGE_FILES
typedef s64 ucw_off_t;			/** File position (either 32- or 64-bit, depending on `CONFIG_UCW_LARGE_FILES`). **/
#else
typedef s32 ucw_off_t;
#endif

#endif